Definición tipos de datos
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
asignación de tipos a los datos tiene dos objetivos principales:
- Por un lado, detectar
errores en las operaciones
- Por el otro, determinar cómo
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 explícitamente, y además 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 declaración de tipos ya se comentó en el tema
correspondiente a la estructura de un programa.
Clasificación de tipos de datos
En Pascal existen gran variedad y
cantidad de tipos de datos. Pero en este tutorial sólo se trataran
los básicos para que puedas ir construyendo tus primeros programas.
Existen
muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que
mires, te mostrarán una u otra. A continuacón tienes una de las posibles
clasificaciones.:
- Dinamicos
- Estaticos
- El tipo Cadena
- Estructurados
- Simples
- Ordinales
- No-ordinales
Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad.
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad.
Que
un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria
no puede variar durante la ejecución del programa. Es decir, una vez declareda una
variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo,
y este trozo no se podrá aumentar ni disminuír.
Tipos dinámicos
Dentro de esta categoría entra sólamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando.
Dentro de esta categoría entra sólamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando.
Los punteros quizás sean el concepto más complejo a
la hora de aprender un lenguaje de programación, sobre todo si es el primero
que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy
de moda (por ejemplo Java) no permiten al programador trabajar con
punteros.
Tipos simples
Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos.
Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación 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 sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos.
Mientras que una variable de un tipo simple sólo 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 conjunto, e incluso
colecciones que contienen otros
tipos, son los llamados registros.
Tipos ordinales
Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.
Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.
Dentro de los tipos simples ordinales, los más
importantes son:
- El tipo entero (integer)
- El tipo lógico (boolean)
- El tipo carácter (char)
Tipos no-ordinales
Simplificando, podríamos 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 números reales.
Simplificando, podríamos 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 números reales.
A
diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se
puede establecer una relación uno a uno entre ellos y los número naturales.
Dicho de otra forma, para que un conjunto se considere ordinal se tiene que
poder calcular la posición, el anterior elemento y el siguiente de un elemento
cualquiera del conjunto.¿Cuál es el
sucesor de 5.12? Será 5.13, o 5.120, o 5.121, ...
Tipos básico
Después
de ver una de las posibles clasificaciones para los tipos de datos, pasemos a
ver los que nos interesan: los tipos simples. Realmente de los tipos
simples veremos los más básicos, que son: integer, boolean, char y real. Además, también hablaremos un poco de las cadenas
de caracteres, los llamados strings.
nota: a continuación sólo se
comentará qué es cada tipo, no se explicará su declaración, esto puedes verlo si vas a la sección correspondiente.
El tipo integer (entero)
Como ya habrás leído el tipo de
datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar una variable de tipo entero, estás creando
una variable numérica que puede tomar valores positivos o negativos, y sin
parte decimal.
Este tipo
de variables, puedes utilizarlas en
asignaciones, comparaciones, expresiones aritméticas, etc. Algunos de los
papeles más 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 más...
A continuación 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 (lógico)
El tipo de datos lógico es el que
te permite usar variables que disponen sólo 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
- 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 números. Pero no es el
único, también te permite trabajar con números pertenecientes al conjunto real.
El tipo
de datos real es el
que se corresponde con los números reales. Este es un tipo importante para
los cálculos. Por ejemplo
en los estadísticos, ya que se caracterizan por tratar fundamentalmente con
valores decimales.
nota: Aunque pueda que estés
acostumbrado a escribir con coma los decimales, te advierto que en Pascal y en
todos los lenguajes de programación se escribe con un punto. Por ejemplo:3.1416
A
continuación tienes un ejemplo en el que se utiliza el tipo real. En el puedes ver las dos formas
de declarar una variable real, y tambíen 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 *)
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 (carácter
y cadena)
Con el tipo carácter puedes tener
objetos que representen una letra, un número, etc. Es decir, puedes usar
variables o constantes que representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar
un carácter.
Sin
embargo, con las cadenas de caracteres (strings)
puedes contener en una sóla variable más de un carácter. Por ejemplo, puedes tener en una
variable tu nombre.
Veamos
cómo 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.
|
No hay comentarios:
Publicar un comentario