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]