Сформировать из последовательности букв два множества - Pascal
Формулировка задачи:
Ввести последовательность букв латинского алфавита. Каждую вторую букву записать множеству S1, другие - к множеству S2. Найти объединение, пересечение и разность полученных множеств.
Решение задачи: «Сформировать из последовательности букв два множества»
textual
Листинг программы
type
TSetChar = Set Of Char;
procedure PrintSet(const st: TSetChar);
var
c: Char;
begin
for c := #65 to #90 do
begin
if (c in st)
then
Write(c:2);
if (Chr(Ord(c) + 32) in st)
then
Write(Chr(Ord(c) + 32):2);
end;
WriteLn;
end;
var
str: String;
s1, s2: TSetChar;
i: Word;
begin
s1 := []; s2 := [];
Write('Input s: '); ReadLn(str);
for i := 1 to Length(str) do
if (Odd(i))
then
Include(s1, str[i])
else
Include(s2, str[i]);
Write('S1: '); PrintSet(s1);
Write('S2: '); PrintSet(s2);
Write('Объединение: '); PrintSet(s1 + s2);
Write('Разность s1 - s2: '); PrintSet(s1 - s2);
Write('Разность s2 - s1: '); PrintSet(s2 - s1);
Write('Пересечение: '); PrintSet(s1 * s2);
end.
Объяснение кода листинга программы
- Определение пользовательского типа данных TSetChar для представления множества символов.
- Создание процедуры PrintSet для вывода множества символов.
- Определение переменных:
strтипа String для хранения входной строки,s1иs2типа TSetChar для создания двух множеств символов,iтипа Word для использования в цикле.
- Инициализация переменных
s1иs2пустыми множествами. - Ввод строки с клавиатуры и сохранение ее в переменную
str. - Проход по символам строки
strс помощью цикла, добавление символов с нечетным индексом вs1, а с четным - вs2. - Вывод множества
s1с помощью процедуры PrintSet. - Вывод множества
s2с помощью процедуры PrintSet. - Вывод объединения множеств
s1иs2с помощью процедуры PrintSet. - Вывод разности множеств
s1 - s2с помощью процедуры PrintSet. - Вывод разности множеств
s2 - s1с помощью процедуры PrintSet. - Вывод пересечения множеств
s1 * s2с помощью процедуры PrintSet.