Получить предложение, в котором самое длинное слово записано наоборот - Turbo Pascal

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

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

Дано предложение.получить предложение,в котором самое длин.слово записано наоборот

Решение задачи: «Получить предложение, в котором самое длинное слово записано наоборот»

textual
Листинг программы
  1. var
  2.   str, substr, maxWord: string;
  3.   i, maxLen, maxLenInd, maxWordEnd: integer;
  4.   bufCh: char;
  5.  
  6. function inWord(ch: char): boolean;
  7. begin
  8.   if (upcase(ch) >= 'A') and (upcase(ch) <= 'Z') then inWord := true
  9.   else inWord := false;
  10. end;
  11.  
  12. begin
  13.   writeln('Enter the sentence:');
  14.   readln(str);
  15.  
  16.   substr := '';
  17.   maxLen := 0;
  18.   maxLenInd := 0;
  19.  
  20.   if length(str) > 0 then
  21.     for i := 1 to length(str) do
  22.     begin
  23.       if inWord(str[i]) then
  24.       begin
  25.         substr := substr + str[i];
  26.         if i = length(str) then
  27.           if (length(substr) > maxLen) then
  28.           begin
  29.             maxLen := length(substr);
  30.             maxLenInd := i - length(substr) + 1;
  31.             maxWord := substr;
  32.           end;
  33.       end
  34.       else
  35.       begin
  36.         if (length(substr) > maxLen) then
  37.         begin
  38.           maxLen := length(substr);
  39.           maxLenInd := i - length(substr);
  40.           maxWord := substr;
  41.         end;
  42.         substr := '';
  43.       end;
  44.     end;
  45.   writeln('The longest word in this sentence: ', maxWord);
  46.   maxWordEnd := maxLenInd + maxLen - 1;
  47.  
  48.   while maxLenInd < maxWordEnd do
  49.   begin
  50.     bufCh := str[maxLenInd];
  51.     str[maxLenInd] := str[maxWordEnd];
  52.     str[maxWordEnd] := bufCh;
  53.     inc(maxLenInd);
  54.     dec(maxWordEnd);
  55.   end;
  56.  
  57.   writeln('The new sentence is:');
  58.   writeln(str);
  59.   readln;
  60. end.

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

  1. Создаются переменные str, substr, maxWord типа string, i, maxLen, maxLenInd, maxWordEnd типа integer.
  2. В функции inWord(ch: char) проверяется, является ли символ ch заглавной буквой. Если это так, функция возвращает true, иначе - false.
  3. В основной части кода пользователю предлагается ввести предложение.
  4. Переменная substr инициализируется пустой строкой.
  5. Переменная maxLen инициализируется нулем.
  6. Переменная maxLenInd инициализируется нулем.
  7. Если длина предложения больше нуля, то происходит цикл for i := 1 to length(str).
  8. Внутри цикла проверяется, является ли текущий символ заглавной буквой с помощью функции inWord(str[i]).
  9. Если символ является заглавной буквой, то к переменной substr добавляется текущий символ.
  10. Если длина подстроки больше текущей максимальной длины, то обновляются значения максимальной длины и ее индекса.
  11. После завершения цикла подстрока заменяет текущее слово в предложении.
  12. Заменяется последний символ подстроки на первый символ нового слова.
  13. Заменяется последний символ подстроки на второй символ нового слова.
  14. И так далее, пока не будет заменено все символы подстроки.
  15. После замены символов подстроки на символы нового слова, выводится новое предложение.
  16. Вычисляется новый индекс конца подстроки с помощью maxLenInd.
  17. Вычисляется новый индекс конца подстроки с помощью maxLenInd + maxLen - 1.
  18. Выполняется цикл while maxLenInd < maxWordEnd do.
  19. Внутри цикла меняется местами символ с конца подстроки и символ с начала нового слова.
  20. Уменьшается значение maxLenInd и увеличивается значение maxWordEnd.

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


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

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

11   голосов , оценка 4.455 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы