Está en la página 1de 9

16/10/2014 Tipos de datos

http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 1/9
principal contenidos <-- --> test editor indice

Introduccin a los tipos de datos
Clasificaciones de tipos
Tipos bsicos que nos interesan
El tipo de datos integer
El tipo de datos boolean
El tipo de datos real
Los tipos de datos char y string
Veamos un ejemplo sobre tipos de datos
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 2/9
Introduccin a los tipos de datos
Una definicin muy simple:
El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le
intenta dar un valor fuera del conjunto se producir un error.
La asignacin de tipos a los datos tiene dos objetivos principales:
Por un lado, detectar errores en las operaciones
Por el otro, determinar cmo ejecutar estas operaciones
De Pascal se dice que es un lenguaje fuertemente tipeado. Esto quiere decir que todos los datos deben de
tener un tipo declarado explcitamente, y adems que existen ciertas restricciones en las expresiones en
cuanto a los tipos de datos que en ellas intervienen.
Una ventaja de los lenguajes fuertemente tipeados es que se gasta mucho menos esfuerzo en depurar
(corregir) los programas gracias a la gran cantidad de errores que detecta el compilador.
Los tipos de datos, como casi todos los objetos de Pascal, se pueden declarar. La declaracin de tipos ya
se coment en el tema correspondiente a la estructura de un programa.
Volver al inicio de la pgina
Pasar al siguiente apartado sobre las clasificaciones

Clasificaciones en los tipos de datos
En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este tutorial slo se trataran los
bsicos para que puedas ir construyendo tus primeros programas.
Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te
mostrarn una u otra. A continuacn tienes una de las posibles clasificaciones.:
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 3/9
Dinmicos
Estticos
El tipo cadena
Estructurados
Simples
Ordinales
No-ordinales

Tipos estticos
Casi todos los tipos de datos son estticos, la excepcin son los punteros y no se tratarn debido a su
complejidad.
Que un tipo de datos sea esttico quiere decir que el tamao que ocupa en memoria no puede variar
durante la ejecucin del programa. Es decir, una vez declarada una variable de un tipo determinado, a
sta se le asigna un trozo de memoria fijo, y este trozo no se podr aumentar ni disminur.

Tipos dinmicos
Dentro de esta categora entra slamente el tipo puntero. Este tipo te permite tener un mayor control
sobre la gestin de memoria en tus programas. Con ellos puedes manejar el tamao de tus variables en
tiempo de ejecucin, o sea, cuando el programa se est ejecutando.
Los punteros quizs sean el concepto ms complejo a la hora de aprender un lenguaje de programacin,
sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Adems, lenguajes que estn
muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros.

Tipos simples
Como su nombre indica son los tipos bsicos en Pascal. Son los ms sencillos y los ms fciles de
aprender. Por todo esto, sern en los que nos centremos.
Los tipos simples ms bsicos son: entero, lgico, carcter y real. Y la mayora de los lenguajes de
programacin los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a
otro.

Tipos estructurados
Mientras que una variable de un tipo simple slo referencia a un elemento, los estructurados se refieren a
colecciones de elementos.
Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos
colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 4/9
conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.

Tipos ordinales
Dentro de los tipos simples, los ordinales son los ms abundantes. De un tipo se dice que es ordinal
porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relacin
uno a uno entre sus elementos y el conjunto de los nmeros naturales.
Dentro de los tipos simples ordinales, los ms importantes son:
El tipo entero (integer)
El tipo lgico (boolean)
El tipo carcter (char)

Tipos no-ordinales
Simplificando, podramos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para
declarar variables que pueden tomar valores dentro del conjunto de los nmeros reales.
A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una
relacin uno a uno entre ellos y los nmero naturales. Dicho de otra forma, para que un conjunto se
considere ordinal se tiene que poder calcular la posicin, el anterior elemento y el siguiente de un
elemento cualquiera del conjunto.Cul es el sucesor de 5.12? Ser 5.13, o 5.120, o 5.121, ...

Volver al inicio de la pgina
Pasar al siguiente apartado sobre los tipos bsicos

Los tipos bsicos que nos interesan
Despus de ver una de las posibles clasificaciones para los tipos de datos, pasemos a ver los que nos
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 5/9
interesan: los tipos simples. Realmente de los tipos simples veremos los ms bsicos, que son: integer,
boolean, char y real. Adems, tambin hablaremos un poco de las cadenas de caracteres, los llamados
strings.
nota: a continuacin slo se comentar qu es cada tipo, no se explicar su declaracin, esto
puedes verlo si vas a la seccin correspondiente.

