Напечатать гласные буквы, входящие в каждое слово, и согласные буквы, не входящие ни в одно слово - Pascal
Формулировка задачи:
Дана непустая последовательность слов из строчных русских букв; между соседними
словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке все гласные буквы,
которые входят в каждое слово; все согласные буквы, которые не входят ни в одно слово.
Помогите с программой, пожалуйста.
Решение задачи: «Напечатать гласные буквы, входящие в каждое слово, и согласные буквы, не входящие ни в одно слово»
textual
Листинг программы
var s: string; glasn, soglasn, w: set of char; i: integer; c: char; begin writeln('Введите последовательность русских слов через запятую с точкой в конце:'); readln(s); glasn := ['а','е','ё','и','о','у','ы','э','ю','я']; soglasn := ['б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ']; w := []; for i := 1 to length(s) do if s[i] in ['.', ','] then begin glasn := glasn * w; soglasn := soglasn - w; w := [] end else include(w, s[i]); //процедура include - это то же самое, что и w := w + [s[i]], но быстрее writeln('Гласные буквы, входящие в каждое слово:'); if glasn = [] then writeln('Не найдены.') else begin for c := ' ' to high(char) do if c in glasn then write(c); writeln end; writeln('Согласные буквы, которые не входят ни в одно слово:'); if soglasn = [] then writeln('Не найдены.') else begin for c := ' ' to high(char) do if c in soglasn then write(c); writeln end; readln end.
Объяснение кода листинга программы
- Объявляется переменная
s
типа string для хранения ввода пользователя - Создаются множества символов
glasn
иsoglasn
для хранения гласных и согласных букв соответственно - Объявляется переменная
w
для временного хранения букв в каждом слове - Выводится приглашение на ввод последовательности русских слов
- Пользователь вводит последовательность слов через запятую, которая сохраняется в переменную
s
- Инициализируются множества
glasn
иsoglasn
соответствующими русскими гласными и согласными буквами - Выполняется цикл для обработки каждого символа в строке
s
- Если текущий символ - точка или запятая, то обновляются множества
glasn
иsoglasn
путем пересечения и разности с множествомw
, и переменнаяw
обнуляется - Печатаются гласные буквы, входящие в каждое слово, либо сообщение
Не найдены.
- Печатаются согласные буквы, которые не входят ни в одно слово, либо сообщение
Не найдены.
- Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д