Множества символов заполнены следующим образом: множество 1-цифрами; множество 2 – знаками препинания; множество 3 – буквами. Выведите на экран пересечение и объединение этих множеств.

Множества символов заполнены следующим образом: множество 1-цифрами; множество 2 – знаками препинания; множество 3 – буквами. Выведите на экран пересечение и объединение этих множеств.
Гость
Ответ(ы) на вопрос:
Гость
var m1,m2,m3,m4,m5:set of char; c:char; begin m1:=['0'..'9']; m2:=['.',',',':','?','!',';']; m3:=['a'..'z']; m4:=m1*m2*m3; m5:=m1+m2+m3; writeln('Пересечение множеств:'); for c:=chr(32) to chr(255) do  if c in m4 then write(c:2); writeln; writeln('Объединение множеств:'); for c:=chr(32) to chr(255) do  if c in m5 then write(c:2); writeln; end. Результат: Пересечение множеств: Объединение множеств:  ! , . 0 1 2 3 4 5 6 7 8 9 : ; ? a b c d e f g h i j k l m n o p q r s t u v w x y z
Гость
думаю так попроще, хотя не уверенна сработает ли foreach //PascalABC.NET 3.1 сборка 1239 var     m1, m2, m3: set of char;     c: char; begin     m1 := ['0'..'9'];     m2 := ['.', ',', ':', '?', '!', ';'];     m3 := ['a'..'z'];     writeln('Пересечение множеств:');     foreach c in (m1 * m2 * m3) do         write(c, ' ');     writeln;         writeln('Объединение множеств:');     foreach c in (m1 + m2 + m3) do         write(c, ' ');     writeln; end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы