Три множества - Pascal ABC
Формулировка задачи:
Построить три множества: одно из букв данного слова А и второе из букв данного слова В, третье из букв слова С. Вывести на экран те буквы, которые не встречаются хотя бы в одном множестве.
Решение задачи: «Три множества»
textual
Листинг программы
Var Meet: array[65..122] of byte; Var A,B,C: string; Var A_A, B_A, C_A: array[1..256] of char; i: integer; begin Readln(A); Readln(B); Readln(C); for i:=1 to length(A) do A_A[i]:= A[i]; //3 множества? for i:=1 to length(B) do B_A[i]:= B[i]; for i:=1 to length(C) do C_A[i]:= C[i]; for i:=1 to length(A) do if Meet[ord(A_A[i])] = 0 then inc(Meet[ord(A_A[i])]); for i:=1 to length(B) do if Meet[ord(B_A[i])] = 1 then inc(Meet[ord(B_A[i])]); for i:=1 to length(C) do if Meet[ord(C_A[i])] = 2 then inc(Meet[ord(C_A[i])]); for i:=65 to 122 do if (Meet[i] > 0) and (Meet[i] < 3) then Write(chr(i)); end.
Объяснение кода листинга программы
- В начале кода объявляются переменные: массив Meet размером 65..122 байта, строки A, B, C, а также массивы A_A, B_A, C_A размером 1..256 символов.
- Затем с помощью цикла Readln считываются строки A, B, C.
- Далее с помощью трёх циклов for происходит копирование символов из строк A, B, C в массивы A_A, B_A, C_A соответственно.
- После этого с помощью трёх циклов for происходит проверка каждого символа в массивах A_A, B_A, C_A и увеличение значения переменной Meet для соответствующих индексов.
- В конце кода с помощью цикла for выводятся на экран символы от 65 до 122, при условии что значение переменной Meet для этих символов больше 0 и меньше 3.