Напечатать гласные буквы, входящие в каждое слово, и согласные буквы, не входящие ни в одно слово - 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
обнуляется - Печатаются гласные буквы, входящие в каждое слово, либо сообщение
Не найдены.
- Печатаются согласные буквы, которые не входят ни в одно слово, либо сообщение
Не найдены.
- Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д