Из файла прочитать текст, найти самое длинное слово и вывести на экран сроки, в которых оно находится - Turbo Pascal
Формулировка задачи:
Привет всем, нужна помощь с написанием программы. Задание:
Из файла прочитать текст, найти самое длинное слово и вывести на экран сроки, в которых оно находится (знаю, формулировка не оч, но так в учебнике написано). Обязательно использовать Function, учитель обьяснил, что нужно даже две: первая находит самое длинное слово (с этой еще справлюсь), вторая - выводит на экран строки с ним (тут сложно мне).
Большое спасибо!
PS: тут на форуме не смогла найти помощь в существующих темах
Решение задачи: «Из файла прочитать текст, найти самое длинное слово и вывести на экран сроки, в которых оно находится»
textual
Листинг программы
program FileAndWords; function LongestWord(const s: string): string; begin LongestWord := 'word'; end; var s: string; CurrentWord: string; VeryLongestWord: string; f: Text; begin Assign(f, 'poem.txt'); reset(f); VeryLongestWord := ''; while not EOF(f) do begin readln(f, s); CurrentWord := LongestWord(s); if length(VeryLongestWord) < length(CurrentWord) then VeryLongestWord := CurrentWord; writeln(s); end; Close(f); writeln(VeryLongestWord); end.
Объяснение кода листинга программы
- В программе объявляются переменные: s (строка), CurrentWord (текущее слово), VeryLongestWord (очень длинное слово), f (текстовый файл).
- Задается значение переменной VeryLongestWord, которое изначально пустое.
- Открывается файл 'poem.txt' с помощью функции Assign и оператора reset.
- Запускается цикл while, который будет выполняться до тех пор, пока не достигнут конец файла.
- Внутри цикла считывается строка из файла с помощью функции readln.
- Вызывается функция LongestWord, которая принимает строку s и возвращает самое длинное слово в ней.
- Если длина текущего слова меньше длины очень длинного слова, то очень длинное слово заменяется на текущее слово.
- Строка записывается на экран.
- После завершения цикла файл закрывается с помощью функции Close.
- На экран выводится самое длинное слово.