Documente Academic
Documente Profesional
Documente Cultură
Tema: Mulțimi.
I. Obiectivele temei.
I.1. Să precizeze mulțimea de valori și operațiile admise pentru oricare tip de date mulțime.
I.2. Să elaboreze programe în care se utilizează tipuri de date mulțime.
II. Conținutul temei.
Un tip de date mulțime se definește în raport cu un tip de bază care trebuie să fie ordinal:
Valorile unui tip de date set sînt mulțimi formate din valorile tipului de bază. Dacă tipul
de bază are n valori, tipul mulțime va avea 2n valori. În implementările limbajului
valoarea lui n este limitată, de regulă <= 256.
Ex!
mc:=[0..2,5..9];
Operații cu mulțimi
m1>=m2;{incluziunea inversă}
m1=m2;{egalitatea}
m1<>m2;{diferit}
Operatorul de apartenență!
m:=m1+m2;
m:=[1..3,5,,9]+[6..8];
* intersecția
mi:=m1*m2;
- diferența
md:=m1-m2;
-într-o structură repetitivă se citește fiecare element al mulțimii și se face reuniune între
vechea mulțime, și mulțimea formată din elementul curent;
m:=[];
write('n:=');readln;
readln(e);{elementul curent}
m:=m+[e];
end;
-se parcurge cu for mulțimea elementelor tipului de bază a mulțimii și utilizând operatorul de
apartenență in se verifică dacă elementul curent aparține mulțimii;
Program p1;
{date de tip MultimeIndicii}
Type Indice=1..10;
MultimeIndicii=set of Indice;
Var A,B,C:MultimeIndicii;
i:integer;
Begin
A:=[1..5,8]; {A contine 1,2,3,4,5,8}
B:=[1..3,9,10]; {B contine 1,2,3,9,10}
C:=[]; {C este o multime vida}
C:=A+B; {C contine 1,2,3,4,5,8,9,10}
Write('Reuniunea');
For i:=1 to 10 do
if i in C then write(i:3);
Writeln;
C:=A*B; {C contine 1,2,3}
Writeln('Intersectia:');
For i:=1 to 10 do
if i in C then write(i:3);
writeln;
C:=A-B; {C contine 4,5,8}
Writeln('Diferenta:');
For i:=1 to 10 do
if i in C then write(i:3);
writeln;
readln; End.
program set1;
var a,b,c:set of char;
i:integer;
begin
A:=['1','3','5','7','8'];
B:=['1','a','3','5','7','8','9','d'];
C:=(A+B) - (A*B);
for i:=1 to 255 do
if chr(i) in C then write(chr(i),' ');
readln
end.
program p1;
type Indice=1..10;
MultimeIndicii=set of Indice;
Var A,C,X:MultimeIndicii;
i,n,e:integer;
begin
write('n='); readln(n);
A:=[];
for i:=1 to n do begin
write('Elementul ',i,' este:');
readln(e);
A:=A+[e];
end;
C:=[];
for i:=1 to n do begin
write('Elementul ',i,' este:');
readln(e);
C:=C+[e];
end;
X:=A+C;
for i:=1 to 255 do
if i in X then write(i,' ');
readln
end.
Anexa nr. 5.
Sarcina: Fie mulţimile A, B,C,D cu elemente de tip intreg, care se vor culege de la tastatura.
Să se creeze un program care va rezolva problema propusă conform variantei.