El tipo integer (entero)
Como ya habrs ledo el tipo de datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar
una variable de tipo entero, ests creando una variable numrica que puede tomar valores positivos o
negativos, y sin parte decimal.
Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones aritmticas, etc.
Algunos de los papeles ms comunes que desarrollan son:
Controlar un bucle
Usarlas como contador, incrementando su valor cuando sucede algo
Realizar operaciones enteras, es decir, sin parte decimal
Y muchas ms...
A continuacin tienes un ejemplo en el que aparecen dos variables enteras. Como puedes ver, en el
ejemplo se muestran las dos maneras de declarar una variable de tipo entero:

type
tContador = integer;
var
i : tContador;
n : integer;
begin
n := 10; (* asignamos valor al maximo *)
i := 1; (* asignamos valor al contador *)

while (i <= n) do begin
writeln('El valor de i es ',i);
i := i + 1
end
end.


El tipo boolean (lgico)
El tipo de datos lgico es el que te permite usar variables que disponen slo de dos posibles valores:
cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos
sirven para mantener el estado de un objeto mediante dos valores:
si/no
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 6/9
cierto/falso
funciona/no funciona
on/off
etc.
Para aclararlo, veamos un ejemplo:

type
tLogico = boolean;
var
llueve : tLogico; (* si llueve o no *)
paraguas : boolean; (* si encuentro o no el paraguas *)
begin
(* aqui se determinarian los valores de "llueve" y "paraguas" *)

if llueve and (not paraguas) then
writeln('Me quedo en casita')
else
writeln('Me voy a dar un paseo')
end.


El tipo real (real)
Como ya has visto, Pascal soporta el conjunto entero de nmeros. Pero no es el nico, tambin te
permite trabajar con nmeros pertenecientes al conjunto real.
El tipo de datos real es el que se corresponde con los nmeros reales. Este es un tipo importante para los
clculos. Por ejemplo en los estadsticos, ya que se caracterizan por tratar fundamentalmente con valores
decimales.
nota: Aunque pueda que ests acostumbrado a escribir con coma los decimales, te advierto
que en Pascal y en todos los lenguajes de programacin se escribe con un punto. Por
ejemplo: 3.1416
A continuacin tienes un ejemplo en el que se utiliza el tipo real. En el puedes ver las dos formas de
declarar una variable real, y tamben el uso de una constante real. Por si tienes curiosidad, el resultado de
ejecutar el programa compilado es:
El area para un radio de 3.14 es 63.6174
const
pi = 3.1416;
type
tArea = real;
var
A : tArea; (* area *)
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 7/9
R : real; (* radio *)
begin
R := 4.50;
A := pi * R * R; (* calculamos el area *)

writeln('El area para un radio de ',R:4:2,' es ',A:8:4)
end.


Los tipos char y string (carcter y cadena)
Con el tipo carcter puedes tener objetos que representen una letra, un nmero, etc. Es decir, puedes usar
variables o constantes que representen un valor alfanumrico. Pero ojo, cada variable slo podr
almacenar un carcter.
Sin embargo, con las cadenas de caracteres (strings) puedes contener en una sla variable ms de un
carcter. Por ejemplo, puedes tener en una variable tu nombre.
Veamos cmo se usan ambos tipos en el siguiente ejemplo

type
tNombre = string[10]; (* puede almacenar 10 caracteres *)
var
nombre : tNombre; (* variable para almacenar el nombre *)
letra_NIF : char; (* caracter para contener la letra del NIF *)
begin
nombre := 'Beni';
letra_NIF := 'L';

writeln('Mi nombre es ',nombre,' y mi letra es ',letra_NIF)
end.

Volver al inicio de la pgina
Pasar al siguiente ejemplo sobre tipos de datos

16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 8/9
Veamos un ejemplo sobre tipos de datos
A continuacin se presenta un ejemplo con el que puedes interactuar para que veas de forma ms amena
alguno de los conceptos sobre los tipos de datos.
En el ejemplo tienes en la parte izquierda el cdigo del programa, y en la derecha la parte con la puedes
jugar. Esencialmente, lo que tienes que hacer es:
Dar valores iniciales a las variables numero, char_A y char_B
Y en funcin de estos valores y de las instrucciones que hay en el cdigo, determinar cul ser el
valor de cadena

program Prueba;
type
tNumero = integer;
tLogico = boolean;
tCaracter = char;
tCadena = string[5];
var
numero : tNumero;
cadena : tCadena;
char_A, char_B : tCaracter;
logico_A, logico_B : tLogico;

begin
(* aqui se iniciarian las vars. *)
(* ... *)
logico_A := numero > 3;
logico_B := numero < 6;
if logico_A and logico_B then
cadena := char_B
else
cadena := char_A;
end.

Suerte!!
Volver al inicio de la pgina
Pasar punto anterior sobre los tipos bsicos

| Inicio | Contenidos | Introduccin | Estructura | Variables |
16/10/2014 Tipos de datos
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm 9/9
| Tipos de datos | E/S de datos | Sentencias | Control del flujo | Progr. modular |