Un ensemble est une "collection" d'éléments de même type (cf cours maths 6ème). Supposons vouloir représenter des vendeurs et leurs domaines d'action.
Le type ensemble est défini par SET OF :
TYPE produits=(velos,motos,autos,accessoires); VAR vendeur1,vendeur2 : SET OF produits;On "remplit" un ensemble en donnant ses éléments entre crochets :
vendeur1:=[velos,motos]; vendeur2:=[motos,accessoires]; l'ensemble vide est : []On peut faire les opérations suivantes :
UNION : vendeur1+vendeur2=[velos,motos,accessoires]
INTERSECTION : vendeur1*vendeur2=[motos]
COMPLEMENT : vendeur1-vendeur2=[velos]
vendeur2-vendeur1=[accessoires]
les tests booléens possibles sont : = , <> , <= (inclus) , >= (contenant).
On teste l'appartenance d'un élément par IN : si X vaut motos, alors X IN VENDEUR1 et [motos]<=VENDEUR1 sont équivalents (IN compare un élément et un ensemble, alors que <= compare deux ensembles.
Rq: En général, on ne pense pas à utiliser les ensembles (le prof de maths aurait-il oublié de nous dire à quoi ça sert ?), et l'on s'embrouille dans des programmes complexes. Voici par exemple, des idées pour programmer facilement un automatisme défini par plusieurs Grafcet complexes ([xx] se lisant "ensemble des xx") :
[étapes actives]:=[étapes initiales] pour chaque transition : si [étapes immédiatement précédentes] <= [étapes actives] et [capteurs nécessaires] <= [capteurs] alors [ét. actives]:=[ét. actives]-[précédentes]+[suivantes] activer [sorties] en fonction [étapes actives] et boucler
On peut trouver un exemple détaillé dans mon document sur la mise en oeuvre du Grafcet