Напечатать самое длинное слово предложения - Turbo Pascal (33972)

Узнай цену своей работы

Формулировка задачи:

Дано предложение. Напечатать его самое длинное слово (принять, что такое слово — единственное) .

Решение задачи: «Напечатать самое длинное слово предложения»

textual
Листинг программы
var s:string;
i,m,z,n:integer;
k,b1,b2:array[1..100] of integer;
begin
readln(s); b1[1]:=1;
for i:=1 to length(s) do
begin z:=z+1;
if (s[i]=' ') or (i=length(s)) then begin m:=m+1; k[m]:=z-1; z:=0; b1[m+1]:=i+1; b2[m]:=i-1; end;
end;
k[m]:=k[m]+1; z:=k[1]; b2[m]:=length(s); n:=1;
for i:=1 to m do
if k[i]>z then begin z:=k[i]; n:=i; end;
for i:=b1[n] to b2[n] do
write(s[i]);
readln
end.

Объяснение кода листинга программы

  1. Переменная s инициализируется строковым значением, полученным от пользователя.
  2. Создаются четыре целочисленные переменные i, m, z и n.
  3. Создается массив k типа array[1..100] of integer и массив b1 также типа array[1..100] of integer. Эти массивы будут использоваться для хранения промежуточных данных.
  4. Считывается ввод от пользователя с помощью функции readln(). Значение, полученное от пользователя, присваивается переменной s.
  5. Запускается цикл for, который выполняется столько раз, сколько символов в строке s.
  6. Внутри цикла for переменная z инициализируется единицей.
  7. Если текущий символ в строке s является пробелом или является последним символом в строке, то переменная m увеличивается на единицу, а переменные k[m] и b1[m] присваиваются значениям z-1 и i+1 соответственно. Затем переменная z сбрасывается обратно в ноль.
  8. После завершения внутреннего цикла for, переменные k[m] и b1[m] обновляются, чтобы отразить последнее значение переменной m.
  9. Запускается внешний цикл for, который начинается с индекса b1[n] и продолжается до индекса b2[n].
  10. Внутри внешнего цикла for происходит запись каждого символа из строки s[i] на экран.
  11. После завершения внешнего цикла for, переменные k[m] и b2[m] обновляются, чтобы отразить последнее значение переменной m.
  12. Считывается новый ввод от пользователя с помощью функции readln(). Значение, полученное от пользователя, присваивается переменной s.
  13. Цикл for прерывается, и программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы