Professional Documents
Culture Documents
TURBO PASCAL
Palabras reservadas
Para poder programar en cualquier lenguaje es necesario conocer los códigos mediante los
cuales podamos expresar las tareas que queremos realizar. El Turbo Pascal, como
lenguaje de programación poseé su propio código con palabras de uso exclusivo para
ciertas funciones, a estas palabras les llamaremos palabras reservadas de Turbo Pascal.
Turbo Pascal
ABSOLUTE ASM DESTRUCTOR
IMPLEMENTATION INTERFACE OBJECT
PRIVATE SHR UNIT
VIRTUAL CONSTRUCTOR EXTERNAL
INLINE INTERRUPT SHL
STRING USES XOR
Estas palabras no pueden ser usadas como identificadores (siguiente tópico) ya que cada
una de ellas tiene una función definida en Turbo Pascal.
Identificadores
Los identificadores son palabras que representan constantes, variables, tipos de datos,
procedimientos, funciones y algunos otros datos. Existen dos tipos de identificadores: los
predefinidos de Turbo Pascal y los definidos por el programador.
Algunos de los identificadores predefinidos son: integer, real, byte, sin, ...
Los identificadores definidos por el programador son los elementos del lenguaje tales
como variables, procedimientos, funciones, etc.
Un identificador es una secuencia de 1 a 127 caracteres, que inicia con una letra, no tienen
espacios ni símbolos: &, !, *, etc. y no es alguna palabra reservada.
Para el Turbo Pascal no existen diferencias entre mayúsculas y minúsculas, así que a un
identificador denominado "valor" se le puede referir como "VALOR" o "VaLoR".
Tipos de datos
El manejo de la información en Turbo Pascal se realiza mediante diferentes clases de
datos. En este apartado se tratarán los principales tipos y conforme se vayan necesitando
se explicaran los demás.
Integer: Es un número entero con signo, que puede valer desde -32768 hasta 32767.
Ocupa 2 bytes de memoria.
Byte: Es un número entero, que puede valer entre 0 y 255. El espacio que ocupa en
memoria es el de 1 byte, como su propio nombre indica.
Boolean: Es una variable lógica, que puede valer TRUE (verdadero) o FALSE (falso), y
se usa para comprobar condiciones.
Variables y constantes
Los tipos de datos que manejaremos en nuestro programa pueden ser de dos clases:
variables o constantes.
Un ejemplo de una variable es cuando vamos a sumar dos números que serán introducidos
por el usuario del programa, éste puede introducir dos valores cualesquiera y no sería
nada útil restringirlo a dos valores predefinidos, así que dejamos que use los valores que
el necesite sumar.
Las variables y constantes pueden ser de todos los tipos vistos anteriormente: numéricos
tanto enteros como reales, caracteres, cadenas de caracteres, etc.
Comentarios
Es posible introducir comentarios en nuestro programa que sirvan únicamente para
mejorar la comprensión del código fuente.
Existen dos formas de colocar comentarios en un programa de Turbo Pascal, entre llaves:
{Comentario} o entre parentesis y asteriscos: (*Comentario*).
Todo programa cuenta con algunas partes o módulos los cuales son:
Cabecera
Declaraciones
Programa
Sentencia PROGRAM
La sentencia PROGRAM es la declaración del nombre del programa.
PROGRAM suma_de_dos_numeros ;
Declaración de unidades
Las unidades son módulos independientes del programa que, aunque no son ejecutables
por si mismos, pueden ser utilizados por el programa principal sin necesidad de reescribir
el código que contienen. Para la utilización de estos "subprogramas" es necesaria su
declaración.
Cada unidad que se declara debera estar separada de la siguiente por una coma. Al final
de todas las unidades declaradas se deberá colocar un punto y coma ";".
Es posible declarar varias constantes sucesivamente, puede ser una por renglón o varias en
un solo renglón. Cuando se hace esto, la palabra CONST solo se pone una sola vez como
cabecera y a continuación todas las constantes por definir. Ejemplo:
CONST
PI = 3.1415926;
Nombre = 'Juan Gutiérrez';
Unidad = 1;
Programa principal
Despues de haber realizado todas las declaraciones se puede iniciar con el programa
principal. (Es posible, antes del programa, declarar las funciones y procedimientos, pero
eso se analizará posteriormente).
El programa principal inicia con la palabara reservada BEGIN y termina con la palabra
END., esta última con un punto al final.
Cada linea de código, enunciado, sentencia o instrucción completa que se escriba deberá
terminar con un punto y coma ";".
Solo se omitirá el punto y coma cuando se utiliza la palabra reservada ELSE. Aunque
puede también omitirse si la siguiente expresión es END o UNTIL.
PROGRAM Primera_Prueba;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
VAR
Entero : Integer;
BEGIN
Write(Mensaje);
{Escribe en pantalla el mensaje definido como constante}
ReadLn(Entero);
{Lee un valor de teclado y lo almacena en la variable Entero}
WriteLn(Respuesta, Entero);
{Escribe en pantalla el contenido de Respuesta y el valor que se ingresó de teclado}
END.
Para hacer esto es necesario activar la opción Destination a Disk, esto se hace entrando al
menú Compile, se selecciona la opción Destination y se presiona [Enter], de esta forma se
cambia el destino de compilación de memoria a disco o viceversa (Dependiendo de la
opción seleccionada actualmente).
Asignación o igualación
La operación de asignación es una de las más utilizadas en Turbo Pascal ya que nos
permite darle un valor determinado a las variables que declaramos en el programa o lo
que es lo mismo, igualarla a algún valor determinado.
El símbolo utilizado para la operación es los dos puntos seguidos por un signo de igual :=
, a la izquierda de dicho símbolo se coloca el identificador al que se le asignará un nuevo
valor y a la derecha se colocará un identificador o algún valor directo que se almacenará
en el primer identificador. Ejemplo:
Es indispensable para todo programa que cuente con la capacidad de manejar entradas y
salidas de información, ya que sin estas capacidades sería un programa inútil.
Write (indentificadores);
WriteLn (indentificadores);
Donde los identificadores son aquellos que contienen la información que se desea mandar
a la pantalla. Es posible utilizar varios de ellos por cada instrucción Write o WriteLn,
unicamente se separan unos de otros por comas ",". Ejemplo:
Write (Nombre);
Write (ApellidoP);
Write (ApellidoM);
Si en lugar de utilizar la instrucción Write hacemos uso de WriteLn con la misma
sintaxis del ejemplo anterior:
WriteLn (Nombre);
WriteLn (ApellidoP);
WriteLn (ApellidoM);
Rodrigo
González
García
De este ejemplo es posible concluir que la diferencia entre las instrucciones Write y
WriteLn es que esta última imprime el contenido de los identificadores y cambia el cursor
al siguiente renglón de la pantalla, y la primera solo escribe el contenido y deja el cursor
al final del dato escrito.
El identificador puede ser cualquier variable definida previamente, NO puede ser una
constante. Puede ser también un conjunto de variables, separadas entre comas, en este
caso se guardara el primer valor dado antes del [Enter] en el primer identificador
proporcionado, luego el segundo y así sucesivamente hasta el último identificador.
La diferencia en el uso de la instrucción Read con respecto a ReadLn es que en la primera,
si se le dan más datos de los que se introducirán se guardan en un buffer y se usarán en la
siguiente instrucción Read o ReadLn del programa, en cambio ReadLn ignora todo dato
posterior a los que esten definidos en la instrucción.
En caso de que se le indique a Read o ReadLn que lea un tipo específico de valor, y se le
proporcione otro diferente se generará un error y se detendrá la ejecución del programa.
Tipos de datos
Un programa debe ser capaz de manejar diferentes tipo de datos, como pueden ser
números enteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de
toda esta información Turbo Pascal proveé diferentes tipos de datos para los
identificadores que se utilizarán. Algunos de los más importantes se citan en seguida:
Tipos enteros
En esta categoría Turbo Pascal cuenta con 5 tipos diferentes, cada uno abarca un rango
específico de valores y utilizan una diferente cantidad de memoria dependiendo de ese
rango. Naturalmente el trabajar con rangos menores nos ofrece una mayor velocidad y
menor espacio en memoria, pero si se utilizan enteros largos se cuenta con mayor
presición. Los tipos de enteros en Turbo Pascal son:
Tipo Rango de valores que acepta
Integer -32,768 a 32,767
Word 0 a 65535
ShortInt -128 a 127
Byte 0 a 255
LongInt -2,147,483,648 a 2,147,483,648
Cantidad := $10;
Los números reales deben llevar por fuerza al menos un dígito de cada lado del punto
decimal así sea éste un cero. Como ejemplo, el número 5 debe representarse como: 5.0, el
.5 como 0.5 , etc.
En este tipo de datos se utiliza la notación científica, que es igual a la de las calculadoras,
el dígito que se encuentra a continuación de la E representa la potencia a la que se elevará
el número 10 para multiplicarlo por la cantidad a la izquierda de dicha E:
Tipos caracter
Los caracteres son cada uno de los símbolos que forman el código ASCII, el tipo estándar
de Pascal para estos datos es Char. Los caracteres se especifican entre apostrofes:
'a' 'B' '2' '#'
El tipo Char es un tipo ordinal de Pascal, ésto quiere decir que sus elementos válidos
siguen una secuencia ordenada de valores individuales. La secuencia de caracteres para
este tipo corresponden al número del código ASCII, del 0 al 255.
Es posible accesar a cada uno de los caracteres utilizando un signo # antes de su valor
correspondiente, por ejemplo, la letra A puede ser representada como #65, el retorno de
carro, o enter, se representa como #13, y así cualquier caracter.
Tipo cadena
Las cadenas son secuencias de caracteres o arreglos que tienen una longitud maxima de
255 caracteres. Se definen entre apostrofes. El tipo de Pascal para las cadenas es String.
PROGRAM Cadena;
VAR
Nombre : String;
BEGIN
Nombre := 'Ernesto Chávez';
WriteLn (Nombre);
END.
Este programa guarda la cadena 'Ernesto Chávez' en la variable definida como tipo string,
y la visualiza en la pantalla por medio de la instrucción WriteLn.
El tamaño por defecto para un tipo string es de 255 caracteres, pero es posible definir uno
mas pequeño utilizando el siguiente formato:
Variable : String[Tamaño];
Donde Variable es la variable a definir y Tamaño es el número maximo de caracteres que
podrá contener esa variable (naturalmente mayor a 0 y menor a 256).
PROGRAM Cadena01;
VAR
Nombre : String[30];
{Permite un máximo de 30 caracteres en la variable}
BEGIN
Nombre := 'Ernesto Chávez';
WriteLn (Nombre[5]);
{Visualiza el 5to caracter de la cadena}
END.
Tipos lógicos
Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos:
verdadero o falso, el verdadero puede ser representado por su nombre en inglés: True y el
falso por False; también se representan por 1 y por 0 respectivamente.
Otras sentencias
CRT es la primera unidad que trataremos y es la encargada de gestionar (entre otras cosas) la
pantalla en modo texto. Para acceder a cualquier unidad, se emplea la sentencia Uses justo
después de Program y antes de las declaraciones de variables:
Write es la orden que permite escribir un texto en pantalla. El conjunto de todo lo que se
desee escribir se indica entre paréntesis. Cuando se trata de un texto que queremos que
aparezca tal cual, éste se encierra entre comillas (una comilla simple para el principio y otra
para el final).
Writeln, que es exactamente igual que Write con la única diferencia de que después de
visualizar el mensaje, el cursor (la posición en la que se seguiría escribiendo, marcada
normalmente por una rayita o un cuadrado que parpadea) pasa a la línea siguiente, en vez de
quedarse justo después del mensaje escrito.
Read (Identificador);
El identificador puede ser cualquier variable definida previamente, NO puede ser una
constante. Puede ser también un conjunto de variables, separadas entre comas, en este caso se
guardara el primer valor dado antes del [Enter] en el primer identificador proporcionado,
luego el segundo y así sucesivamente hasta el último identificador.
En caso de que se le indique a Read o ReadLn que lea un tipo específico de valor, y se le
proporcione otro diferente se generará un error y se detendrá la ejecución del programa.
Operaciones básicas
Las operaciones básicas en Turbo Pascal están formadas por dos partes: el operador y los
operandos.
Un operador es el símbolo que le indica al programa que operación realizará y los operandos
son los datos sobre los cuales se efectuará la operación.
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
El tipo de datos que pascal regresa como resultado de una operación dependerá del tipo
de datos usados como operandos. Por ejemplo, la suma de dos enteros da como
resultado otro entero, y la suma de dos números reales da como resultado otro número
real.
Su sintaxis es:
PROGRAM Operaciones_Básicas;
MOD 8;WriteLn ('La suma de 12 + 8 es igual a: ',Suma); WriteLn ('La resta de 12 - 8 es igual
a: ',Resta);WriteLn ('La multiplicación de 12 * 8 es igual a: ',Multiplicacion);WriteLn ('La
división de 12 / 8 es igual a: ',Division);WriteLn ('La división entera de 12 / 8 es igual a:
',Cociente_Entero);WriteLn ('El residuo de la división entera de 12 / 8 es: ',Residuo_Entero);
END.
Operadores de Relación
Los operadores relacionales nos sirven para determinar la relación que tiene una expresión
con otra. Los operadores relacionales que manejaremos en Pascal son los siguientes:
Operadores Descripción
= Es igual a
<> No es igual a
> Es mayor que
<</b> Es menor que
>= Es mayor o igual que
<= Es menor o igual que
And y
Or o
Not no
Sentencia IF...THEN...ELSE
Esta expresión es utilizada para ejecutar una sentencia en el caso que una condición
establecida sea verdadera, de lo contrario se podra ejecutar una sentencia distinta. Su sintaxis
es:
La sección ELSE con su correspondiente sentencia son opcionales y pueden omitirse en caso
de no necesitarse.
Sentencias IF anidadas
Es posible utilizar en una expresión del tipo IF..THEN..ELSE una sentencia compuesta como
la sentencia a ejecutarse en caso de que la condición sea verdadera, así como en la sentencia
posterior a un ELSE, de esta forma podemos utilizar otra sentencia IF..THEN..ELSE dentro
de la anterior, para de esta forma evaluar varias condiciones una dentro de otra. Ejemplo:
IF Numero > 5 THENBEGINIF Numero <10 THEN Opcion :="Numero; IF Numero <30
THEN Opcion2 :="Numero; END;
Ciclos FOR
El ciclo FOR repite una sentencia un determinado número de veces que se indica al momento
de llamar al ciclo.
Lo que hace FOR es que incrementa una variable en uno desde un valor inicial hasta un valor
final ejecutando en cada incremento la sentencia que se quiere repetir. Su sintaxis es:
Donde el identificador es la variable que se incrementará, inicio es el primer valor que tendrá
dicha variable y fin es el valor hasta el cual se incrementará la misma; instrucción es la
sentencia (sencilla o compuesta) que se ejecutará en cada incremento de la variable.
Una de las limitaciones de los ciclos FOR es que una vez iniciado el ciclo se ejecutará el
número de veces predefinido sin posibilidad de agregar o eliminar ciclos.
Es posible hacer que un ciclo cuente hacia atrás, es decir que la variable en lugar de
incrementarse se decremente. Para ésto cambiamos la palabra TO por DOWNTO, y
colocamos el valor mayor a la izquierda y el menor a la derecha.
Ejemplo:
Ciclos WHILE
Los ciclos WHILE ofrecen la ventaja de que la ejecución se realiza mientras se cumpla una
condición, por lo tanto es posible controlar el número de repeticiones una vez iniciado el
ciclo. Su sintaxis es:
Donde condición es la condición que se evaluará, mientras ésta sea verdadera se ejecutará la
instrucción, que es una sentencia simple o compuesta.
Un programa que escriba los números del 1 al 50, utilizando el ciclo WHILE se vería como
sigue:
Al final del programa la variable Numero guardará el valor 51, que fué el valor que no
cumplió con la condición establecida en el ciclo WHILE.
Ciclos REPEAT-UNTIL
Este tipo de ciclos es muy parecido a los ciclos WHILE, la diferencia entre ambos es que en
WHILE la condición se evalúa al principio del ciclo, en cambio en REPEAT-UNTIL se
evalúa al final, lo que significa que en un ciclo REPEAT-UNTIL la sentencia se ejecutará por
lo menos una vez, cosa que puede no ocurrir en el ciclo WHILE. Ejemplo:
Para crear un buen programa es necesario dotarlo con capacidad de desición con base en las
variables o eventos definidos por el programador, para que el programa sea aplicable en un
entorno más generalizado y no solo para un problema específico.
Selecciones CASE
Esta forma de control se utiliza cuando se va a evaluar una expresión que puede contener
varios datos diferentes y en cada dato deberá realizar una acción especial. Por ejemplo, si se
crea un menú con diferentes opciones se realizará un determinado proceso para cada acción,
aunque la selección por parte del usuario se haga desde el mismo lugar.
CASE Numero OF1 : WriteLn('El número fué 1');2 : WriteLn('El número fué 2');3 :
WriteLn('El número fué 3');4 : WriteLn('El número fué 4');5 : WriteLn('El número fué
5');ELSE WriteLn('El número no estaba en el rango indicado');
END.
GOTO
La sentencia GOTO es una sentencia utilizada para alterar el flujo del programa, es decir,
para ir a ejecutar una sentencia en un lugar diferente del programa y no la linea siguiente.
Para utilizar este tipo de salto es necesario declarar etiquetas, que no son otra cosa que el
identificador que marcará el lugar a donde se dirigirá el flujo del programa al momento de
usar el GOTO. La declaración de etiquetas se hace antes que la de constantes y variables, la
palabra reservada para su declaración es LABEL. El nombre de la etiqueta es un nombre de
un identificador como cualquier otro, pero al utilizarse debe terminar con dos puntos ":".
GOTO etiqueta;
Ejemplo:
Nota: normalmente se debe agregar la libreria CRT , despues del PROGRAM, PARA poder
usar el comando CLRSCR, Que nos permite borrar la pantalla antes de correr el programa.
Ejemplos.
***********************************************************
PROGRAM EJER2B;
USES CRT;
VAR x,y:REAL;
VAR suma,rest,mult:REAL;
VAR divi:REAL;
BEGIN
Read(x);
Read(y);
suma:=x + y;
rest:=x - y;
mult:=x * y;
divi:=x / y;
ClrScr;
END.
******************************************************************
PROGRAM EJER4B;
USES CRT;
VAR base,altura:REAL;
VAR area:REAL;
BEGIN
{Este programa sirve para calcular el area de un triangulo}
ClrScr;
area:=(base * altura) / 2;
END.
Program Saludo; Var nombre: string[20]; Begin Writeln ('Introduce tu nombre, por
favor'); Readln (nombre); Write ('Hola ',nombre); Readln;End.
******************************************************
PROGRAM EJER10B;
USES CRT;
VAR a,b,c:REAL;
VAR resultado:REAL;
BEGIN
ClrScr;
END.
PROGRAM EJER15B;
USES CRT;
VAR arista:REAL;
BEGIN
END.
********************************************************
Program Numeros;Uses CRT;Var numero:integer;Begin CLRSCR; Write ('Escriba un
número: '); Readln (numero); If numero<0 Then Writeln ('El número es
negativo') Else Writeln ('El número es positivo o cero'); Readln;End.
**********************************************************
Program Area;Uses
Begin CLRSCR;
Readln (num);
Readln (B);
Readln (H);
area:=(B*H)/2;
End; Readln;End.
Program Sumar;Uses
CRT;Var N,num,cont,suma:integer;
Begin CLRSCR;
End;
Readln;End.
PROGRAM EJER18B;
USES CRT;
VAR a,b,c:REAL;
VAR resultado1,resultado2:REAL;
BEGIN
ClrScr;
READLN (a);
READLN (b);
READLN (c);
END.
PROGRAM EJER22B;
USES CRT;
VAR cantidad:INTEGER;
BEGIN
ClrScr;
WRITELN ('');
END.