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

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

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

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

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

textual
Листинг программы
program Dlina;
 
const
  Abc: set of char = ['а'..'я', 'А'..'Я'];
 
var
  s, s1, max: string;
  i: integer;
  IsWord: boolean;
  IsP: boolean;
 
begin
  //readln(s);
  s := 'Мама,отмывала,раму,а,Папаша,пил,пиво.';
  s := s + ' ';
  max := '';
  while pos(',', s) > 0 do
  begin
    s1 := copy(s, 1, pos(',', s) - 1);
    Delete(s, 1, pos(',', s));
    IsWord := True;
    IsP := false;
    for i := 1 to length(s1) do
      IsWord := IsWord and (s1[i] in Abc);
    for i := 1 to length(s1) do
      if s1[i] = 'П' then
      begin
        IsP := true;break;
      end;
    writeln(isp);
    if IsP and IsWord and (length(s1) > length(max)) then
      max := s1;
  end;
  writeln(max);
  readln;
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
Похожие ответы