Pascal [множества]

  • Автор темы AILEKCAHdP
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

AILEKCAHdP

Гость
#1
Написать программу, в которой для конечных упорядоченных множеств реализовать все основные операции (Объединением,Пересечением,Разностью,Симметрической разностью) с помощью алгоритма типа слияния . Допустима организация множеств в виде списка или в виде массива.
1. На вход подаются два упорядоченных множества A и B (вводятся с клавиатуры, элементы множеств – буквы латинского алфавита).
2. После ввода множеств выбирается требуемая операция (посредством текстового меню, вводом определенного символа в ответ на запрос – выбор по желанию автора).
3. Программа посредством алгоритма типа слияния определяет результат выбранной операции и выдает его на экран с необходимыми пояснениями. Одновременно с результатом на экране должны присутствовать и исходные множества.
4.Возврат на п.2 (выбор операции).
5. Завершение работы программы – из п.2 (например, по ESC).

Множества ввожу ,а дальше никак.Подскажите как правильно процедуры описать,чтобы их можно было в меню вызывать.


Код:
Program dm1;
uses crt;
Type
Simvol = set of 'a'..'z';
Var
A,B:simvol;
i:integer;
x,key:char;
begin
A:=[];
B:=[];
i:=1;
repeat
clrscr;
writeln(' Vvedite ',i,'-y element mnogestva A ');
readln(x);
if (x in A)
then
begin
writeln(x,' uje sodergitsya v mnogestve A ');
i:=i-1;
end
else
begin
writeln(x,' pomeschon v mnogestvo A ');
A:=A+[x];
end;
i:=i+1;
until i>5;
i:=1;
repeat
clrscr;
writeln(' Vvedite ',i,'-y element mnogestva B ');
readln(x);
if (x in B)
then
begin
writeln(x,' uje sodergitsya v mnogestve B ');
i:=i-1;
end
else
begin
writeln(x,' pomeschon v mnogestvo B ');
B:=B+[x];
end;
i:=i+1;

until i>5;
clrscr;
writeln('	 mnojestvo A: ');
writeln;
for x:='A' to 'z' do if x in A then write(x,' ');
writeln;
writeln('	 mnojestvo B: ');
writeln;
for x:='A' to 'z' do if x in B then write(x,' ');
procedure obyedinenie(c:chat):simvol;
begin
C:=A+B;
writeln(C);
end;
procedure perese4enie(c:chat):simvol;
begin
C:=A*B;
writeln(C);
end;
procedure raznosty(c:chat):simvol;
C:=A-B;
writeln(C);
repeat
clrscr;
writeln('===========================');
writeln('1: obyedinenie');
writeln('2: perese4enie');
writeln('3: simmetr. raznosty');
writeln('4: raznosty');
writeln('o: vyhod');
key:=readkey;
clrscr;
case key of
'1': obyedinenie();
'2': perese4enie();
'3': simmetr();
'4': raznosty();

until key='0';
end.
 
Статус
Закрыто для дальнейших ответов.