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

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

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

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

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

textual
Листинг программы
  1. var
  2.   s: array [1..10] of String;
  3.   t: String;
  4.   n, m, p, i: Integer;
  5.   f: Text;
  6. begin
  7.   Assign(f,'input.txt'); Reset(f);
  8.   while not EoF(f) do begin
  9.     ReadLn(f,t); p:=Ord(t[Lengthg(t)<>' ']);
  10.     for i:=Length(t) downto 2 do Inc(p,Ord((t[i]=' ') and (t[i-1]<>' ')));
  11.     if p>m then begin
  12.       s[1]:=t; n:=1;
  13.     end else if p=m then
  14.       if n<10 then begin
  15.         Inc(n); s[n]:=t;
  16.       end;
  17.   end;
  18.   Close(f);
  19.   for i:=1 to n do WriteLn(s[i]);
  20. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы