• Написать программу на ABC Pascal:
    Дан текстовый файл f. Найти слова, заканчивающие на of

Ответы 6

  • Спасибо)
  • Надеюсь, уже не ругается! Если, конечно, он PascalABC.Net
  • сильно помогли, последнее что хочу попросить так это объяснить, что делает строчка: ss:=s.split('')
  • Как Вы могли заметить из объявления, ss - это динамический массив строк. Строки в PascalABC.Net являютcя объектами и для них определен некоторый набор методов. В частности, метод Split с параметром "пробел" выполняет разбиение строки на слова, разделенные пробелом и результатом такого разбиения является динамический массив строк (тот самый ss), нумерующийся с нуля. А далее мы в цикле проходим образовавшийся массив и ищем в нем слова, у которых два правых символа равны "of".
  • Найденные слова мы помещаем в отдельный массив, элементы которого выводим по завершению чтения входного файла.
  • const  n=50;var  f:Text;  s:string;  ss:array of string;  a:array[1..n] of string;  i,j:integer;begin  Assign(f,'input.txt'); Reset(f);  j:=0;  while not Eof(f) do begin    Readln(f,s);    ss:=s.Split(' ');    for i:=0 to Length(ss)-1 do      if Length(ss[i])>1 then        if RightStr(ss[i],2)='of' then        begin Inc(j); a[j]:=ss[i] end;  end;  Close(f);  for i:=1 to j do Write(a[i],' ');  Writelnend.Тестовое решение:123of asdfdsof dasof Есть решение и покороче, но совсем не уровня начинающих:uses  System.Text.RegularExpressions;const  n=50;var  f:Text;  s:string;  a:array[1..n] of string;  i,j:integer;begin  Assign(f,'input.txt'); Reset(f);  j:=0;  while not Eof(f) do begin    Readln(f,s);    foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do    begin Inc(j); a[j]:=m.Value end;  end;  Close(f);  for i:=1 to j do Write(a[i],' ');  Writelnend.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years