1.4. TIPURI DE DATE MULȚIME (SET)

Putem avea multimi de caractere si multimi de numere byte(256 de caractere).

 

Pentru a declara o multime:

type multime=set of 0..9;

var mc:multime;

ml:set of ‘A’..’Z’;

mk:set of char;

 

Obs! Constantele de tip multime se numesc constructori.

Un constructor contine intre paranteze patrate elementele membre ale multimii.

Ex!

mc:=[0..2,5..9];

Multimea de litere ia valoarea: ml:=[];{multimea vida}

 

Multimea de caractere ia valoarea de

mcar:=[a..f,0..3,’+’,’*’];

 

 

Operatii cu multimi

 

Operatia de incluziune: m1<=m2;{verifica daca m1 este inclusa sau egal cu m2}

m1>=m2;{incluziunea inversa}

m1=m2;{egalitatea}

m1<>m2;{diferit}

 

Obs!Nu exista mai mare strict!>,<;EROARE!

 

 

Operatorul de apartenenta!

x in m verfifica daca x apartine multimii m

not (x in m) daca x nu apartine multimii

 

Operatii cu multimi!

 

+ reuniunea

m:=m1+m2;

m:=[1..3,5,,9]+[6..8];

 

* intersectia

mi:=m1*m2;

 

- diferenta

md:=m1-m2;

 

Citirea unei multimi:

 

-se initializeaza multimea cu multime vida

-intr-o structura repetitiva se citeste fiecare element al multimii,si se face reuniune intre vechea multime si multimea formata din elementul curent;

var m:set of byte;

n,i,e:byte;

begin

m:=[];

write('n:=');readlnNu;

for i:=1 to n do begin

write('Elementul ',i,' este:');

readln(e);{elementul curent}

m:=m+[e];

end;

Afisarea unei multimi

 

-se parcurge cu for multimea elementelor tipului de baza a multimii si utilizand operatorul de apartenenta in se verifica daca elementul curent apartine multimii;

 

for i:=1 to 255 do

if i in m then write(i,' ');

 

OBS!Daca m este de tip char,atunci se verifica in functie de codul ASCII!

 

for i:=1 to 255 do

if chr(i) in m then write(chr(i),' ');

SAU

for c:=chr(0) to chr(255) do

if c in m then write(i)

Ultima modificare: luni, 6 iunie 2011, 19:43