Найти и вывести слово нечетной длины, в котором согласных букв больше - Pascal
Формулировка задачи:
Дан произвольный текст на русском языке. найти и вывести слово нечетной длины ,в котором согласных букв больше,чем гласных
Решение задачи: «Найти и вывести слово нечетной длины, в котором согласных букв больше»
textual
Листинг программы
const ar: set of char = ['А'..'Я', 'а'..'я']; //задаю множество букв русского алфавита //задаю множество гласных букв русского алфавита gr: set of char = ['А', 'Ё', 'У', 'Е', 'Ы', 'О', 'Э', 'Я', 'И', 'Ю', 'а', 'ё', 'у', 'е', 'ы', 'о', 'э', '?', 'и', 'ю']; p: set of char = [' ', '.', ',', ':', ';', '!', '?', '-'];//задаю множество разделителей слов var sr: set of char; //переменные для множеств согласных i, j, kg, ks: byte; //счетчики и переменные для количества гласных и согласных в слове s, slovo: string;//переменная для строки и для слова begin write('s='); //запрашиваю и считываю строку readln(s); s := s + ' '; slovo := ''; //добавляю пробел в конце предложения sr := ar - gr; for i := 1 to length(s) do if not (s[i] in p) then slovo := slovo + s[i] else //если символ - не знк препинания или пробел, добавляю его к "нововобразовываемому" слову. иначе перехожу к обработке if length(slovo) > 0 then //если длина набранного слова больше 0 begin kg := 0;ks := 0; //изначально количество гласных и количество согласных рано 0 for j := 1 to length(slovo) do //в цикле с параметром перебираю символы слова begin if slovo[j] in sr then inc(ks); //если символ входит в множество согласных, увеличиваю счетчик согласных букв if slovo[j] in gr then inc(kg); //если символ входит в множество гласных, увеличиваю счетчик гласных букв end; if (kg > ks) and (length(slovo) div 2 <> 0) then write(slovo, ' '); //если счетчик гласных больше согласных, вывожу слово slovo := ''; //очищаю переменную для следующего слова end; end.
Объяснение кода листинга программы
- Объявляется множество
ar
для русских букв алфавита. - Объявляется множество
gr
для русских гласных букв. - Объявляется множество
p
для разделителей слов. - Объявляется переменная
sr
для множества согласных букв. - Объявляются переменные и счетчики:
i
,j
,kg
,ks
для работы с буквами в слове. - Объявляются переменные строкового типа:
s
для ввода строки иslovo
для текущего слова. - Запрашивается и считывается строка.
- К строке добавляется пробел в конце предложения.
- Определяется множество
sr
как разность множестваar
с множествомgr
. - В цикле for перебираются символы строки: если символ не является разделителем, он добавляется к временному слову
slovo
, иначе обрабатывается. - Если длина слова больше нуля, инициализируются счетчики гласных и согласных букв.
- Во внутреннем цикле for перебираются буквы слова: если символ является согласной буквой, увеличивается счетчик согласных; если символ является гласной буквой, увеличивается счетчик гласных.
- Если количество гласных больше согласных и длина слова нечетная, выводится слово.
- Переменная для слова
slovo
очищается для обработки следующего слова. Код написан на языке программирования Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д