ENSEMBLES

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