Нахождение самого длинного слова в текстовом файле - 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.
Объяснение кода листинга программы
- Объявление переменных:
f
- текстовый файл, содержащий текстtext.txt
s
- переменная для хранения строки текстаs1
- переменная для хранения отдельного слова из строкиn
- количество символов в строкеi
- счетчик для итерации по строкеk
- счетчик для итерации по слову в строкеd
- переменная для хранения длины словаmx
- переменная для хранения максимальной длины слова
- Открытие файла и определение максимальной длины слова:
- Пока файл не закончится, считываем строку из файла
- Получаем длину строки
- Перебираем символы в строке, определяем границы слов и их длины
- Обновляем значение переменной
mx
(максимальная длина слова)
- Вывод максимальной длины слова:
- Выводим значение
mx
в консоль - Снова открываем файл
- Выводим значение
- Поиск слов максимальной длины:
- Пока файл не закончится, считываем строку из файла
- Получаем длину строки
- Ищем слова, получаем их длину и выводим слова максимальной длины в консоль
- Закрытие файла и завершение программы:
- Закрытие файла
- Ожидание ввода пользователя (для сохранения вывода на экран)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д