Этот код на паскале отвечает за нахождение самого длинного слова в одной! строчке. нужно сделать так, чтобы можно было записать сколько угодно строчек и он нашёл в них самое длинное слово (цикл добавить, по-моему). var s,st,smax: string; i: byte; begin readln(s); if s[length(s)]< > ' ' then s: =s+' '; st: =''; smax: =''; for i: =1 to length(s) do if s[i]< > ' ' then st: =st+s[i] else begin if length(smax) smax: =st; st: =''; end; writeln('самое длинное слово: ',smax); writeln('кол-во букв: ',length(smax)); end.
s,st,smax: string;
i:byte;
BEGIN
writeln('Вводите строки. Конец ввода: <Enter> в начале строки.');
readln(s);
st:=''; smax:='';
while s<>'' do begin
if s[length(s)]<>' ' then s:=s+' ';
for i:=1 to length(s) do
if s[i]<>' ' then st:=st+s[i]
else begin
if length(st)>length(smax) then smax:=st;
st:='';
end;
readln(s);
end;
writeln('Самое длинное слово: ',smax);
writeln('Кол-во букв: ',length(smax));
END.
Пример (начало стихотворения “The Road Not Taken”, Роберт Ли Фрост):
Вводите строки. Конец ввода: <Enter> в начале строки.
Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth.
Самое длинное слово: undergrowth.
Кол-во букв: 12
//Pascal
var s, s1, max: string;
begin
writeln('Введите !exit для выхода.');
repeat
write('Введите строку: ');
readln(s);
if s <> '!exit' then
begin
s := s + ' '; // max:='';
while Pos(' ', s) > 0 do
begin
s1 := Copy(s, 1, Pos(' ', s) - 1);
Delete(s, 1, Pos(' ', s));
if Length(s1) > Length(max) then max := s1;
end;
end;
until s = '!exit';
writeln('Самое длинное слово среди всех строк = ', max);
writeln('Кол-во букв: ', Length(max));
readln;
end.
Пример:
Введите !exit для выхода.
Введите строку: test
Введите строку: testtest
Введите строку: testtesttest
Введите строку: 123
Введите строку: 1234
Введите строку: 12345
Введите строку: !exit
Самое длинное слово среди всех строк = testtesttest
Кол-во букв: 12