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

Riki008 Riki008    1   31.07.2019 15:40    1

Ответы
egoregorcherk egoregorcherk  28.09.2020 18:13
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
ПОКАЗАТЬ ОТВЕТЫ
maksalina2 maksalina2  28.09.2020 18:13
Думаю так попроще, хотя не уверенна сработает ли 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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика