Escritura de conjuntos en Pascal

Los valores de conjuntos no se pueden visualizar con la sentencia Write.

Para visualizar los elementos de un conjunto A se debe utilizar el siguiente algoritmo:

  • Copiar los elementos de A en un conjunto auxiliar Aux que tenga un tipo base compatible con el de A.
  • Declarar x una variable del tipo base de Aux e inicializar x al primer elemento de esté tipo base.
  • Mientras x es diferente del último elemento de esté tipo base y Aux no está vacía, hacer :
    I. Si x pertenece a Aux, entonces visualizar x y eliminarlo de Aux
    II. Sustituir x con su sucesor.

Ejemplo:

ProgramImpares;
{El siguiente programa encuentra y muestra todos
los números impares menores o igual a un 
número dado n que esté
entre el límite 1..255}
UsesCrt;
Typenumeros = set of 1..255;
Varimpares,Aux :numeros;
  x,MaxNum,i  :byte;
beginClrScr;
  Write('Escribe un número entero : ');
  ReadLn(MaxNum);
  impares:=[];   {inicializa a conjunto vacío}fori:=1toMaxNumdobeginifodd(i) thenimpares:=impares + [i]
  {añadir elementos al conjunto}end;
  {visualizar elementos del conjunto} Aux:=impares;
  x:=1;
  while (x<>MaxNum+1) and (Aux<>[]) do beginifxinAuxthen beginWriteLn(x);
          Aux:=Aux-[x]
        end;
      x:=succ(x)
    end;
  ReadKey;
  ClrScrend.