Вывести на экран самое длинное слово, в котором есть буква П - 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.
Объяснение кода листинга программы
- Создается программа Dlina.
- В const-секции задается набор символов Abc, который представляет собой все буквы русского алфавита от 'а' до 'я' и от 'А' до 'Я'.
- В var-секции объявляются переменные: s - строка для хранения самого длинного слова, s1 - временная строка для разделения исходной строки на слова, max - пустая строка для хранения самого длинного слова, i - целочисленная переменная для счетчика слов и позиций в строке, IsWord - логическая переменная для определения, является ли текущая подстрока словом, IsP - логическая переменная для определения, содержит ли текущая подстрока букву
П
. - В начале программы в переменную s записывается исходная строка для обработки.
- Затем в цикле 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.
- По завершении цикла выводится на экран максимальная длина слова, содержащего букву
П
. - Программа завершается с помощью команды readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д