BotonMenu
BotonIndice

Visita : http://www.conoce3000.com
Paypal : https://www.paypal.me/conoce3000/1

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.5. CONJUNTOS.
5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.5. CONJUNTOS.
5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.5. CONJUNTOS.

SIGUIENTE

SIGUIENTE

SIGUIENTE


‒ Conjuntos.

Los conjuntos son una estructura más que nos ofrece el compilador. Un conjunto es una colección de elementos de un mismo tipo de dato base. Se conoce como tipo de dato base al tipo de dato que se usará para definir los elementos del conjunto, el tipo de dato base sólo puede ser un tipo de dato con no más de 256 valores, es decir un valor entre 0 y 255. Los tipos de datos char, enumerados, subrango y el tipo de dato byte, pueden ser un tipo de dato base. Para declarar un conjunto usamos la palabra reservada Set y of, del siguiente modo:

Type
   TDiasSemana = (Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo); //Enumerado
Var
   DiaLaboral,DiaFeriado:Set of TDiasSemana;

Para asignar elementos a los conjuntos previamente creados se procede del siguiente modo:

DiaLaboral:=[Lunes..Viernes];
DiaFeriado:=[Sabado,Domingo];

Los corchetes usados se denominan constructores del conjunto, al asignar elementos a un conjunto lo podemos hacer usando subrangos como en el caso de la variable DiaLaboral. La cantidad de elementos que pueden ser asignados a un conjunto es de sólo 256 elementos y está determinado por el tipo base. Para asignar un conjunto vacío se escriben los corchetes sin elementos, como en el siguiente ejemplo:

DiaFeriado:= [ ];

Con los conjuntos se pueden realizar operaciones propias de conjuntos como la unión, intersección, exclusión, y más, la siguiente tabla resume los operadores que se usan con conjuntos:


‒ Operadores de conjuntos.
Operador Descripción Ejemplo.
Se asume las siguientes variables :

Var A ,B ,C : set of byte;
D ,E : boolean;

+

Unión, de dos conjuntos. El resultado es la reunión de todos los elementos de ambos conjuntos.

A:=[1,2,3];

B:=[1,3,4];

C:=A+B;

C contiene : [1,2,3,4]

*

Intersección de dos conjuntos. El resultado es el conjunto de los elementos comunes a ambos conjuntos.

A:=[1,2,3,4];

B:=[5,2,3,6];

C:=A*B;

C contiene [2,3]

><
Dirferencia Simétrica. El resultado es la reunión de todos los elementos no comunes de ambos conjuntos.

A:=[1,2,3,4];

B:=[5,2,3,6];

C:=A><B;

C contiene [1,4,5,6]

-
Diferencia de conjuntos. El resultado es el conjunto formado por aquellos elementos del conjunto de la izquierda que no pertenezcan al conjunto de la derecha.

A:=[1,2,3,4];

B:=[3,4,5,6];

C:=A-B;

C contiene [1,2]

in
Devuelve true, si el elemento pertenece al conjunto, caso contrario devuelve false.

A:=[1..20];

D:=12 in A;

E:=25 in A;

D contiene true, E contiene false.

=

Devuelve true, si ambos conjuntos tienen los mismos elementos, en caso contrario devuelve false.

A:=[1,2,3];

B:=[3,2,1];

C:=[4,5,6];

D:=A=B;

E:=B=C;

D contiene true, E contiene false.

<>

Devuelve true, si los dos conjuntos se diferencian en al menos un elemento, false en caso contrario.

A:=[1,2,3];

B:=[3,2,1];

C:=[4,5,6];

D:=A<>B;

E:=B<>C;

D contiene false, E contiene true.

<=
Devuelve true, si todos los elementos del conjunto de la izquierda existen en el conjunto de la derecha, caso contrario es false.

A:=[1..50];

B:=[5..10];

C:=[60..70];

D:=B <= A;

E:=C <= A;

D contiene true, E contiene false.

>=
Devuelve true, si todos los elementos del conjunto de la derecha existen en el conjunto de la izquierda, caso contrario es false.

A:=[1..50];

B:=[5..10];

C:=[60..70];

D:=A>=B;

E:=A>=C;

D contiene true, E contiene false.



Los conjuntos se pueden usar de forma directa sin crearlos en la declaración de variables o tipos de datos del programa. Esto es posible sólo para los conjuntos que usen valores numéricos de tipo byte o char. Por ejemplo se desea hacer un programa que le pregunte al usuario si desea continuar su ejecución, en estos casos se hace un bucle que finaliza cuando se ingresa por teclado la letra n o N, a continuación el ejemplo:


Descargar
{$codepage UTF8}
										   
VAR  a,b:integer;
     rpt:char;
	                                                    
BEGIN
  Repeat
    Write('Ingrese un numero : ');readln(a); 
    Write('Ingrese un numero : ');readln(b);
    Writeln('La suma es : ',a+b);
    Write('Desea continuar con el programa [S]i o [N]o : ');
    readln(rpt)
  Until rpt in ['n','N'];
END.
Código fuente 22: Uso de conjuntos de forma directa.
Descargar

Otro programa de ejemplo:


Descargar
{$codepage UTF8}

VAR  Frase:String;
     i,c:integer;

BEGIN 
 c:=0;
 Write('Ingrese una frase : ');
 readln(Frase);
 For i:=1 to Ord(Frase[0]) do 
   if Frase[i] in ['a','e','i','o','u','A','E','I','O','U'] then c+=1;
 Writeln('La Frase ingresada tiene ',c,' vocales sin acento');
END.
Código fuente 23: Uso de conjuntos para contar las vocales de un texto ingresado por teclado.
Descargar

El programa permite contar las vocales sin acentos, ingresados en una frase, para ello lo que hace es recorrer la frase y verifica que letra es una vocal, usando el operador in, cuando esa comparación sea verdadera entonces se incrementa el valor de la variable c.




SIGUIENTE
SIGUIENTE
SIGUIENTE


 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.








PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.