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.