Нахождение самого длинного слова в текстовом файле - Pascal

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

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

написать программу нахождения самого длинного слова в текстовом файле и выводов всех слов наибольшей длины. Словом считать набор символов не содержащий пробелов и ограниченный пробелами началом/концы строки или знаками препинания Заранее Спасибо)) и еще "+" тому кто сделает блок -схему к этой задаче)

Решение задачи: «Нахождение самого длинного слова в текстовом файле»

textual
Листинг программы
uses crt;
const rz=[' ','.',',','-','?','!'];{символы, разделители слов, можно добавить}
var f:text;
    s,s1:string;
    n,i,k,d,mx:byte;
begin
clrscr;
assign(f,'text.txt');
reset(f);{файл с текстом в папке с программой}
{определяем максимальную длину слова}
mx:=0;
while not eof(f) do
 begin
  readln(f,s);
  n:=length(s);
  i:=1;
  while i<=n do
  if not(s[i] in rz)and ((i=1)or(s[i-1] in rz)) then{если не разделитель
                         и первый или перед ним разделитель, то начало слова*}
   begin
    k:=i;
    d:=0;
    while (k<=n) and not(s[k] in rz) do {пока не разделитель и не конец строки}
     begin
      d:=d+1;
      k:=k+1;
     end;
    if d>mx then mx:=d;
    i:=i+d+1
   end
  else i:=i+1;{пропускаем разделители}
 end;
close(f);
{ищем все слова максимальной длины}
writeln('Максимальная длина слова=',mx);
writeln('Это слова:');
reset(f);
while not eof(f) do
 begin
  readln(f,s);
  n:=length(s);
  i:=1;
  while i<=n do
  if not(s[i] in rz)and ((i=1)or(s[i-1] in rz)) then{если не разделитель
                         и первый или перед ним разделитель, то начало слова*}
   begin
    k:=i;
    s1:='';
    while (k<=n) and not(s[k] in rz) do {пока не разделитель и не конец строки}
     begin
      s1:=s1+s[k];
      k:=k+1;
     end;
    if length(s1)=mx then writeln(s1);
    i:=i+length(s1);
   end
  else i:=i+1;{пропускаем разделители}
 end;
close(f);
readln
end.

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

  1. Объявление переменных:
    • f - текстовый файл, содержащий текст text.txt
    • s - переменная для хранения строки текста
    • s1 - переменная для хранения отдельного слова из строки
    • n - количество символов в строке
    • i - счетчик для итерации по строке
    • k - счетчик для итерации по слову в строке
    • d - переменная для хранения длины слова
    • mx - переменная для хранения максимальной длины слова
  2. Открытие файла и определение максимальной длины слова:
    • Пока файл не закончится, считываем строку из файла
    • Получаем длину строки
    • Перебираем символы в строке, определяем границы слов и их длины
    • Обновляем значение переменной mx (максимальная длина слова)
  3. Вывод максимальной длины слова:
    • Выводим значение mx в консоль
    • Снова открываем файл
  4. Поиск слов максимальной длины:
    • Пока файл не закончится, считываем строку из файла
    • Получаем длину строки
    • Ищем слова, получаем их длину и выводим слова максимальной длины в консоль
  5. Закрытие файла и завершение программы:
    • Закрытие файла
    • Ожидание ввода пользователя (для сохранения вывода на экран)

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


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

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

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