Pagina anteriorIndiceProxima pagina

Algoritmos Computacionais

10.6 Set

Define o conceito de conjunto, cujos elementos são de um determinado tipo.

Diagrama Sintático 

Onde tipo só pode ser tipo simples

Ex.:

 Type pedra = 1..90;
      saco = Set of pedra;
 Var  bingo: saco;

 Type 
      cor = (vermelho,azul,verde);
 Var  
      cores: Set of cor;

Conjuntos possíveis:
[] vazio
[vermelho],[verde],[azul]        3 de 1
[vermelho, verde],[vermelho, azul],[verde, azul]        3 de 2
[vermelho, azul, verde]        1 de 1

 Para referenciar um conjunto de valores, incluem-se os elementos entre colchetes e separados por vírgulas.
Ex.: 

  •  [1,2,8,10]
  • ['t', 'm', 'i']
  • [alpha,beta+2,delta]
  • [1..10]
  • ['a' .. 'l']
  • ['a'..'l','+','-','0'..'9']
  • Operações no tipo Set

     Sendo: A,B  variáveis do tipo set
        e   é um elemento de um set
        E   é uma expressão do tipo set
    temos:
    A:= E {atribuição}
    A + B {união}
    A * B {interseção}
    A - B {diferença}
    e in A {pertinência}
    A <> B {desigualdade}
    A = B {igualdade}
    A <= B {True se A estiver contido em B}
    A >= B {True se A contiver B}

    Ex.:

     
    Var
      ch: char;
    Begin
       If (ch='a') or (ch='b') or 
           (ch='c') or (ch='d') or 
           (ch='z')
       Then S;
    End.
    =
    Begin
         If ch in ['a'..'d','z']
         Then S;
    End.

    Ex.:

    Type 
         primarias = (vermelho, amarelo, azul);
         cor = Set of primarias;
    Var 
        cor1,cor2: cor;
        vogais, consoantes, letras, olhos_possiveis: Set of char;
        codigo: Set of 0..7;
        olhos: char;
        contido: boolean;
    Begin
       cor1:= [vermelho];
       cor2:= [];
       letras:= ['A'..'Z'];
       vogais:= ['A','E','I','O','U'];
       consoantes:= letras - vogais;
       codigo:= [0,1,2,3];
       contido:= [2,3];   <=  codigo
       olhos_possiveis:= ['C','V','P','A'];
       If olhos in olhos_possiveis
       Then...
       ...
    End.

     
     
     

    Pagina anteriorIndiceProxima pagina

    araujo@eng.uerj.br