Получить предложение, в котором самое длинное слово записано наоборот - Turbo Pascal
Формулировка задачи:
Дано предложение.получить предложение,в котором самое длин.слово записано наоборот
Решение задачи: «Получить предложение, в котором самое длинное слово записано наоборот»
textual
Листинг программы
var str, substr, maxWord: string; i, maxLen, maxLenInd, maxWordEnd: integer; bufCh: char; function inWord(ch: char): boolean; begin if (upcase(ch) >= 'A') and (upcase(ch) <= 'Z') then inWord := true else inWord := false; end; begin writeln('Enter the sentence:'); readln(str); substr := ''; maxLen := 0; maxLenInd := 0; if length(str) > 0 then for i := 1 to length(str) do begin if inWord(str[i]) then begin substr := substr + str[i]; if i = length(str) then if (length(substr) > maxLen) then begin maxLen := length(substr); maxLenInd := i - length(substr) + 1; maxWord := substr; end; end else begin if (length(substr) > maxLen) then begin maxLen := length(substr); maxLenInd := i - length(substr); maxWord := substr; end; substr := ''; end; end; writeln('The longest word in this sentence: ', maxWord); maxWordEnd := maxLenInd + maxLen - 1; while maxLenInd < maxWordEnd do begin bufCh := str[maxLenInd]; str[maxLenInd] := str[maxWordEnd]; str[maxWordEnd] := bufCh; inc(maxLenInd); dec(maxWordEnd); end; writeln('The new sentence is:'); writeln(str); readln; end.
Объяснение кода листинга программы
- Создаются переменные
str
,substr
,maxWord
типаstring
,i
,maxLen
,maxLenInd
,maxWordEnd
типаinteger
. - В функции
inWord(ch: char)
проверяется, является ли символch
заглавной буквой. Если это так, функция возвращаетtrue
, иначе -false
. - В основной части кода пользователю предлагается ввести предложение.
- Переменная
substr
инициализируется пустой строкой. - Переменная
maxLen
инициализируется нулем. - Переменная
maxLenInd
инициализируется нулем. - Если длина предложения больше нуля, то происходит цикл
for i := 1 to length(str)
. - Внутри цикла проверяется, является ли текущий символ заглавной буквой с помощью функции
inWord(str[i])
. - Если символ является заглавной буквой, то к переменной
substr
добавляется текущий символ. - Если длина подстроки больше текущей максимальной длины, то обновляются значения максимальной длины и ее индекса.
- После завершения цикла подстрока заменяет текущее слово в предложении.
- Заменяется последний символ подстроки на первый символ нового слова.
- Заменяется последний символ подстроки на второй символ нового слова.
- И так далее, пока не будет заменено все символы подстроки.
- После замены символов подстроки на символы нового слова, выводится новое предложение.
- Вычисляется новый индекс конца подстроки с помощью
maxLenInd
. - Вычисляется новый индекс конца подстроки с помощью
maxLenInd + maxLen - 1
. - Выполняется цикл
while maxLenInd < maxWordEnd do
. - Внутри цикла меняется местами символ с конца подстроки и символ с начала нового слова.
- Уменьшается значение
maxLenInd
и увеличивается значениеmaxWordEnd
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д