Pascal - Conjuntos

Um conjunto é uma coleção de elementos do mesmo tipo. Pascal permite definir o tipo de dado definido. Os elementos em um conjunto são chamados de seus membros. Em matemática, os conjuntos são representados encerrando os membros entre colchetes {} . No entanto, em Pascal, os elementos do conjunto são colocados entre colchetes [], que são chamados de construtor do conjunto.

Definindo tipos de conjuntos e variáveis

Os tipos Pascal Set são definidos como

type
set-identifier = set of base type;

Variáveis ​​de tipo de conjunto são definidas como

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

ou,

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

Exemplos de algumas declarações de tipo de conjunto válido são -

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;

Operadores de conjunto

Você pode realizar as seguintes operações em conjuntos Pascal.

Sr. Não Operações e descrições
1

Union

Isso une dois conjuntos e fornece um novo conjunto com membros de ambos os conjuntos.

2

Difference

Obtém a diferença de dois conjuntos e fornece um novo conjunto com elementos não comuns a nenhum dos conjuntos.

3

Intersection

Obtém a interseção de dois conjuntos e fornece um novo conjunto com elementos comuns a ambos.

4

Inclusion

Um conjunto P está incluído no conjunto Q, se todos os itens em P também estiverem em Q, mas não vice-versa.

5

Symmetric difference

Obtém a diferença simétrica de dois conjuntos e fornece um conjunto de elementos, que estão em qualquer um dos conjuntos e não em sua interseção.

6

In

Ele verifica a adesão.

A tabela a seguir mostra todos os operadores de conjunto suportados pelo Free Pascal. Assuma issoS1 e S2 são dois conjuntos de caracteres, tais que -

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

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

Operador Descrição Exemplo
+ União de dois conjuntos

S1 + S2 dará um conjunto

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

- Diferença de dois conjuntos

S1 - S2 dará um conjunto

['a', 'b']

* Interseção de dois conjuntos

S1 * S2 dará um conjunto

['c']

> < Diferença simétrica de dois conjuntos S1> <S2 dará um conjunto ['a', 'b', 'd', 'e']
= Verifica a igualdade de dois conjuntos S1 = S2 dará o valor booleano False
<> Verifica a não igualdade de dois conjuntos S1 <> S2 dará o valor booleano True
<= Contém (verifica se um conjunto é um subconjunto do outro) S1 <= S2 dará o valor booleano False
Incluir Inclui um elemento no conjunto; basicamente é a união de um conjunto e um elemento do mesmo tipo de base

Incluir (S1, ['d']) dará um conjunto

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

Excluir Exclui um elemento de um conjunto; basicamente é a diferença de um conjunto e um elemento do mesmo tipo de base

Excluir (S2, ['d']) dará um conjunto

['c', 'e']

Dentro Verifica a associação do conjunto de um elemento em um conjunto ['e'] em S2 dá o valor booleano True

Exemplo

O exemplo a seguir ilustra o uso de alguns desses operadores -

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.

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

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