Académique Documents
Professionnel Documents
Culture Documents
TIPOS DE DATOS
Los diferentes objetos de información con los que un programa Pascal trabaja se conocen co-
lectivamente como datos. Todos las datos tienen un tipo asociado can ellos. Un dato puede ser un
simple carácter, tal como 's', un valor entero tal como 35 o un número real tal como 1415,92. Una
operación de suma no tiene sentido con caracteres, sólo con números. Por consiguiente, si el compi-
lador detecta una operación de suma de dos caracteres, normalmente producirá un error. Incluso
entre tipos numéricos, la operación de suma se almacena de modo distinto. Esto se debe a que nú-
meros enteros y reales se almacenan de modos diferentes. A menos que el programa conozca el tipo
de datos, si es un valor entero a real, no Puede ejecutar correctamente la operación de suma
La asignación de tipos a los datos tiene dos objetivos principales.
1. Detectar errores de operaciones en programas
2. Determinar cómo ejecutar las operaciones
Pascal se conoce como lenguaje "fuertemente tipeado" (strongly.typed) o de tipos fuertes. E s-
to significa que todos las datos utilizados deben tener sus tipos declarados explícitamente y el lengua-
je limita la mezcla de tipos en las expresiones. Pascal detecta muchos errores de programación an-
tes que el programa se ejecute. La ventaja de los lenguajes de tipos fuertes (ricos en tipos de datos)
es que se gasta menos esfuerzo en la depuración de programa, ya que el compilador detecta mu-
chos de esos errores
El tipo de un dato determina la naturaleza del conjunto de valores que puede tomar una variable.
Otro concepto importante a tener en cuenta es la representación interna de los números, o al menos
el espacio de memoria ocupado por una variable de un tipo dado.
La unidad de medida de la capacidad de memoria, como ya hemos visto es el byte (octeto). Un
byte se compone de ocho cifras binarias (bits) que Pueden tomar cada una el valor 0 ó 1.
Integer
Boolean
Ordinales Char
Tipos Simple Enumerado
Subrango
No Ordinales Reales
El tipo integer se almacena en memoria como 2 (dos) bytes, el bit de mayor peso de los dos by-
tes es el bit de signo. Se puede separar un entero en sus dos bytes utilizando las funciones internas
Hi y Lo
Hi devuelve el byte de mayor peso de los dos bytes de memoria
Lo devuelve el byte de menor peso
Números Reales
Una cadena sin nada entre las apóstrofos se llama cadena nula o cadena vacía
La longitud de una cadena es el número de caracteres encerrados entre los apóstrofos.
CONSTANTES
Una constante es un valor que no puede cambiar durante la ejecución del programa, recibe un
valor en el momento de la compilación del programa y este valor no puede ser modificado.
Las constantes pueden ser
constantes literales
constantes con nombres o declaradas
constantes expresión (sólo en la versión 5.0)
constantes de tipos (tipeadas)
Las constantes deben ser declaradas antes de su utilización y pueden ser enteros o reales, caracte-
res o cadenas de caracteres, conjuntos o arrays, e inclusive de tipo enumerado
Constantes literales
Una constante literal es un valor de cualquier tipo que se utiliza como tal.
VolumenEsfera := 4/3 * Pi * Radio * Rádio * Rádio,
4 y 3 son constantes literales de valores 4 y 3.
Constantes con nombres
Son constantes que se identifican por un nombre y el valor asignado.
Formato
const
identificador = valor,
Ejemplos
const
Pi = 3.141592; {lee un valor real}
DosPi = 2 * Pi;
Direccion = $06; { representa valor hexadecimal }
Prof. : Ing. Fernando Javier LAGE Página 3 de 16
J.T.P. : Ing. Zulma CATALDI
caracter = 'B'; { es un carácter }
cuenta = 625; { lee un entero }
Epsilon = 1E-4; { lee un real }
Esc = #27; { carácter de control }
CRLF = ^M^J; { secuencia CR/LF. retorno de carro/avance de lineal }
VARIABLES
Las variables son objetos cuyo valor puede cambiar durante la ejecución del programa. El cam-
bio se produce mediante sentencia ejecutables.
Todas las variables de un programa Pascal deben ser declaradas antes de ser usadas
Declaraciones
var
variable1 : tipo1;
variable2 : tipo2;
.........................
.........................
variableN : tipoN;
Ejemplos
Notas
Es buena práctica de programación utilizar nombres de variables significativas
que sugieren lo que ellas representan, ya que esto hace al programa más legible y
fácil de comprender, también es buena práctica incluir breves comentarios que in-
diquen cómo se utiliza la variable. Un comentario es cualquier frase encerrada en-
tre llaves { } o bien entre signos (*, *)
SENTENCIAS
Las sentencias describen las acciones algorítmicas que pueden ser ejecutadas En general las
sentencias se clasifican en, ejecutables (especifican operaciones de cálculos aritméticos y entra-
das/salidas de datos) y no ejecutables (no realizan acciones concretas, ayudan a la legibilidad del
programa, pero no afectan en la ejecución del Programa). Las sentencias ejecutables aparecen en el
cuerpo del programa a continuación de la palabra reservada
Begin
LA SENTENCIA DE ASIGNACION
La sentencia de asignación se utiliza para asignar (almacenar) valores o variables. La asigna-
ción es una operación que sitúa un valor determinada en una posición de memoria. la operación de
asignación se demuestra en pseudocódigo con el símbolo '←', para denotar que el valor situado a su
derecha se almacena en la variable situada a la izquierda
Prof. : Ing. Fernando Javier LAGE Página 4 de 16
J.T.P. : Ing. Zulma CATALDI
Formato
Variable ← expresión
Variable := expresión
Procedimiento WriteLn
El propósito de WriteLn es escribir (visualizar) información en la pantalla
Formato
ítem el objeto que desea visualizar: un valor literal (entero, real, un carácter una cadena, o un valor
lógico—true o false—). una constante con nombre, una variable, o una llamada a función
Cuando se ejecuta el procedimiento WriteLn, se visualizan todos los elementos en el orden dado
y en la misma línea. Al terminar de visualizar toda la línea, el cursor avanza (salta) al comienzo de la
siguiente línea.
Procedimiento Write
Como se ha dicho, después de ejecutar el procedimiento WriteLn, el cursor avanza (salta) al
comienzo de la siguiente línea. Si se desea que el cursor quede en ;a misma línea se debe utilizar el
procedimiento Write.
Formatos de salida
Turbo Pascal permiten controlar en cierta medida las instrucciones de salida que presentan re-
sultados. Es posible especificar el número de posiciones del campo de escritura. Para los números
reales es posible precisar el número de decimales deseado.
Prof. : Ing. Fernando Javier LAGE Página 6 de 16
J.T.P. : Ing. Zulma CATALDI
Se pueden utilizar especificadores de formato de campo para definir dicha anchura.
x := 265.7892
WriteLn(x :10 :4); 265.7892
WriteLn(x :10 :2); 265.79
WriteLn(x :6 :4); *********
X := 14;
WriteLn(x :4); 14
X := ‘AB’
WriteLn(x :4); AB
.........................
begin
.........................
Write (Lst, 'el .......................... )
WriteLn (Lst, 'pl............ )
.........................
end.
Formato
La entrada de datos desde el teclado se hace un valor cada vez. Las instrucciones ReadLn y
Read esperan hasta que se pulsa la tecla INTRO (RETURN o ENTER) antes de asignar un valor a la
variable.
Ejemplo
ReadLn (Nombre);
ReadLn (Horas);
Read (Tasas)
El usuario debe introducir los datos de entrada en el orden en que aparecen las instrucciones read,
Prof. : Ing. Fernando Javier LAGE Página 8 de 16
J.T.P. : Ing. Zulma CATALDI
Diferencias entre Read y ReadLn
En Read, después de pulsar la tecla INTRO, el cursor permanece inmediatamente después del
último carácter introducido. En ReadLn, el cursor se envía al principio de la siguiente línea, tras pulsar
la tecla INTRO.
No es aconsejable utilizar más de un dato por instrucción.
Clrscr
GotoXY
Regla
Es una buena costumbre utilizar en todos los programas la unidad Crt, mediante la
cláusula uses; ello permite el uso de Clrscr y GotoXY, entre otras rutinas de utilidad.
Movimiento del cursor
La orden (procedimiento) GotoXY mueve el cursor a la posición x, y, donde x es la columna
(contando de izquierda a derecha) e y es la fila (contando de arriba-abajo).
Formato
GotoXY (x, y)
Sangrado (indentación)
Aunque los programas escritos en Pascal no exigen reglas estrictas en su escritura, es práctica
habitual realizar sangrado en los bloques y unidades de programas fundamentales
Comentarios
La legibilidad de los programas aumenta considerablemente utilizando comentarios. Un comentario
es un texto explicativo más o menos largo, situado en el programa e ignorado por el compilador. Los
comentarios no se consideran (son invisibles) en la fase de compilación y ejecución, pero de impor-
tancia primordial en las fases de análisis, puesta a punto y mantenimiento.
Los comentarios son una parte importante de la documentación de un programa, ya que ayudan
al programador y a otras personas a la comprensión del programa. No es raro encontrar programas
en los cuales los comentarios ocupan más sitio, incluso, que las propias instrucciones.
Formato
1 . { comentario }
2. (* comentario *)
Cualquiera de los dos formatos se pueden utilizar indistintamente. Los comentarios pueden
aparecer en una sola línea de programa, al final de una línea después de una sentencia, o embebido
en una sentencia. En general se debe incluir en las diferentes partes de un programa, pero con la
condición de que sean significativos. Se deben evitar comentarios superfluos o redundantes, como
A := B-C
(el valor de B-C se asigna a A)
cuyo significado es evidente.
Es conveniente situar comentarios en la cabeza que al menos especifiquen:
q . el nombre del programador,
q . la fecha de la versión actual,
q . una breve descripción de lo que hace el programador.
Es posible anidar comentarios con delimitadores de tipo diferentes, pero no es posible con de-
limitadores del mismo tipo. El programador puede tener libertad para los comentarios.
{
un comentario puede extenderse
en varias líneas o paginas de programas}
{comentarios anidados (* como este caso *)}
Líneas en blanco
Los nombres es conveniente que comiencen con una letra mayúscula, y si son largos es preferible
utilizar palabras compuestas o con subrayado.
Evitar puntos y comas superfluos
Antes de las palabras end y until se puede suprimir el separador punto y coma. Los puntos y
comas espurios pueden afectar al mal funcionamiento de un programa.
Líneas de programa mayores de 80 caracteres
El editor Turbo permite escribir líneas de hasta 126 caracteres de longitud, aunque en la panta
lla sólo se ven 80 columnas a la vez. Utilizando las teclas HOME (Inicio), END (Fin) y de movimiento
de cursor se puede desplazar el texto a izquierda y derecha.
Alinear operaciones (o separadores) en líneas consecutivas
Cuando diferentes líneas consecutivas contienen el mismo operador (o separador), es buena
práctica alinear estos símbolos utilizando blancos si es necesario.
for j := 1 to 10 do (operador =)
begin
Prueba := Random;
Total := Total + Prueba;
Valor [j]:= Prueba;
WriteLn l'Estrella errante')
end;
Blancos no significativos
q Poner un espacio en cada lado de un operador
q Incluir un espacio después de los signos de puntuación: coma, punto y coma, dos puntos.
Otras reglas de escritura
q Poner cada sentencia en una línea distinta.
q Las palabras reservadas program, const, var, procedure, function, uses, begin, end deben ir en
líneas distintas.
q Si una sentencia continúa en otra línea, se deben sangrar la(s) linea(s) siguientes.
q Insertar lineas en blanco antes de la sección const, var, uses, procedure, function y el begin del
programa principal; y en cualquier segmento o bloques de sentencias significativas.
q Utilizar espacios entre los elementos de una sentencia para hacerla más legible.
Ejemplo:
Se ingresan dos números enteros, obtener su suma.
Análisis
¿Qué ingresa?
Dos números enteros
¿Qué sale?
Otro número entero
¿Qué vincula la entrada con la salida?
La operación suma
Pseudocódigo
Inicio
Leo A (entero)
Leo B (entero)
Obtengo C como suma de A y B
Imprimo C
Fin
S
Diagrama N
Inicio
Leo A
Leo B
C←A+B
Imprimo C
Fin
Código Pascal
program Sumas;
{* Este es el primer programa en PASCAL*}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{* programa escrito por : Fernando Javier LAGE *}
{* Fecha : 7 de abril de 1998 *}
{* Version : 01 *}
{* Nombre del archivo : progra01 *}
{* Este programa permite sumar dos números enteros *}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
uses
crt,dos; {* declaraciones de librerias *}
const
Enter = #13; {* declaraciones de constantes *}
{* Ingreso de datos *}
Write ('Ingrese el primer valor ');
ReadLn(A);
Write ('Ingrese el segundo valor ');
ReadLn(B);
{* Salida de la información *}
WriteLn ('El resultado es = ', C:6);
Nota
En el ejemplo tenemos una típica estructura secuencial sin condiciones, ni ciclos repetitivos,
como se verán en el próximo ejemplo
program Primer_Ejemplo;
{* Este es el primer programa en PASCAL *}
uses
crt,dos; {* declaraciones de librerías *}
const
gan = 30.0;
iva = 20.0; {* declaraciones de las constantes *}
program Primer_Modulos;
{* Este es el primer programa en PASCAL, con módulos *}
uses
crt,dos; {* declaraciones de librerias *}
Prof. : Ing. Fernando Javier LAGE Página 15 de 16
J.T.P. : Ing. Zulma CATALDI
const
gan = 30.0;
iva = 20.0; {* declaraciones de las constantes *}
procedure limpieza;
begin {* Comienzo del procedimiento limpieza *}
clrscr; {* Limpieza de pantalla *}
end; {* Fin del procedimiento limpieza *}
procedure ingreso;
begin {* Comienzo del procedimiento de ingreso de datos *}
write ('Ingrese el costo: '); {* Salida de mensaje *}
readln (costo); {* Ingreso del dato *}
end; {* Fin del procedimiento ingreso *}
procedure calculos;
begin {* Comienzo del procedimiento de cálculo de valores *}
costo1 := costo * ( 1 + gan/100); {* Cálculo de la ganancia *}
impuesto := costo1 * (iva /100); {* Cálculo del impuesto *}
precio := costo1 + impuesto; {* Cálculo del precio final *}
end; {* Fin del procedimiento calculos *}
procedure salidas;
begin {* Comienzo del procedimiento de egreso de valores *}
writeln ('Costo : ', costo); {* Salida de mensaje y variable *}
writeln ('Impuesto : ', impuesto); {* Idem anterior *}
writeln ('Precio : ', precio); {* Idem anterior *}
end; {* Fin del procedimiento salidas*}