Вывести в алфавитном порядке буквы, входящие одновременно во все множества - Pascal
Формулировка задачи:
Пусть D1, D3, D5, D7 – множества, составленные из букв, входящих в
названия нечетных дней недели. Вывести в алфавитном порядке:
а) буквы, входящие одновременно во все множества;
б) буквы, входящие одновременно в названия и первого, и пятого дня
недели;
в) буквы, входящие хотя бы в одно множество;
г) буквы, входящие в название только двух нечетных дней недели.
Для вывода множеств использовать процедуру.
Решение задачи: «Вывести в алфавитном порядке буквы, входящие одновременно во все множества»
textual
Листинг программы
type mnz=set of char; procedure init(s:string;var m:mnz); var i:byte; begin m:=[]; for i:=1 to length(s)do m:=m+[s[i]]; end; procedure print(m:mnz;s:string); var c:char; begin writeln(s); for c:='а' to 'я' do if c in m then write(c:2); writeln; end; var d1,d3,d5,d7,m1,m2,m3,m4:mnz; c:char; k:byte; begin init('понедельник',d1); init('среда',d3); init('пятница',d5); init('воскресение',d7); print(d1,'Множество D1'); print(d3,'Множество D3'); print(d5,'Множество D5'); print(d7,'Множество D7'); m1:=d1*d3*d5*d7; if m1=[] then writeln('Нет букв, входящих во все множества') else print(m1,'Буквы, входящие во все множества'); m2:=d1*d5; if m2=[] then writeln('Нет букв, входящих одновременно в ножества D1 и D5') else print(m2,'Буквы, входящие одновременно в ножества D1 и D5'); m3:=d1+d3+d5+d7; print(m3,'Буквы, входяшие хотя бы в одно множество'); m4:=[]; for c:='а' to 'я' do begin k:=0; if (c in d1)or(c in d3)or(c in d5)or(c in d7) then inc(k); if k=2 then m4:=m4+[c]; end; if m4=[] then write('Нет букв, входящих ровно в 2 множества') else print(m4,'Буквы, входящие в 2 множества'); end.
Объяснение кода листинга программы
- Объявление инициализации процедуры init, которая принимает строку
s
и переменную множествоm
типа mnz. Инициализация переменнойi
типа byte. - В инициализации процедуры init очищается множество
m
, а затем циклично добавляются все символы из строкиs
в множествоm
. - Объявление процедуры print, которая принимает переменную множество
m
типа mnz и строкуs
. - В процедуре print выводится строка
s
, затем в цикле от 'а' до 'я' проверяется, принадлежит ли символ множествуm
и если да, то символ выводится. - Объявление переменных
d1, d3, d5, d7, m1, m2, m3, m4
типа mnz, а также переменныхc
типа char иk
типа byte. - Инициализация множеств d1, d3, d5, d7 с помощью процедуры init для строк
понедельник
,среда
,пятница
,воскресение
соответственно. - Вывод на печать множеств d1, d3, d5, d7 с помощью процедуры print.
- Создание множества m1, содержащего буквы, входящие во все множества d1, d3, d5, d7, путем пересечения этих множеств. Если m1 пусто, выводится сообщение
Нет букв, входящих во все множества
, иначе выводятся буквы из m1. - Создание множества m2, содержащего буквы, входящие одновременно в множества d1 и d5, путем пересечения этих множеств. Если m2 пусто, выводится сообщение
Нет букв, входящих одновременно в множества D1 и D5
, иначе выводятся буквы из m2. - Создание множества m3, содержащего буквы, входящие хотя бы в одно из множеств d1, d3, d5, d7, путем их объединения. Вывод букв из множества m3.
- Создание множества m4, содержащего буквы, входящие ровно в 2 множества d1, d3, d5, d7. Если m4 пусто, выводится сообщение
Нет букв, входящих ровно в 2 множества
, иначе выводятся буквы из m4.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д