Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ПЗ
З В І Т
Лабораторна робота № 3
З курсу «Дискретної математики»
Тема:
«Операції над множинами»
Мета роботи:
Навчитися виконувати операції над множинами за допомогою функцій мови Pascal.
Завдання:
Описати 3 числові масиви A (5 елементів), B (3 елементи), C (7 елементів).
Ввести з клавіатури три масиви A, B, C .
Здійснити задані перетворення над масивами і видати результат.
Знайти суму всіх елементів масиву А;
Здійснити перетворення (A∩B)∩C;
Записати декартовий добуток AxC
Текст програми
uses crt;
const n=9;
type
my=set of 1..9;
var
i,j,kst1,kst2:integer;
dig1,dig2,dig3,a,b,pr,ob,rz,rz1:array [1..n] of integer;
d,d1,d2,d3:my;
begin clrscr;
for i:=1 to n do
begin
a[i]:=0;
b[i]:=0;
pr[i]:=0;
ob[i]:=0;
end;
writeln('Enter k-st6 elenentiv 1-oji mno*unu, vid 1 do 9');
readln (kst1);
if kst1>n then
begin
writeln('Vu vvelu 3aveluke 4uslo!!!!!');
readln;
exit;
end
else
begin
j:=kst1;
for i:=1 to kst1 do
begin
writeln('Vvedit6 ',i,'element 1-oji mno*unu vid 1 do 9');
readln(j);
a[j]:=1;
end;
end;
writeln('Enter k-st6 elenentiv 2-oji mno*unu, vid 1 do 9');
readln (kst2);
if kst2>n then
begin
writeln('Vu vvelu 3aveluke 4uslo!!!!!');
readln;
exit;
end
else
begin
j:=kst2;
for i:=1 to kst2 do
begin
writeln('Vvedit6 ',i,'element 2-oji mno*unu vid 1 do 9');
readln(j);
b[j]:=1;
end;
end;
writeln('=======================================================');
writeln('Mno*una1: ');
writeln;
for i:=1 to n do
begin
write(a[i]);
end;writeln;
writeln;
writeln('Mno*una2: ');
writeln;
for i:=1 to n do
write(b[i]);writeln;
for i :=1 to n do
begin
if (a[i]=1)and(b[i]=1) then pr[i]:=1
else pr[i]:=0;
end; writeln('==================================================');
writeln ('Pereriz mno*unu1 i mno*unu2 :');
for i:=1 to n do
write(pr[i]);
for i:=1 to n do
if (a[i]=1) or (b[i]=1) then
ob[i]:=1
else ob[i]:=0; writeln;
writeln('=====================================================');
writeln('Objednannja mno*unu1 i mno*unu2 :');
for i :=1 to n do
write(ob[i]);
for i:=1 to n do
if (a[i]=1) and (b[i]=0) then
rz[i]:=1
else rz[i]:=0;writeln;
writeln('======================================================');
writeln('Ri3nucja mno*unu1 i mno*unu2:');
if (a[i]=1) and (b[i]=0) then
rz[i]:=1
else rz[i]:=0;writeln;
for i:=1 to n do
write(rz[i]);
for i:=1 to n do
if (a[i]=0) and (b[i]=1) then
rz1[i]:=1
else rz1[i]:=0;writeln;
writeln('======================================================');
writeln('Ri3nucja mno*unu2 i mno*unu1');
for i:=1 to n do
write(rz1[i]);
writeln;
writeln('======================================================');
writeln('Vvedit6 element dl@ powyky (Vid 1 do 9) ');
readln(j);
if j>n then
begin
writeln ('Vu vvelu ne pravul6ne 4uslo!!! ,vvedit6 w4e raz');
readln(j);
end;
if a[j]=1 then writeln('Element vxodut6 v mno*uny1');
if b[j]=1 then writeln('Element vxodut6 v mno*uny2');
writeln;
writeln;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln('Vvedit6 elementu 3-ox mno*un (9 elementiv vid 1 do 9) ');
for i:=1 to n do
begin
Writeln ('Vvedit6 ',i,'-uj element 1 mno*unu vid 1 do 9');
readln(dig1[i]);
end;
d1:=[dig1[1],dig1[2],dig1[3],dig1[4],dig1[5],dig1[6],dig1[7],dig1[8],dig1[9]];
writeln;
for i:=1 to n do
begin
Writeln ('Vvedit6 ',i,'-uj element 2 mno*unu vid 1 do 9');
readln(dig2[i]);
end;
d2:=[dig2[1],dig2[2],dig2[3],dig2[4],dig2[5],dig2[6],dig2[7],dig2[8],dig2[9]];
writeln;
for i:=1 to n do
begin
Writeln ('Vvedit6 ',i,'-uj element 3 mno*unu vid 1 do 9');
readln(dig3[i]);
end;
d3:=[dig3[1],dig3[2],dig3[3],dig3[4],dig3[5],dig3[6],dig3[7],dig3[8],dig3[9]];
writeln;
d:=d1+d2+d3;
writeln('Objednannja 3-ox mno*un: ');
for i := 1 to n do
if i in d then
writeln(i,' ');
d:= d1*d2*d3;
writeln;
writeln ('Peretun 3-ox mno*un: ');
for i:=1 to n do
if i in d then
writeln(i,' ');
writeln;
writeln('Riznucja 1mno*una- 2mno*una: ');
d:=d1-d2;
for i :=1 to n do
if i in d then
writeln (i,' ');
writeln('+++++++++++++++++++FIN+++++++++++++++++++++++++');
repeat until keypressed;
Висновок:
На даній лабораторній роботі я навчився виконувати операції на множинами в мові Pascal за допомогою використання масивів та дій над ними.