Найти самое длинное слово в файле и номер строки, в которой оно находится - Turbo Pascal
Формулировка задачи:
Для файла f1 содержащего символьную информацию , найти самое длинное слово и номер строки в которой оно находиться
Решение задачи: «Найти самое длинное слово в файле и номер строки, в которой оно находится»
textual
Листинг программы
var
f:text;
c:char;
s,t:string;
l,i:longint;
procedure ch;
begin
if length(t)<length(s) then begin
l:=i;
t:=s;
end;
end;
begin
assign(f,'f1');
reset(f);
t:='';i:=0;
while not eof(f) do begin
i:=i+1;
while not eoln(f) do begin
read(f,c);
if c=' ' then begin
ch;
s:='';
end else s:=s+c;
end;
readln(f);
ch;
s:='';
end;
close(f);
writeln('Самое длинное слово:',t,' в строке ',l);
end.
Объяснение кода листинга программы
- В начале объявляются все необходимые переменные: f - текстовый файл, c - символ из файла, s и t - строки, l и i - целые числа.
- Затем определяется процедура ch, которая сравнивает длины строк s и t и перезаписывает их значения, если s длиннее.
- Далее открывается файл 'f1' для чтения, сбрасывается буфер, и инициализируется пустая строка s и номер строки i.
- Затем идет цикл while, который выполняется до конца файла. В каждой итерации увеличивается значение i на единицу, а также считывается символ из файла и добавляется к строке s. Если считанный символ - пробел, то вызывается процедура ch.
- После завершения чтения файла закрывается файл 'f1'.
- И, наконец, выводится на экран сообщение о самом длинном слове и номере строки, в которой оно находится.