Вывести на экран самое длинное слово, в котором есть буква П - Pascal ABC

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

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

дана строка слов, перечисленных через запятую. вывести на экран самое длинное слово, в котором есть буква П

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

textual
Листинг программы
  1. program Dlina;
  2.  
  3. const
  4.   Abc: set of char = ['а'..'я', 'А'..'Я'];
  5.  
  6. var
  7.   s, s1, max: string;
  8.   i: integer;
  9.   IsWord: boolean;
  10.   IsP: boolean;
  11.  
  12. begin
  13.   //readln(s);
  14.   s := 'Мама,отмывала,раму,а,Папаша,пил,пиво.';
  15.   s := s + ' ';
  16.   max := '';
  17.   while pos(',', s) > 0 do
  18.   begin
  19.     s1 := copy(s, 1, pos(',', s) - 1);
  20.     Delete(s, 1, pos(',', s));
  21.     IsWord := True;
  22.     IsP := false;
  23.     for i := 1 to length(s1) do
  24.       IsWord := IsWord and (s1[i] in Abc);
  25.     for i := 1 to length(s1) do
  26.       if s1[i] = 'П' then
  27.       begin
  28.         IsP := true;break;
  29.       end;
  30.     writeln(isp);
  31.     if IsP and IsWord and (length(s1) > length(max)) then
  32.       max := s1;
  33.   end;
  34.   writeln(max);
  35.   readln;
  36. end.

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

  1. Создается программа Dlina.
  2. В const-секции задается набор символов Abc, который представляет собой все буквы русского алфавита от 'а' до 'я' и от 'А' до 'Я'.
  3. В var-секции объявляются переменные: s - строка для хранения самого длинного слова, s1 - временная строка для разделения исходной строки на слова, max - пустая строка для хранения самого длинного слова, i - целочисленная переменная для счетчика слов и позиций в строке, IsWord - логическая переменная для определения, является ли текущая подстрока словом, IsP - логическая переменная для определения, содержит ли текущая подстрока букву П.
  4. В начале программы в переменную s записывается исходная строка для обработки.
  5. Затем в цикле while происходит обработка строки s.
    • s1 := copy(s, 1, pos(',', s) - 1) - копируется подстрока из s от первого символа до позиции pos(',', s) - 1.
    • Delete(s, 1, pos(',', s)) - удаляется подстрока из s от первого символа до позиции pos(',', s).
    • IsWord := True - устанавливается значение IsWord в true, если текущая подстрока является словом.
    • IsP := false - устанавливается значение IsP в false, если текущая подстрока не содержит букву П.
    • Для каждого символа в подстроке s1 от 1 до длины(s1) выполняется следующая последовательность действий:
      • IsWord := IsWord and (s1[i] in Abc) - проверяется, является ли текущий символ буквой русского алфавита.
      • Если s1[i] = 'П', то устанавливается значение IsP в true и цикл прерывается с помощью оператора break.
    • Если IsP и IsWord и длина(s1) больше длины(max), то max := s1.
  6. По завершении цикла выводится на экран максимальная длина слова, содержащего букву П.
  7. Программа завершается с помощью команды readln.

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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