Pascal - Ensembles

Un ensemble est une collection d'éléments du même type. Pascal permet de définir le type de données défini. Les éléments d'un ensemble sont appelés ses membres. En mathématiques, les ensembles sont représentés en entourant les membres entre accolades {} . Cependant, en Pascal, les éléments set sont placés entre crochets [], qui sont appelés constructeur d'ensemble.

Définition des types et des variables d'ensemble

Les types d'ensemble Pascal sont définis comme

type
set-identifier = set of base type;

Les variables de type set sont définies comme

var
s1, s2, ...: set-identifier;

ou,

s1, s2...: set of base type;

Des exemples de déclaration de type d'ensemble valide sont -

type
Days = (mon, tue, wed, thu, fri, sat, sun);
Letters = set of char;
DaySet = set of days;
Alphabets = set of 'A' .. 'Z';
studentAge = set of 13..20;

Définir les opérateurs

Vous pouvez effectuer les opérations d'ensemble suivantes sur les ensembles Pascal.

Sr. Non Opérations et descriptions
1

Union

Cela joint deux ensembles et donne un nouvel ensemble avec des membres des deux ensembles.

2

Difference

Obtient la différence de deux ensembles et donne un nouvel ensemble avec des éléments qui ne sont communs à aucun des ensembles.

3

Intersection

Obtient l'intersection de deux ensembles et donne un nouvel ensemble avec des éléments communs aux deux ensembles.

4

Inclusion

Un ensemble P est inclus dans l'ensemble Q, si tous les éléments de P sont également dans Q mais pas l'inverse.

5

Symmetric difference

Obtient la différence symétrique de deux ensembles et donne un ensemble d'éléments, qui se trouvent dans l'un des ensembles et non dans leur intersection.

6

In

Il vérifie l'adhésion.

Le tableau suivant montre tous les opérateurs d'ensemble pris en charge par Free Pascal. Suppose queS1 et S2 sont deux jeux de caractères, tels que -

S1: = ['a', 'b', 'c'];

S2: = ['c', 'd', 'e'];

Opérateur La description Exemple
+ Union de deux ensembles

S1 + S2 donnera un ensemble

['a', 'b', 'c', 'd', 'e']

- Différence de deux ensembles

S1 - S2 donnera un ensemble

['un B']

* Intersection de deux ensembles

S1 * S2 donnera un ensemble

['c']

> < Différence symétrique de deux ensembles S1> <S2 donnera un ensemble ['a', 'b', 'd', 'e']
= Vérifie l'égalité de deux ensembles S1 = S2 donnera la valeur booléenne False
<> Vérifie la non-égalité de deux ensembles S1 <> S2 donnera la valeur booléenne True
<= Contient (vérifie si un ensemble est un sous-ensemble de l'autre) S1 <= S2 donnera la valeur booléenne False
Comprendre Comprend un élément dans l'ensemble; au fond c'est l'union d'un ensemble et d'un élément du même type de base

Inclure (S1, ['d']) donnera un ensemble

['a B c d']

Exclure Exclut un élément d'un ensemble; c'est fondamentalement la différence d'un ensemble et d'un élément du même type de base

Exclude (S2, ['d']) donnera un ensemble

['c', 'e']

Dans Vérifie l'appartenance à un ensemble d'un élément dans un ensemble ['e'] dans S2 donne la valeur booléenne True

Exemple

L'exemple suivant illustre l'utilisation de certains de ces opérateurs -

program setColors;
type  
color = (red, blue, yellow, green, white, black, orange);  
colors = set of color;  
 
procedure displayColors(c : colors);  
const  
names : array [color] of String[7]  
  = ('red', 'blue', 'yellow', 'green', 'white', 'black', 'orange');  
var  
   cl : color;  
   s : String;  

begin  
   s:= ' ';  
   for cl:=red to orange do  
      if cl in c then  
      begin  
         if (s<>' ') then s :=s +' , ';  
         s:=s+names[cl];  
      end;  
   writeln('[',s,']');  
end;  
 
var  
   c : colors;  
 
begin  
   c:= [red, blue, yellow, green, white, black, orange];
   displayColors(c);

   c:=[red, blue]+[yellow, green]; 
   displayColors(c);  

   c:=[red, blue, yellow, green, white, black, orange] - [green, white];     
   displayColors(c);    

   c:= [red, blue, yellow, green, white, black, orange]*[green, white];     
   displayColors(c);  

   c:= [red, blue, yellow, green]><[yellow, green, white, black]; 
   displayColors(c);  
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

[ red , blue , yellow , green , white , black , orange]
[ red , blue , yellow , green]
[ red , blue , yellow , black , orange]
[ green , white]
[ red , blue , white , black]