Definici�n de Tipos.
Adem�s de identificadores, los datos deben tener asignado alg�n tipo que
indique el espacio de memoria en que se almacenar�n y que al mismo tiempo
evita el error de tratar de guardar un dato en un espacio insuficiente de memoria.
Un tipo de dato en Pascal puede ser cualquiera de los tipos predefinidos
( integer,real, byte, boolean, char ), o alg�n otro definido por el programador
en la parte de definici�n de tipos.
Los tipos definidos por el programador deben basarse en los tipos est�ndar
predefinidos, para lo cual, debe iniciar con el identificador reservado Type,
seguido de una o m�s asignaciones de tipo separadas por punto y coma. Cada
asignaci�n de tipo debe consistir de un identificador de tipo, seguido por
un signo de igual y un identificador de tipo previamente definido.
La asignaci�n de tipos a los datos tiene dos objetivos principales:
- Detectar errores de operaciones en programas.
- Determinar c�mo ejecutar las operaciones.
- Pascal se conoce como un lenguaje "fuertemente tipeado" (strongly-typed)
o de tipos fuertes. Esto significa que todos los datos utilizados deben
tener sus tipos declarados expl�citamente y el lenguaje limita la mezcla
de tipos en las expresiones. Pascal detecta muchos errores de programaci�n
antes de que el programa se ejecute.
Los tipos definidos por el programador pueden utilizarse para definir nuevos
tipos, por ejemplo :
Type
entero = integer;
otro_entero = entero;
A continuaci�n se hace una breve descripci�n de los tipos predefinidos .
Tipos enteros
Tipos enteros predefinidos
Tipo Rango Formato
byte 0 .. 255 8 bits sin signo
integer -32768 .. 32767 16 bits con signo
longint -247483648 .. 2147483647 32 bits con signo
shortint -128 .. 127 8 bits con signo
word 0 .. 65535 16 bits sin signo
BYTE
El tipo byte es un subconjunto del tipo integer, en el rango de 0 a 255 .
Donde quiera que se espere un valor byte, se puede colocar un valor integer;
y viceversa ( EXCEPTO cuando cuando son pasados como PARAMETROS ). Asimismo,
se pueden mezclar identificadores de tipo byte y de tipo integer en las
expresiones.
Los valores de tipo byte se guardan en UN OCTETO de memoria.
INTEGER
El rango de los valores definidos por el tipo integer , en Turbo Pascal,
se encuentra entre -32768 y 32767 .
Cada valor de este tipo se guarda en DOS OCTETOS de memoria.
LONGINT (enteros largos)
A partir de la versi�n 4.0 se han incorporado n�meros que ampl�an el
rango de variaci�n de los enteros a -2,147,483,648. Este tipo de datos
se denomina longint (enteros largos). Ocupan CUATRO OCTETOS de memoria.
Existe una constante predefinida de tipo longint, denominada MaxLongInt,
cuyo valor es 2,147,483,647.
SHORTINT (enteros cortos)
En ciertos casos, puede ser pr�ctico disponer de valores enteros
positivos y negativos cuyo alcance sea m�s restringido que el de los tipos
enteros. Los tipos shortint pueden tomar valores entre -128 y 127. Ocupan
UN OCTETO de memoria.
WORD
Existen casos en los que se desea representar �nicamente valores
positivos.Este es el caso. Por ejemplo, cuando se desea acceder desde
un programa hasta una direcci�n de memoria. En tal situaci�n, no tiene
sentido una direcci�n negativa. Turbo Pascal dispone del tipo word (o
palabra, depalabra de memoria), cuyo intervalo posible de valores es
de 0 a 65535 Ocupa DOS OCTETOS de memoria.
Tipos reales
REAL
En el contexto de Pascal, un n�mero real es aquel que est� compuesto
de una parte entera y una parte decimal, separadas por un punto. El rango
de estos n�meros est� dado entre los valores 1E-38 y 1E+38 . Cada valor
de este tipo se guarda en SEIS OCTETOS de memoria.
Durante una operaci�n aritm�tica con n�meros reales, un valor mayor que
1E+38 (sobreflujo) causar� la detenci�n del programa y desplegar� un
mensaje de error; mientras que un valor menor que 1E-38 (bajoflujo),
producir� un resultado igual a cero.
Deben tomarse en cuenta las siguentes restricciones para los valores de
tipo real :
- No pueden utilizarse como subindices en las definiciones del tipo
estructurado array.
- No pueden formar subrangos.
- No se pueden usar para definir el tipo base de un conjunto (tipo
estructurado set)
- No deben utilizarse para el control de las instrucciones for y case.
- Las funciones pred y succ no pueden tomarlos como argumentos.
Los n�meros reales est�n siempre disponibles en Turbo Pascal, pero
si su sistema incluye un coprocesador matem�tico como 8087, 80287 u 80387,
se dispone adem�s de otros tipos de n�meros reales:
real (real)
single (real corto)
comp (entero ampliado)
double (real de doble precisi�n)
extended (real ampliado)
Computadoras sin coprocesador matem�tico (emulaci�n por software)
datos disponibles : real, comp, double, extended y single.
Computadoras con coprocesador matem�tico
datos disponibles : real, comp, double, extended y single (reales IEEE)
Desde la versi�n 5.0 se permite utilizar los datos tipo coprocesador
matem�tico aunque su computadora no lo tenga incorporado. La raz�n es
que se emula dicho coprocesador. Los diferentes tipos reales se
diferencian por el dominio de definici�n, el n�mero de cifras
significativas (precisi�n) y el espacio ocupado en memoria.
Turbo Pascal 4.0 requiere obligatoriamente un chip coprocesador matem�tico
para hacer uso de n�meros reales de coma flotante IEEE.
Turbo Pascal 5.0 a 7.0 emula el chip coprocesador matem�tico totalmente en
software, permitiendo ejecutar tipos IEEE tanto si tiene como si no un chip
8087/287/387 instalado en su m�quina.
Tipo Rango Cifras Tama�o y bytes
real 2.910 E -39 .. 1.710 E 38 11 -12 6
single 1.510 E -45 .. 3.410 E 38 7 - 8 4
double 5.010 E -324 .. 1.710 E 308 15 - 16 8
extended 1.910 E -4932 .. 1.110 E 4932 19 - 20 10
comp -2 E 63 +1 .. 2 E 63 - 1 19 - 20 8
BOOLEAN
Un valor de tipo boolean puede asumir cualquiera de los valores de verdad
denotados por los identificadores true y false, los cuales est�n definidos
de tal manera que false < true .
Un valor de tipo boolean ocupa UN OCTETO en la memoria.
CHAR
Un valor de tipo char es cualquier car�cter que se encuentre dentro del
conjunto ASCII ampliado, el cual est� formado por los 128 caracteres del
ASCII m�s los 128 caracteres especiales que presenta, en este caso, IBM.
Los valores ordinales del c�digo ASCII ampliado se encuentran en el rango
de 0 a 255. Dichos valores pueden representarse escribiendo el car�cter
correspondiente encerrado entre ap�strofes.
As� podemos escribir :
'A' < 'a'
Que significa : " El valor ordinal de A es menor que el de a " o " A est�
antes que a "
Un valor de tipo char se guarda en UN OCTETO de memoria.
CADENA (STRING)
Un tipo string (cadena) es una secuencia de caracteres de cero o m�s caracteres
correspondientes al c�digo ASCII, escrito en una l�nea sobre el programa y
encerrado entre ap�strofos.
El tratamiento de cadenas es una caracter�stica muy potente de Turbo Pascal
que contiene ISO Pascal est�ndar.
Ejemplos:
'Turbo Pascal','Tecnol�gico', #13#10
Nota:
Una cadena sin nada entre los ap�strofos se llama cadena nula o cadena vac�a.
La longitud de una cadena es el n�mero de car�cteres encerrados entre los
ap�strofos.
|