Un ensemble est une "collection" d'elements de meme type (cf cours maths 6eme). Supposons vouloir representer des vendeurs et leurs domaines d'action.
Le type ensemble est defini par SET OF :
TYPE produits=(velos,motos,autos,accessoires);
VAR vendeur1,vendeur2 : SET OF produits;
On "remplit" un ensemble en donnant ses elements entre crochets
: vendeur1:=[velos,motos];
vendeur2:=[motos,accessoires];
l'ensemble vide est : []
On peut faire les operations suivantes :
UNION : vendeur1+vendeur2=[velos,motos,accessoires]
INTERSECTION : vendeur1*vendeur2=[motos]
COMPLEMENT : vendeur1-vendeur2=[velos]
vendeur2-vendeur1=[accessoires]
les tests booleens possibles sont : = , <> , <= (inclus) , >= (contenant).
On teste l'appartenance d'un element par IN : si X vaut motos, alors X IN VENDEUR1 et [motos]<=VENDEUR1 sont equivalents (IN compare un element et un ensemble, alors que <= compare deux ensembles.
Rq: En general, on ne pense pas a utiliser les ensembles (le prof de maths aurait-il oublie de nous dire a quoi ca sert ?), et l'on s'embrouille dans des programmes complexes. Voici par exemple, des idees pour programmer facilement un automatisme defini par plusieurs Grafcet complexes ([xx] se lisant "ensemble des xx") :
[etapes actives]:=[etapes initiales] pour chaque transition : si [etapes immediatement precedentes] <= [etapes actives] et [capteurs necessaires] <= [capteurs] alors [et. actives]:=[et. actives]-[precedentes]+[suivantes] activer [sorties] en fonction [etapes actives] et boucler
On peut trouver un exemple detaille dans mon document sur la mise en oeuvre du Grafcet