Вопрос задан 21.03.2020 в 15:14. Предмет Информатика. Спрашивает Лушников Дмитрий.

Этот код на Паскале отвечает за нахождение самого длинного слова в одной! строчке. Нужно сделать

так, чтобы можно было записать сколько угодно строчек и он нашёл в них самое длинное слово (цикл добавить, по-моему). 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.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мукомел София.
Var
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
0 0
Отвечает Смирнов Евгений.
Так пойдет?

//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
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос