Напечатайте строку файла с наибольшим количеством слов - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дан текстовый файл f. Слова не переносятся с одной строки на другую. Слова разделены одним или несколькими пробелами. Напечатайте строку с наибольшим количеством слов. Если таких строк несколько, то напечатайте первые 10.

Решение задачи: «Напечатайте строку файла с наибольшим количеством слов»

textual
Листинг программы
var
  s: array [1..10] of String;
  t: String;
  n, m, p, i: Integer;
  f: Text;
begin
  Assign(f,'input.txt'); Reset(f);
  while not EoF(f) do begin
    ReadLn(f,t); p:=Ord(t[Lengthg(t)<>' ']);
    for i:=Length(t) downto 2 do Inc(p,Ord((t[i]=' ') and (t[i-1]<>' ')));
    if p>m then begin
      s[1]:=t; n:=1;
    end else if p=m then
      if n<10 then begin
        Inc(n); s[n]:=t;
      end;
  end;
  Close(f);
  for i:=1 to n do WriteLn(s[i]);
end.

Объяснение кода листинга программы

  1. Создается переменная s, которая представляет собой массив строк.
  2. Создается переменная t, которая будет содержать строку из файла.
  3. Создаются переменные n, m, p и i, которые будут использоваться для подсчета количества слов в строке.
  4. Создается переменная f, которая представляет собой файл для чтения.
  5. Открывается файл f.
  6. Запускается цикл чтения строк из файла до конца файла.
  7. В каждой итерации цикла строка t считывается из файла.
  8. Вычисляется порядковый номер слова в строке с помощью функции Ord().
  9. Если текущее слово имеет больше букв, чем предыдущее слово, то строка t добавляется в массив s под индексом 1.
  10. Если текущее слово имеет столько же букв, сколько и предыдущее слово, но это не последнее слово в строке, то переменная n увеличивается на 1, и строка t добавляется в массив s под индексом n.
  11. После завершения цикла чтения файла, файл закрывается.
  12. Запускается цикл вывода строк из массива s на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы