SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
CONTENIDOS

TIPOS DE DATOS.
Introducción a los tipos de
Clasificaciones en los tipos de datos
Los tipos básicos que nos interesan
Veamos un ejemplo sobre tipos de datos
2.3. TIPOS DE DATOS.

I N TR O D U C C IÓ N A LO S TI PO S D E D A TO S
Una definición 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 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

C LASIFICACIONES EN LOS 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.:



Dinámicos
Estáticos
o El tipo cadena
o Estructurados
o 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.
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 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 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.

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.
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 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.
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,

L OS TIPOS BÁSICOS QUE NOS INTERESAN
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;
paraguas : boolean;
el paraguas *)

(* si llueve o no *)
(* si encuentro o no

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;
R : real;

(* area *)
(* 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.
Volver al inicio de la página
Pasar al siguiente ejemplo sobre tipos de datos

V EAMOS UN EJEMPLO SOBRE TIPOS DE DATOS
A continuación se presenta un ejemplo con el que puedes interactuar para que veas de
forma más amena alguno de los conceptos sobre los tipos de datos.
En el ejemplo tienes en la parte izquierda el código 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 función de estos valores y de las instrucciones que hay en el código, determinar cuál 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.

Más contenido relacionado

La actualidad más candente

Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteRufi Flores
 
Tipos de datos_para_c_
Tipos de datos_para_c_Tipos de datos_para_c_
Tipos de datos_para_c_oscar020615
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Méridaguestc906c2
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y ConstantesYenny Salazar
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionandreinagracielarojasadam
 
Estructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datosEstructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datosspedy93
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matricesSohar Carr
 
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)Roxi77
 
Estructura de datos y algortimos
Estructura de datos y algortimosEstructura de datos y algortimos
Estructura de datos y algortimosJavier Rivas
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programaciónKarenNaranjoH
 
Tema 2 tipos de datos y expresiones en java por gio
Tema 2   tipos de datos y expresiones en java por gioTema 2   tipos de datos y expresiones en java por gio
Tema 2 tipos de datos y expresiones en java por gioRobert Wolf
 
TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVAberna29
 

La actualidad más candente (20)

Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
Datos simples
Datos simples Datos simples
Datos simples
 
Tipos de datos_para_c_
Tipos de datos_para_c_Tipos de datos_para_c_
Tipos de datos_para_c_
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
Tipos de datos.java
Tipos de datos.javaTipos de datos.java
Tipos de datos.java
 
Programacion
ProgramacionProgramacion
Programacion
 
Mod2ud1 2
Mod2ud1 2Mod2ud1 2
Mod2ud1 2
 
Estructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datosEstructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datos
 
Variables y tipos
Variables y tiposVariables y tipos
Variables y tipos
 
tipos de datos
tipos de datostipos de datos
tipos de datos
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)
Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)
 
Estructura de datos y algortimos
Estructura de datos y algortimosEstructura de datos y algortimos
Estructura de datos y algortimos
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Tipos de datos Java
Tipos de datos JavaTipos de datos Java
Tipos de datos Java
 
Tema 2 tipos de datos y expresiones en java por gio
Tema 2   tipos de datos y expresiones en java por gioTema 2   tipos de datos y expresiones en java por gio
Tema 2 tipos de datos y expresiones en java por gio
 
TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVA
 

Destacado

Recommendation Letter Adrián Picazo
Recommendation Letter Adrián PicazoRecommendation Letter Adrián Picazo
Recommendation Letter Adrián PicazoAdrian Picazo
 
Homenaje flor alba 1
Homenaje flor alba 1Homenaje flor alba 1
Homenaje flor alba 1Liza Mora
 
More pictures
More picturesMore pictures
More picturesCOUTTIEN
 
Management Exercise (ME) - Vorstellung von verschiedenen Planspielvarianten
Management Exercise (ME) - Vorstellung von verschiedenen PlanspielvariantenManagement Exercise (ME) - Vorstellung von verschiedenen Planspielvarianten
Management Exercise (ME) - Vorstellung von verschiedenen Planspielvariantengrow.up. Managementberatung GmbH
 
Das Pyramiden Prinzip für Vorträge, Präsentationen und Berichte
Das Pyramiden Prinzip für Vorträge, Präsentationen und BerichteDas Pyramiden Prinzip für Vorträge, Präsentationen und Berichte
Das Pyramiden Prinzip für Vorträge, Präsentationen und Berichtegrow.up. Managementberatung GmbH
 
Auctionaholics Night Owl Auction for Rob
Auctionaholics Night Owl Auction for RobAuctionaholics Night Owl Auction for Rob
Auctionaholics Night Owl Auction for RobAuctionaholics
 
combinar correspondecia
combinar correspondeciacombinar correspondecia
combinar correspondeciaThalia Carrion
 
Homenaje flor alba 1
Homenaje flor alba 1Homenaje flor alba 1
Homenaje flor alba 1Liza Mora
 
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديد
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديدتواجد المسئولين الفلسطينيين على مواقع الإعلام الجديد
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديدKhaled Safi
 
3 xét nghiệm quan trọng trong quý ii của thai kỳ
3 xét nghiệm quan trọng trong quý ii của thai kỳ3 xét nghiệm quan trọng trong quý ii của thai kỳ
3 xét nghiệm quan trọng trong quý ii của thai kỳcuongdienbaby03
 
Migration of isolated point defects in CuNb
Migration of isolated point defects in CuNbMigration of isolated point defects in CuNb
Migration of isolated point defects in CuNbKedarnath Kolluri
 
Ronnie coleman signature series testogen
Ronnie coleman signature series testogenRonnie coleman signature series testogen
Ronnie coleman signature series testogenMatthew Anderson
 

Destacado (20)

Presentación Código de Ética
Presentación Código de ÉticaPresentación Código de Ética
Presentación Código de Ética
 
introduccion a excel
introduccion a excelintroduccion a excel
introduccion a excel
 
Recommendation Letter Adrián Picazo
Recommendation Letter Adrián PicazoRecommendation Letter Adrián Picazo
Recommendation Letter Adrián Picazo
 
Homenaje flor alba 1
Homenaje flor alba 1Homenaje flor alba 1
Homenaje flor alba 1
 
Modul 1 kb 2
Modul 1 kb 2Modul 1 kb 2
Modul 1 kb 2
 
More pictures
More picturesMore pictures
More pictures
 
Presentation1
Presentation1Presentation1
Presentation1
 
Management Exercise (ME) - Vorstellung von verschiedenen Planspielvarianten
Management Exercise (ME) - Vorstellung von verschiedenen PlanspielvariantenManagement Exercise (ME) - Vorstellung von verschiedenen Planspielvarianten
Management Exercise (ME) - Vorstellung von verschiedenen Planspielvarianten
 
Das Pyramiden Prinzip für Vorträge, Präsentationen und Berichte
Das Pyramiden Prinzip für Vorträge, Präsentationen und BerichteDas Pyramiden Prinzip für Vorträge, Präsentationen und Berichte
Das Pyramiden Prinzip für Vorträge, Präsentationen und Berichte
 
Materials
MaterialsMaterials
Materials
 
Auctionaholics Night Owl Auction for Rob
Auctionaholics Night Owl Auction for RobAuctionaholics Night Owl Auction for Rob
Auctionaholics Night Owl Auction for Rob
 
combinar correspondecia
combinar correspondeciacombinar correspondecia
combinar correspondecia
 
Homenaje flor alba 1
Homenaje flor alba 1Homenaje flor alba 1
Homenaje flor alba 1
 
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديد
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديدتواجد المسئولين الفلسطينيين على مواقع الإعلام الجديد
تواجد المسئولين الفلسطينيين على مواقع الإعلام الجديد
 
3 xét nghiệm quan trọng trong quý ii của thai kỳ
3 xét nghiệm quan trọng trong quý ii của thai kỳ3 xét nghiệm quan trọng trong quý ii của thai kỳ
3 xét nghiệm quan trọng trong quý ii của thai kỳ
 
manejo de estilos
manejo de estilosmanejo de estilos
manejo de estilos
 
formato de celdas
formato de celdasformato de celdas
formato de celdas
 
errores en los datos
errores en los datoserrores en los datos
errores en los datos
 
Migration of isolated point defects in CuNb
Migration of isolated point defects in CuNbMigration of isolated point defects in CuNb
Migration of isolated point defects in CuNb
 
Ronnie coleman signature series testogen
Ronnie coleman signature series testogenRonnie coleman signature series testogen
Ronnie coleman signature series testogen
 

Similar a Tipos de datos

Similar a Tipos de datos (20)

Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Tipos de datos
Tipos de datos Tipos de datos
Tipos de datos
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Conceptos basicos de programacion
Conceptos basicos de programacionConceptos basicos de programacion
Conceptos basicos de programacion
 
11 tipode datos
11 tipode datos11 tipode datos
11 tipode datos
 
Clase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- MeridaClase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- Merida
 
Taller
TallerTaller
Taller
 
Tipos de datos Excel
Tipos de datos ExcelTipos de datos Excel
Tipos de datos Excel
 
Informatica;tipodedatos
Informatica;tipodedatosInformatica;tipodedatos
Informatica;tipodedatos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Trabajo tecnología (3).pdf
Trabajo tecnología (3).pdfTrabajo tecnología (3).pdf
Trabajo tecnología (3).pdf
 
Trabajo tecnología.pdf
Trabajo tecnología.pdfTrabajo tecnología.pdf
Trabajo tecnología.pdf
 
Trabajo tecnología.pdf
Trabajo tecnología.pdfTrabajo tecnología.pdf
Trabajo tecnología.pdf
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Presentación4 (2)
Presentación4 (2)Presentación4 (2)
Presentación4 (2)
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
 
Apuntes
ApuntesApuntes
Apuntes
 

Tipos de datos

  • 1.
  • 2. CONTENIDOS TIPOS DE DATOS. Introducción a los tipos de Clasificaciones en los tipos de datos Los tipos básicos que nos interesan Veamos un ejemplo sobre tipos de datos
  • 3. 2.3. TIPOS DE DATOS. I N TR O D U C C IÓ N A LO S TI PO S D E D A TO S Una definición 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 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 C LASIFICACIONES EN LOS 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.:   Dinámicos Estáticos o El tipo cadena o Estructurados o 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. 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 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 disminuír.
  • 4. 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. 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. 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 ordinales, los más importantes son:    El tipo entero (integer) El tipo lógico (boolean) El tipo carácter (char)
  • 5. 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. 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, L OS TIPOS BÁSICOS QUE NOS INTERESAN 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 *)
  • 6. 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; paraguas : boolean; el paraguas *) (* si llueve o no *) (* si encuentro o no 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
  • 7. 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; R : real; (* area *) (* 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.
  • 8. Volver al inicio de la página Pasar al siguiente ejemplo sobre tipos de datos V EAMOS UN EJEMPLO SOBRE TIPOS DE DATOS A continuación se presenta un ejemplo con el que puedes interactuar para que veas de forma más amena alguno de los conceptos sobre los tipos de datos. En el ejemplo tienes en la parte izquierda el código 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 función de estos valores y de las instrucciones que hay en el código, determinar cuál 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.