Найти самое короткое и самое длинное слово в строке и их позиции - Turbo Pascal
Формулировка задачи:
Тема: Разработка алгоритмов и программ обработки строк. Использование множеств с целью решения задач.
В заданном предложении найти самое короткое и самое длинное слова и указать позиции, с которых они начинаются.
Решение задачи: «Найти самое короткое и самое длинное слово в строке и их позиции»
textual
Листинг программы
var a,s,min,max:string; i,j,pos1,pos2:integer; begin readln(a); i:=0; j:=1; min:=a; max:=''; s:=''; while i<ord(a[0]) do begin while (a[j]<>' ') and (j<=ord(a[0])) do begin s:=s+a[j]; inc(j); end; if s<>'' then begin if ord(s[0])<ord(min[0]) then begin min:=s; pos1:=i+1; end; if ord(s[0])>ord(max[0]) then begin max:=s; pos2:=i+1; end; end; if a[j]=' ' then begin inc(j); inc(i); end; i:=i+ord(s[0]); s:=''; end; writeln(min+'-',pos1); writeln(max+'-',pos2); end.
Объяснение кода листинга программы
- В начале кода объявляются переменные a, s, min, max и i, j, pos1, pos2 типа string и integer соответственно.
- Строка a читается с помощью функции readln().
- Переменная i устанавливается равной 0, а переменная j устанавливается равной 1. Переменная min устанавливается равной строке a, а переменная max устанавливается равной пустой строке ('').
- Создается пустая строка s для хранения самого короткого слова.
- Запускается цикл while, который выполняется до тех пор, пока i меньше длины первого символа строки a.
- Внутри цикла while происходит следующий блок кода:
- Создается переменная s, которая будет содержать самое короткое слово.
- Переменная s инициализируется значением строки a, и затем к ней добавляется каждый символ по одному, пока длина текущего символа меньше или равна длине предыдущего символа.
- Переменная j устанавливается равной i+1, чтобы перейти к следующему символу.
- Переменная i увеличивается на длину текущего символа.
- Если текущий символ - пробел, то переменные i и j увеличиваются на 1.
- Когда цикл while завершается, переменная s содержит самое короткое слово.
- Запускается еще один цикл while, который выполняется до тех пор, пока j меньше длины строки a.
- Внутри цикла while происходит следующий блок кода:
- Переменная s инициализируется значением строки a, и затем к ней добавляется каждый символ по одному, пока длина текущего символа меньше или равна длине предыдущего символа.
- Переменная j устанавливается равной i+1, чтобы перейти к следующему символу.
- Переменная i увеличивается на длину текущего символа.
- Если цикл while завершается, это означает, что все символы были проверены, и переменная s содержит самое короткое слово.
- Выводится на экран строка min+'-', за которой следует позиция pos1, которая соответствует самому короткому слову.
- Затем выводится на экран строка max+'-', за которой следует позиция pos2, которая соответствует самому длинному слову.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д