Вывести в алфавитном порядке буквы, входящие одновременно во все множества - 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.

Объяснение кода листинга программы

  1. Объявление инициализации процедуры init, которая принимает строку s и переменную множество m типа mnz. Инициализация переменной i типа byte.
  2. В инициализации процедуры init очищается множество m, а затем циклично добавляются все символы из строки s в множество m.
  3. Объявление процедуры print, которая принимает переменную множество m типа mnz и строку s.
  4. В процедуре print выводится строка s, затем в цикле от 'а' до 'я' проверяется, принадлежит ли символ множеству m и если да, то символ выводится.
  5. Объявление переменных d1, d3, d5, d7, m1, m2, m3, m4 типа mnz, а также переменных c типа char и k типа byte.
  6. Инициализация множеств d1, d3, d5, d7 с помощью процедуры init для строк понедельник, среда, пятница, воскресение соответственно.
  7. Вывод на печать множеств d1, d3, d5, d7 с помощью процедуры print.
  8. Создание множества m1, содержащего буквы, входящие во все множества d1, d3, d5, d7, путем пересечения этих множеств. Если m1 пусто, выводится сообщение Нет букв, входящих во все множества, иначе выводятся буквы из m1.
  9. Создание множества m2, содержащего буквы, входящие одновременно в множества d1 и d5, путем пересечения этих множеств. Если m2 пусто, выводится сообщение Нет букв, входящих одновременно в множества D1 и D5, иначе выводятся буквы из m2.
  10. Создание множества m3, содержащего буквы, входящие хотя бы в одно из множеств d1, d3, d5, d7, путем их объединения. Вывод букв из множества m3.
  11. Создание множества m4, содержащего буквы, входящие ровно в 2 множества d1, d3, d5, d7. Если m4 пусто, выводится сообщение Нет букв, входящих ровно в 2 множества, иначе выводятся буквы из m4.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы