Você está na página 1de 66

Tutorial básico de Turbo Pascal

El lenguaje de Turbo Pascal


Palabras reservadas
Identificadores
Tipos de datos
Variables y constantes
Comentarios
La estructura de los programas
Estructura de los programas
Sentencia PROGRAM
Declaración de unidades
Declaración de constantes, tipos y variables
Programa principal
Ejecución de los programas
Compilación y ejecución en memoria
Compilación al disco
La operación de asignación
Asignación o igualación
Entrada y salida de datos
Salida de datos a la pantalla
Entrada de datos desde teclado
Tipos de datos
Tipos enteros
Tipos reales
Tipos caracter
Tipos cadenas
Tipos lógicos

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

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (1 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

palabras de uso exclusivo para ciertas funciones, a estas palabras les


llamaremos palabras reservadas de Turbo Pascal.

Las palabras reservadas de Turbo Pascal (versiones 6.0 o mayores) son:

Pascal Estandar y Turbo Pascal 6.0


AND ARRAY BEGIN CASE
CONST DIV DO DOWNTO
ELSE END FILE FOR
FORWARD FUNCTION GOTO IF
IN LABEL MOD NIL
NOT OF OR PACKED
PROCEDURE PROGRAM RECORD REPEAT
SET THEN TO TYPE
UNTIL VAR WHILE WITH

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, ...
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (2 de 15) [30/09/2003 12:35:38]
Tutorial básico de Turbo Pascal

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

Todo identificador en Pascal debe ser definido previamente a su utilización.

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 Números enteros sin parte decimal.


Char Caracteres del código ASCII
Boolean Pueden contener los valores de falso o verdadero
Real Números que pueden incluir una parte decimal
String En una secuencia de caracteres que se trata como un solo dato.

Variables y constantes
Los tipos de datos que manejaremos en nuestro programa pueden ser de dos
clases: variables o constantes.

Como su nombre lo indica las variables pueden cambiar a lo largo de la


ejecución de un programa, en cambio las constantes serán valores fijos durante
todo el proceso.

Un ejemplo de una variable es cuando vamos a sumar dos números que serán

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (3 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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.

Ahora, si nuestro programa de operaciones matemáticas va a utilizar el valor de


PI para algunos cálculos podemos definir un identificador PI con el valor de
3.1415926 constante, de tal forma que PI no pueda cambiar de valor, ahora en
lugar de escribir todo el número cada vez que se necesite en nuestro programa,
solo tenemos que escribir PI.

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 unicamente
para mejorar la comprensión del código fuente.

Un comentario no es tomado en cuenta al momento de la compilación del


programa y es de enorme importancia al momento de crearlo, modificarlo o
mantenerlo.

Existen dos formas de colocar comentarios en un programa de Turbo Pascal,


entre llaves: {Comentario} o entre parentesis y asteriscos: (*Comentario*).

Estructura de los programas


El lenguaje utilizado en Turbo Pascal es estructurado, lo que significa que cada
programa requiere una forma específica de escritura para que sea entendido por
el compilador.

Todo programa cuenta con algunas partes o módulos los cuales son:

Cabecera
Declaraciones
Programa

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (4 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

La cabecera del programa unicamente lleva el nombre del programa. En la


sección de declaraciones se le indica al compilador todos los identificadores y
unidades que se utilizarán durante la ejecución del programa. En la sección del
programa se escribe el código de instrucciones que se llevarán a cabo.

Sentencia PROGRAM
La sentencia PROGRAM es la declaración del nombre del programa.

Consta de tres partes: la palabra reservada PROGRAM, a continuación un


identificador utilizado como el nombre del programa y al final un punto y coma
";". Por ejemplo:

PROGRAM suma_de_dos_numeros ;

Esta declaración es siempre la primer linea en cualquier programa de Turbo


Pascal.

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.

La palabra reservada USES cumple el propósito de declarar las unidades en el


formato siguiente:

USES crt, dos;


Esta linea declara y habilita para su uso a la unidad crt y a la unidad dos

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
";".

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (5 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

Declaración de constantes y variables


Para declarar las constantes se utiliza la palabra reservada CONST seguida de
un identificador al que se le dará un valor determinado, un signo de igual "=",
el valor que recibirá el identificador y al final un punto y coma ";". Ejemplo:

CONST pi = 3.1415926;

De esta forma el identificador pi recibirá el valor de 3.1415926 y no será


posible cambiarlo en el transcurso del programa.

Es posible declarar varias constantes sucesivamente, puede ser una por renglón
o varias en un solo renglón. Cuando se hace ésto, 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;

Otra forma de escribir lo mismo es así:

CONST PI = 3.1415926; Nombre = 'Juan Gutiérrez'; Unidad = 1;

Pero por cuestiones de legibilidad es preferible la primera opción.

La declaración de variables se lleva a cabo de la misma forma, solo que en


lugar de la palabra CONS utilizamos la palabra VAR, y en lugar de "= valor;",
utilizamos : tipo , sustituyendo "tipo" por alguna clase válida de datos en
Turbo Pascal. Ejemplo:

VAR Num_entero : Integer;


Nombre : String;

Programa principal

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (6 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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.

Ya conociendo la estructura es posible escribir un primer programa:

PROGRAM Primera_Prueba;
VAR
Entero : Integer;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
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.

Como podrá apreciarse, no es importante el orden en el que se declaran las


variables y constantes (aplicable solo al Turbo Pascal), es decir, pueden
declararse primero las variables y luego las constantes y viceversa:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (7 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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.

Compilación y ejecución en memoria


La compilación de un programa es el paso mediante el cual traducimos dicho
programa al lenguaje maquina entendible por la computadora.

Para lograr la compilación en el entorno integrado de desarrollo de Turbo


Pascal se utiliza la opción Compile del menú del mismo nombre. Para accesar
al menú se utiliza la secuencia de teclas: [ALT] + [C], y luego se escoge la
opción Compile.

Otra forma de realizar la compilación es con la secuencia de teclas: [ALT] +


[F9].

Es posible compilarlo y ejecutarlo automaticamente utilizando la secuencia:


[CONTROL] + [F9]

Compilación al disco
Para poder ejecutar un programa sin necesidad de llamar al entorno integrado
de desarrollo de Turbo Pascal es necesario compilar el programa al disco.

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

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (8 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

o viceversa (Dependiendo de la opción seleccionada actualmente).

Una vez compilado un programa en el disco es posible ejecutarlo directamente


desde el sistema operativo.

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:

Nombre := 'Juan Pérez';


{Nombre guardará la cadena "Juan Pérez"}
Resta := Numero1 - Numero2;
{Resta gurdará el resultado de la resta de Numero2 a Numero1}
Area := (Base*Altura)/2;
{Obtiene el area de un triangulo y la guarda en el identificador Area}

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.

Salida de datos a la pantalla


Las instrucciones que permiten mostrar datos en la pantalla de la computadora
son: Write y WriteLn. Aunque ya se hizo uso de ellas en los pequeños
programas anteriores de ejemplo, aqui se describirán a fondo.

La sintaxis de los procedimientos es la siguiente:

Write (indentificadores);
WriteLn (indentificadores);

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (9 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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, ApellidoP, ApellidoM);

Esta linea de código desplegará consecutivamente los contenidos de los


identificadores Nombre, ApellidoP y ApellidoM. En caso de que la variable
Nombre almacenara el valor 'Rodrigo ', la variable ApellidoP 'González ' y la
variable ApellidoM 'García', el resultado en pantalla sería:

Rodrigo González García

Podemos obtener el mismo resultado si utilizamos la siguiente estructura:

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);

lo que obtendriamos sería:

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.

Entrada de datos desde teclado

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (10 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

Las instrucciones estandar de Turbo Pascal para obtener datos desde el teclado
son Read y ReadLn. La sintaxis de estas instrucciones es muy parecida a la de
Write y WriteLn:

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.

La diferencia en el uso de la instrucción Read con respecto a ReadLn es que en


la primera, si se le dan mas 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

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (11 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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

Al utilizar los tipos enteros es posible representar en el programa un número en


formato hexadecimal, para hacer esto solo se le antepone el símbolo "$" al
valor hexadecimal, al momento de visualizar dicho valor, o utilizarlo en alguna
operación será como decimal. Por ejemplo:

Cantidad := $10;

El valor que se guarda en "Cantidad" es 16.

Tipos reales
Los números reales son aquellos que cuentan con una parte decimal. En Turbo
Pascal contamos con varios tipos de datos reales, pero no se puede utilizar, mas
que el tipo real, en máquinas que no cuenten con un coprocesador matemático.
Los tipos de datos reales son:

Tipo Rango de valores que acepta


Real 2.9E-39 a 1.7E38
Single 1.5E-45 a 3.4E38
Double 5.0E-324 a 1.7E308
Extended 1.9E-4851 a 1.1E4932
Comp -9.2E18 a 9.2E18

Los números reales deben llevar por fuerza al menos un dígito de cada lado del

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (12 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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:

3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000


1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015

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.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (13 de 15) [30/09/2003 12:35:38]


Tutorial básico de Turbo Pascal

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

Es posible acceder a un solo caracter de una cadena utilizando inmediatamente


despues del nombre de la misma la posición del caracter encerrada entre
corchetes. Por ejemplo:

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
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (14 de 15) [30/09/2003 12:35:38]
Tutorial básico de Turbo Pascal

respectivamente.

El tipo está definido como Boolean.

Los datos lógicos tienen una enorme aplicación en la evaluación de ciertos


procesos, así como en el control de flujo de los programas.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad1p.html (15 de 15) [30/09/2003 12:35:38]


Operaciones aritméticas y expresiones

Operaciones Aritméticas
Operaciones básicas
Operadores DIV y MOD (Enteros)
Prioridad de operadores

Constantes variables
Uso de las constantes variables
Constantes expresiones
Uso de las expresiones como constantes

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.

Los operadores de Turbo Pascal son:

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.

Operadores DIV y MOD


La división de dos números, sin importar su tipo, dará como resultado un
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad2p.html (1 de 4) [30/09/2003 12:36:27]
Operaciones aritméticas y expresiones

número real, así que para dividir dos enteros, y obtener el resultado como
entero, Turbo Pascal ofrece el operador DIV, el cual da el resultado entero de
una división entre enteros, y el operador MOD que regresa el residuo de una
división de enteros.

Su sintaxis es:

entero := dividendo DIV divisor

entero := dividendo MOD divisor

El siguiente programa es un ejemplo del uso de los operadores aritméticos:

PROGRAM Operaciones_Básicas;
VAR
Suma, Resta, Multiplicacion, Division : Real;
Cociente_Entero, Residuo_Entero : Integer;

BEGIN
Suma := 12 + 8;
Resta := 12 - 8;
Multiplicacion := 12 * 8;
Division := 12/8;
Cociente_Entero := 12 DIV 8;
Residuo_Entero := 12 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.

Prioridad de operadores
Cuando se utilizan en alguna expresión mas de un operador, éstos se evaluan
conforme a una prioridad establecida por Turbo Pascal. Es necesario conocer el
orden de evaluación para evitar errores en nuestros programas.

El orden en que se ejecutan las operaciones es el siguiente:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad2p.html (2 de 4) [30/09/2003 12:36:27]


Operaciones aritméticas y expresiones

*, /, DIV, MOD primeros en evaluarse, todos tienen igual prioridad.


+, - últimos en evaluarse, ambos tienen igual prioridad.

En caso de existir parentesis en la expresión se evaluará primero el contenido


de los parentesis antes que otros operadores.

Si existen dos operadores de igual prioridad se evaluará de izquierda a derecha.

Para observar la importancia de la evaluación correcta de los operadores se


expone el siguiente ejemplo:

PROGRAM Operadores;
VAR
Resultado_Uno, Resultado_Dos : Real;
BEGIN
Resultado_Uno := 3 + 5 * 7;
Resultado_Dos := (3 + 5) * 7;
WriteLn ('El resultado de la operación 3 + 5 * 7 es: ',Resultado_Uno);
WriteLn ('El resultado de la operación (3 + 5) * 7 es: ',Resultado_Dos);
END.

Como se podrá observar en la primera operación se ejecutará primero la


operación 5*7 y al resultado se le sumarán 3,en cambio,en la segunda
operación se realizará primero la suma 3+5 para multiplicarle al resultado 7.

Uso de las constantes variables


Cuando se declaran las variables en Turbo Pascal no se inicializan con algún
valor en especial, ésto quiere decir que una variable que no ha sido igualada a
cierto valor llevará un contenido imprevisible, cosa no deseable en la mayoría
de los programas, para evitar resultados indeseables es posible asignarle a cada
variable un valor "por defecto", que se guarde al iniciar el programa.

Estas variables inicializadas son llamadas constantes variables, ya que se


declaran en la sección de constantes, pero es posible cambiar su valor.

La sintaxis para su declaración es la siguiente:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad2p.html (3 de 4) [30/09/2003 12:36:27]


Operaciones aritméticas y expresiones

Identificador : tipo_de_datos = valor;

Ejemplo:

PROGRAM Constantes_Variables;

CONST
Valor_Inicializado : Integer = 23;
Texto_Inicializado : String = 'Buenos Dias!';

VAR
Texto : String;
Entero : Integer;

BEGIN
WriteLn ('Cadena inicializada: ',Texto_Inicializado);
WriteLn ('Cadena sin inicializar: ',Texto);
WriteLn ('Entero inicializado: ',Valor_Inicializado);
WriteLn ('Entero sin inicializar: ',Entero);
END.

Uso de las expresiones como constantes


Es posible declarar constantes con base en otras constantes ya declaradas en el
programa utilizando alguna expresión para este fin, por ejemplo:

CONST
Columnas = 80;
Filas = 24;
Total_de_espacios = Columnas * Filas;
Solo es posible utilizar constantes en las expresiones de este tipo, si se usa
alguna variable ocurrirá un error al momento de compilar el programa.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad2p.html (4 de 4) [30/09/2003 12:36:27]


Tutorial básico de Turbo Pascal

Sentencias compuestas
Sentencias compuestas
Sentencias repetitivas
Ciclos FOR
Ciclos WHILE
Ciclos REPEAT-UNTIL
Bifurcaciones condicionales
IF...THEN...ELSE
IF anidados
CASE
Bifurcaciones incondicionales
GOTO
HALT

Sentencias compuestas
Las sentencias compuestas son grupos de sentencias, separadas cada una por un
punto y coma ";" que son tratadas como una sola sentencia.

Para identificar una sentencia compuesta de un grupo sucesivo de sentencias se


encierran entre las palabras reservadas BEGIN y END. Uno de los ejemplos
más claros de una sentencia compuesta es el cuerpo de un programa principal
en Turbo Pascal, el lenguaje toma todo lo que existe entre estas dos sentencias
como un solo elemento a ejecutarse aún cuando contenga varias instrucciones o
sentencias:

PROGRAM Prueba;

BEGIN
WriteLn('Primera linea de una sentencia compuesta');
WriteLn('Segunda linea de una sentencia compuesta');
WriteLn('Tercera linea de una sentencia compuesta');
END.

El punto y coma que se encuentra antes de la palabra reservada END puede ser

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (1 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

suprimido sin afectar a la compilación. En ocasiones es necesario repetir un


determinado número de veces la ejecución de una sentencia, ya sea sencilla o
compuesta, para realizar esta tarea Turbo Pascal cuenta con instrucciones
específicas para el tipo de repetición que se requiera.

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:

FOR identificador := inicio TO fin DO instrucción;

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.

El siguiente ejemplo escribe los números del 1 al 50 en pantalla. La variable


utilizada es "Numero".

PROGRAM Ciclo_FOR;
VAR
Numero : Integer;

BEGIN
FOR Numero := 1 to 50 DO
WriteLn(Numero);
END.

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

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (2 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

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:

PROGRAM Ciclo_FOR_2;
VAR
Numero : Integer;

BEGIN
FOR Numero := 50 DOWNTO 1 DO
WriteLn(Numero);
END.

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:

WHILE condición DO instrucción

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:

PROGRAM Ciclo_WHILE;
VAR
Numero : Integer;

BEGIN
Numero := 1;
WHILE Numero <= 50 DO
BEGIN
WriteLn (Numero);
Numero := Numero +1;
END;
END.

Al final del programa la variable Numero guardará el valor 51, que fué el valor
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (3 de 7) [30/09/2003 12:36:51]
Tutorial básico de Turbo Pascal

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:

PROGRAM Ciclo_RepeatUntil;
VAR
Numero : Integer;
BEGIN
Numero := 1;
REPEAT
WriteLn (Numero);
Numero := Numero + 1;
UNTIL Numero = 50;
END.

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.

Para lograr este control se cuenta con las estructuras de control que, en Turbo
Pascal, son las siguientes:

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:

IF condición THEN instrucción ELSE otro

Donde condición es la expresión que se evaluará, en caso de ser verdadera se

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (4 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

ejecutará la sentencia dada como instrucción, en caso de que la condición sea


falsa se ejecutara la sentencia dada como otro. Ejemplo:

PROGRAM IF_THEN_ELSE;

VAR
Contador : Integer;

BEGIN
FOR contador := 1 to 50 DO
BEGIN
IF contador > 10 THEN WriteLn(Contador) ELSE WriteLn('*');
END;
END.

En este pequeño programa la variable Contador se incrementará desde 1 hasta


50, la sentencia condicional IF verificará si es verdad que Contador es mayor a
10, de ser así se escribirá en pantalla el valor de la variable, de lo contrario se
escribira en la pantalla un caracter "*". Como el contador inicia desde 1,
tenemos que se imprimiran 10 asteriscos antres del primer número, que será el
11, valor que si cumple la condición "Contador > 10" (la hace verdadera).

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 THEN


BEGIN
IF Numero < 10 THEN Opcion := Numero;
IF Numero < 30 THEN Opcion2 := Numero;
END;

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (5 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

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.

El siguiente programa ilustra el uso de la forma CASE, el programa preguntará


un número al usuario y lo clasificará de acuerdo a su valor.

PROGRAM Case;
VAR
Numero : Integer;
BEGIN
WriteLn('Introduzca un número entero del 1 al 5: ');
ReadLn(Numero);
CASE Numero OF
1 : 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.

El uso de GOTO no es aconsejable ya que destruye el modelo de la


programación estructurada que es la que se utiliza en Turbo Pascal, además se
cuenta con las estructuras de datos anteriores que hacen casi innecesario su uso.

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

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (6 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

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 ":".

La sintaxis del comando es:

GOTO etiqueta;

Ejemplo:

PROGRAM Uso_del_GOTO;
LABEL
Etiqueta;
BEGIN
WriteLn('Esta linea si se escribirá');
GOTO Etiqueta;
WriteLn('Esta linea no se escribirá');

Etiqueta:
WriteLn('Se efectuó el brinco');
END.

HALT
La instrucción HALT provoca la terminación inmediata de un programa, sin
importar las siguientes instrucciones. Normalmente se utiliza en casos de error,
se despliega un mensaje y se termina el programa. Ejemplo:

PROGRAM Uso_de_HALT;

BEGIN
WriteLn('Primera linea del programa');
WriteLn('Terminará la ejecución del programa');
HALT
WriteLn('');
END.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad3p.html (7 de 7) [30/09/2003 12:36:51]


Tutorial básico de Turbo Pascal

Procedimientos
Definición
Creación
Uso de los procedimientos
Variables locales y globales
Paso de información entre procedimientos
Parámetros
Funciones
Definición
Uso de las funciones
Procedimientos predefinidos en Turbo Pascal
HALT y EXIT
INC y DEC (incrementar y decrementar)

Definición de procedimiento
Un procedimiento es un grupo de sentencias que realizan una tarea concreta.
En lugar de reescribir el código completo de esa tarea cada vez que se necesite,
unicamente se hace una referencia al procedimiento.

Por ejemplo, es muy común que se quiera visualizar un título determinado


varias veces en un programa, para evitar teclear ese título en nuestro programa
fuente todas las veces que sea necesario creamos un procedimiento llamado
"Titulo" que se encargará de escribirlo.

Una vez creado un procedimiento actuará como una instrucción más de Turbo
Pascal, y para ejecutarlo unicamente teclearemos el nombre de dicho
procedimiento.

Para poder ejecutar un procedimiento es necesario declararlo en el programa


que se este utilizando.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (1 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

Creación de los procedimientos


El primer paso para crear un procedimiento es saber que queremos que haga.
Una vez definiendo este punto declaramos el procedimiento despues de haber
declarado variables y constantes, antes del cuerpo del programa principal. La
palabra reservada para su declaración es Procedure seguida del nombre del
procedimiento. Vamos a crear un procedimiento encargado de escribir en
pantalla el enunciado "Programa de Turbo Pascal":
PROCEDURE Titulo;
BEGIN
WriteLn ('Programa de Turbo Pascal');
END;

Uso de los procedimientos


Una vez declarado el procedimiento es posible utilizarlo como una instrucción
de Turbo Pascal. Al uso de un procedimiento se le conoce como llamada al
procedimiento.

El siguiente programa ilustra el uso o la llamada al procedimiento creado


anteriormente:

PROGRAM Procedimientos;

PROCEDURE Titulo;
BEGIN
WriteLn ('Programa de Turbo Pascal');
END;

BEGIN
WriteLn ('Programa ejemplo del uso de procedimientos');
Titulo;
{Llama al procedimiento}
WriteLn;
Titulo;
{Vuelve a llamar al procedimiento}
END;

Variables locales y globales

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (2 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

En Turbo Pascal cada identificador tiene un campo de acción, solo dentro de


éste campo es posible utilizarlo. Los ejemplos más claros son las variables, que
pueden ser globales o locales. La diferencia estriba en que una variable global
puede ser utilizada por cualquier parte del programa, incluyendo a todos los
procedimientos, en cambio una variable local puede ser utilizada unicamente
por el procedimiento en el que esta declarada, el programa principal y los otros
procedimientos la toman como inexistente. Ejemplo:

PROGRAM Variables;
VAR
Hola : String;

PROCEDURE prueba;
VAR
Adios : String;
BEGIN
{En esta sección si es posible usar la variable Hola}
Adios := 'Adios, que les vaya bien';
WriteLn (Adios);
END;

BEGIN
{En esta sección no se reconoce a la variable Adios}
Hola := 'Hola, bienvenidos al programa';
WriteLn (Hola);
WriteLn (Adios);
{Al compilar el programa se generará un error ya que la variable Adios es inexistente en esta
sección, para eliminar el problema quites esta linea}
prueba;
END.
Es posible darle el mismo nombre a una variable local y a una global en el
mismo programa, pero entonces el procedimiento no podrá utilizar la variable
global ya que le da preferencia a las locales sobre las globales. Por ejemplo:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (3 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

PROGRAM Variables_2;
VAR
Saludo : String;

PROCEDURE Mensaje;
VAR
Saludo : String;
BEGIN
Saludo := 'Este mensaje solo es válido para el procedimiento "Mensaje"';
WriteLn('Saludo');
END;

BEGIN
Saludo := 'Primer saludo (Global)';
WriteLn (Saludo);
Mensaje;
WriteLn (Saludo); {Se escribirá el mensaje "Primer saludo"}
END.

Parámetros
Para poder pasar información entre el programa principal y procedimientos, o
entre los mismos procedimientos usamos los parámetros, que son los canales de
comunicación de datos.

Los parámetros son opcionales y si no se necesitan no se deben usar. Para


utilizarlos es necesario declararlos son la siguiente sintaxis:

PROCEDURE nombre (lista de parámetros);

La lista de parámetros esta compuesta de los nombres de los mismos y del tipo
de datos que representan, los del mismo tipo se separan con comas "," y cada
tipo diferente se separa con punto y coma ";". Ejemplo:

Procedure Ejemplo(a, b : Integer; c, d : String);

Para llamar a un procedimiento que utiliza parámetros se pueden utilizar como


tales otras variables o constantes, siempre y cuando sean del mismo tipo que
los declarados. Ejemplo:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (4 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

Ejemplo(1, 2, 'Hola', 'Adios');

Ejemplo de un programa con procedimiento que utiliza un parámetro.

PROGRAM Parametros;
VAR
Saludo : String;

PROCEDURE Imprime_5 (a : String);


VAR
Contador : Integer;
BEGIN
FOR contador := 1 to 5 DO
{Imprime 5 veces la cadena almacenada }
WriteLn(a);
{en la variable "a", que es la información}
END;
{que llega como parámetro }

BEGIN
Saludo := 'Bienvenidos al programa';
Imprime_5 (Saludo);
{llama al procedimiento Imprime_5, usando como}
{parámetro la variable Saludo }
Imprime_5 ('Fin');
{Utiliza la cadena "fin" como parámetro }
END.
Es válido crear un procedimiento que llame a otro procedimiento siempre y
cuando el procedimiento llamado haya sido declarado antes del que lo usará.

Definición de las funciones


Las funciones son, al igual que los procedimientos, un conjunto de sentencias
que se ejecutan constantemente, la diferencia entre éstas y los procedimientos
es que las funciones regresan un valor. La declaración de las funciones se
realiza de la siguiente forma:

FUNCTION nombre(parámetros) : tipo_de_datos;

A continuación se escribe el contenido de la función como una sentencia


normal (sencilla o compuesta), normalmente terminando con la igualación de la

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (5 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

función al valor que regresará. Ejemplo:

FUNCTION Promedio (a, b : Real) : Real; {Promedio de dos números reales}


BEGIN
Promedio := (a + b) / 2;
END;

Uso de las funciones


Como las funciones devuelven un valor específico la forma más usual de
utilizarlas es por medio de asignaciones de una variable a la función. Ejemplo:

PROGRAM Funciones;
VAR
X, Y, Z : Real;

FUNCTION Promedio (a, b : Real) : Real;


{Promedio de dos números reales}
BEGIN
Promedio := (a + b) / 2;
END;

BEGIN
X := 5.89;
Y := 9.23;
Z := Promedio (X, Y);
{Iguala Z al valor devuelto por la función Promedio}
WriteLn('El promedio de ',X,' y ',Y,' es: ',Z);
END.

Procedimieto HALT
El procedimiento HALT ya se habia revisado anteriormente, pero se tomó
como una instrucción, siendo que es realmente un procedimiento predefinido
de Turbo Pascal que nos permite terminar nuestro programa en cualquier punto
del mismo.

El procedimiento EXIT provoca la salida del procedimiento que se está


ejecutando y nos regresa al lugar de donde fue llamado.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (6 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

Procedimientos INC y DEC


El procedimiento INC incrementa en 1 el contenido de cualquier variable de
tipo entero, es lo mismo en un programa teclear:

Variable := Variable + 1;

o telcear:

Inc(Variable);

El procedimiento DEC decrementa en 1 el valor de cualquier variable de tipo


entero que se le indique, se usa igual que INC:

DEC (Variable);

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad4p.html (7 de 7) [30/09/2003 12:37:04]


Tutorial básico de Turbo Pascal

Funciones estándar de Turbo Pascal


Truncamiento y redondeo
Exponenciales y logaritmicas
Aritméticas
Trigonométricas
Números aleatorios

Truncamiento y redondeo
La función Round (número) redondea un número real al entero más cercano y
devuelve el resultado como un número real.

La función Trunc (número) elimina la parte decimal del número real y


devuelve el resultado como tipo entero. Ejemplo:

PROGRAM Redondeo;
VAR
Entero : Integer;
ValorReal1, ValorReal2 : Real;

BEGIN
ValorReal1 := 123.435;
ValorReal2 := Round(ValorReal1);
Entero := Trunc (ValorReal1);
WriteLn('El resultado de la función Round sobre el valor');
WriteLn(ValorReal1, ' es: ','ValorReal2, ' (Número real)');
WriteLn('El resultado de la función Trunc sobre el valor');
WriteLn(ValorReal1, ' es: ', Entero, ' (Número entero)');
END.

Funciones exponenciales y logarítmicas


La función Sqr devuelve el cuadrado del valor utilizado como parámetro.

Sqrt regresa la raíz cuadrada del valor dado como parámetro, el resultado

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad5p.html (1 de 4) [30/09/2003 12:37:11]


Tutorial básico de Turbo Pascal

siempre es real aunque se utilice un número de tipo entero como argumento.


Ejemplo:

PROGRAM Exponentes;
VAR
Dato, Cuadrado : Integer;
Raiz : Real;
BEGIN
Dato := 45;
Cuadrado := Sqr(Dato);
Raiz := Sqrt(Dato);
WriteLn(' El cuadrado de ',Dato, ' es: ',Cuadrado);
WriteLn('La raíz cuadrada de ',Dato,' es: ',Raiz);
END.

Las funciones Exp y Ln tratan con logaritmos naturales o neperianos. Exp


devuelve la funcion exponencial e^x y Ln devuelve el logaritmo natural de x.
El resultado en ambos siempre es del tipo real.

Es posible crear una función con base en estas dos para calcular el resultado de
un número x elevado a una potencia n, la cual nos quedaría así:

FUNCTION Potencia(x,n:Real):Real;
BEGIN
Potencia := Exp(n *Ln(x))
END;

El uso de esta función en un programa podría ser:

PROGRAM Potenciacion;
FUNCTION Potencia(x, n : Real) : Real;
BEGIN
Potencia := Exp(n * Ln(x))
END;
BEGIN
WriteLn('El resultado de 5 elevado a 3 es: ',Potencia(5,3));
END.

Funciones aritméticas
Abs regresa el valor absluto del identificador que se le pase como parámetro.
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad5p.html (2 de 4) [30/09/2003 12:37:11]
Tutorial básico de Turbo Pascal

El valor que devuelve será del mismo tipo que el argumento.


Abs(-24) {Regresa el valor 24}
La función Int devuelve la parte entera de un valor real, como tipo real.

La función Frac regresa la parte decimal de un valor real, también como valor
real.

Funciones trigonométricas
Las funciones trigonometricas definidas en Turbo Pascal son: Sin(valor),
Cos(valor) y Arctan(valor), todas las demas pueden definirse desde estas:

Tan(x) Sin(x) / Cos(x)


Cot(x) Cos(x) / Sin(x)
Sec(x) 1 / Cos(x)
Csc(x) 1 / Sin(x)

Las funciones para utilizarlas son:

FUNCTION Tan(x : Real) : Real;


BEGIN
Tan := Sin(x) / Cos(x)
END;

FUNCTION Cot(x : Real) : Real;


BEGIN
Cot := Cos(x) / Sin(x)
END;

FUNCTION Sec(x : Real) : Real;


BEGIN
Sec := 1 / Cos(x)
END;

FUNCTION Csc(x : Real) : Real;


BEGIN
Csc := 1 / Sin(x)
END;

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad5p.html (3 de 4) [30/09/2003 12:37:11]


Tutorial básico de Turbo Pascal

Generación de números aleatorios


Para generar números aleatorios Turbo Pascal cuenta con la función Random y
el procedimiento Randomize.

La función Random genera un número aleatorio de tipo real comprendido


entre 0 y 1, en cambio la función Random (x) genera un entero aleatorio entre
0 y x.

Sin embargo el uso de la función Random es en ocasiones insuficiente por si


sola para la generación de valores aleatorios ya que los números son realmente
pseudoaleatorios, y cada vez que se ejecute el programa se obtendrían los
mismos valores. Para evitar esto debemos utilizar en todo programa que utilice
valores aleatorios el procedimiento Randomize, que inicializa el generador de
números aleatorios, en otras palabras, asegura que los números que obtendrá
serán diferentes cada vez que se ejecute el programa.

Es recomendable usar este procedimiento antes de cada función random del


programa.

Ejemplo de un programa generador de números aleatorios:

PROGRAM Nums_Aleatorios;
VAR
x : Integer;

BEGIN
Randomize
WriteLn('Lista de números aleatorios');
For x := 1 to 20 do
WriteLn(Random);
END.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad5p.html (4 de 4) [30/09/2003 12:37:11]


Tutorial básico de Turbo Pascal

Operaciones básicas con cadenas


Comparación de cadenas
Manejo de los elementos de la cadena
Unión de cadenas
Operador +
Función Concat
Procedimientos y funciones para el manejo de cadenas
Pos
Copy
Insert
Delete
UpCase
Str
Val

Las cadenas de caracteres son secuencias de caracteres con longitudes que


varían desde 1 hasta los 255 caracteres. El tipo identificador de las cadenas es
String. Cuando declaramos una variable de tipo string será posible introducir
hasta 255 caracteres en ella, pero también es factible declarar cadenas más
cortas agregando al momento de la declaración la longitud de la variable, por
ejemplo:

VAR
Mensaje : String[120]; {Longitud maxima = 120 caracteres}

Comparación de cadenas
La comparación de cadenas es una operación muy común en Turbo Pascal;
estas comparaciones se realizan con base en el orden del código ASCII, por
ejemplo la cadena 'Prueba' es menor a la cadena 'prueba' ya que el valor del
código ASCII de P es 80 y el de p es 112.

Así también podemos diferenciar las cadenas con respecto a su tamaño: 'Hola'

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (1 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

es menor a 'Bienvenido'

Existe un caso especial de una cadena, que es cuando no tiene ningún caracter
en ella, en ese momento decimos que es una cadena nula o vacía. Se
recomienda ampliamente inicializar todos los valores de las cadenas a cadenas
nulas al inicio del programa, ya que podrían contener datos extraños e
indeseables.

Manejo de los elementos de la cadena


Es posible leer cada elemento de una cadena por separado, por ejemplo, si en la
variable Calle almacenamos la cadena 'Hidalgo' es posible asignar a otra
cadena el valor de Calle[x] donde x es el caracter de la cadena que se quiere
leer, así también es posible visualizar el caracter en pantalla usando la
instrucción WriteLn. Ejemplo:

PROGRAM Caracter;
VAR
Calle : String;
Letra : String;
BEGIN
Calle := 'Hidalgo';
WriteLn(Calle[2]); {Visualiza el segundo caracter de Calle}
Letra := Calle[1]; {Guarda en Letra el primer caracter de Calle}
WriteLn(Caracter) END.

Para conocer la longitud de una cadena utilizamos la función Length, la


longitud es la cantidad de caracteres que contiene la cadena en un momento
determinado.

Su sintaxis es:

Length (cadena);

La función regresa un valor entero.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (2 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

PROGRAM Funcion_Length;
VAR
Cadena : String;
BEGIN
Cadena := 'Prueba de longitud';
WriteLn ('Longitud de la cadena: ', Length (Cadena));
END.

El programa imprime en la pantalla un mensaje con la longitud de la cadena


almacenada en memoria, en este caso específico 18.

En ocasiones es necesario combinar dos o más cadenas de caracteres en una


sola, para lograr ésto utilizamos los siguientes métodos.

Operador +
Es una de las formas más sencillas de unir dos cadenas y se maneja
exactamente como una suma, la única limitante es que en caso de ser mayor la
longitud resultante de la suma que la longitud que pueda manejar la variable en
que se almacenará se truncarán los caracteres sobrantes. Ejemplo:

Cadena1 := 'Buenos ';


Cadena2 := 'dias ';
Cadena3 := Cadena1 + Cadena2;
WriteLn (Cadena3);

Se imprimirá en la pantalla: 'Buenos dias'. (Notese que este ejemplo es solo una
sección del programa, para ejecutarlo es necesario completar la estructura).

Función Concat
La función concat produce los mismos resultados que la concatenación, es
posible incluir cualquier número de cadenas que se necesiten concatenar.

La suma de las cadenas no deberá sobrepasar la longitud que la variable, a la


cual se asignará dicha suma, puede manejar. Ejemplo:

Cadena := Concat (Cad1, cad2, cad3);

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (3 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

Pos
Laa función Pos nos sirve para localizar una determinada cadena dentro de
otra, en otras palabras para verificar si una cadena es subcadena de otra
segunda.

Los parámetros que requiere son: la cadena que se buscará y la cadena donde se
buscará la primera:

Pos (Cadena1, Cadena2);

Cuando encuentra la cadena la función devuelve su posición inicial, en caso de


que no la encuentre devuelve el valor de 0.

Ejemplo:

Cadena := 'Domingo Lunes Martes Miercoles Jueves Viernes Sabado';


WriteLn(Cadena);
WriteLn(Pos('Lunes', Cadena)); {Muestra 9}
WriteLn(Pos('Jueves', Cadena)); {Muestra 32}
WriteLn(Pos('Ayer', Cadena)); {Muestra 0}

Copy
La función copy regresa una subcadena de una variable o constante dada como
parámetro. Su sintaxis es:

Copy (Cadena, Inicio, Cantidad);

Donde Cadena es la fuente de la subcadena, Inicio es la posición desde la cual


se obtendrá la subcadena y Cantidad es el número de caracteres que se
extraerán.

Los valores de Inicio y Cantidad deben ser de tipo entero.

Ejemplo:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (4 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

Cadena := "Nuevos horizontes";


WriteLn (Copy(Cadena, 8, 10)); {Visualiza: horizontes}

Insert
El procedimiento Insert sirve para insertar una cadena dentro de otra en alguna
posición determinada. Sintaxis:

Insert (Cadena1, Cadena2, Posición)

Donde Cadena1 es la que se insertará, Cadena2 es donde se insertará y Posición


es el lugar donde se insertará. El parámetro Posición debe ser de tipo entero.

Delete
Este procedimiento elimina un determinado número de caracteres de una
cadena. Su sintaxis es:

Delete (Cadena, Inicio, Número)

Cadena es la variable en la cual se eliminarán los caracteres, Inicio es la


posición del primer caracter a eliminar y Número es la cantidad de caracteres
que se borrarán.

UpCase
La función UpCase regresa la letra mayuscula correspondiente al caracter dado
como parámetro. Es muy común trabajando con cadenas que se quiera
convertir una que contiene un número a su valor numérico, para poder
utilizarlo en operaciones matemáticas, así como convertir un número a su
equivalente en una cadena.

Esto es más fácil de entender si consideramos que no es lo mismo el valor 75 y


el valor '75', en el primer caso es un número mientras que en el segundo es un
par de caracteres ASCII.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (5 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

Para lograr estos cambios de tipo en Turbo Pascal utilizamos los


procedimientos siguientes:

Str
El procedimiento Str obtiene una cadena a partir de un valor numérico. Su
sintaxis es:

Str(Valor, Cadena)

Donde valor es el número a convertir y Cadena es la variable donde se


almacenará la cadena ya convertida.

Val
Este procedimiento convierte una cadena en un valor de tipo numérico, el
problema con esta función es que si la cadena no esta formada exclusivamente
de números siguiendo las reglas para el tipo de datos que se vallan a obtener se
generará un error. Sintaxis:

Val (Cad, Num, Código)

Cadena contiene la cadena que será procesada, Num es la variable de tipo


numérico donde se guardará el valor de la cadena y Código es una variable de
tipo entero (Integer) que contendrá el valor de 0 si no hubo errores y un valor
diferente en caso de que no se haya podido convertir la cadena, el valor de
Código representa la posición de la cadena donde ocurrio el error.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad6p.html (6 de 6) [30/09/2003 12:37:22]


Tutorial básico de Turbo Pascal

Concepto de unidad
Concepto de unidad
La declaración USES
Creación de unidades
Estructura de las unidades
Creación de una unidad
Compilación de la unidad
Utilización de las unidades
Uso de las unidades

Concepto de unidad
Las unidades son grupos de funciones o procedimientos compilados que
pueden ser llamados y utilizados desde cualquier programa en Turbo Pascal sin
necesidad de escribirlos de nuevo.

Las unidades no son ejecutables por si solas, dependen del programa que las
llama para poder realizar su función.

Turbo Pascal incorpora algunas unidades que contienen una gran cantidad de
rutinas integradas, pero para hacer uso de ellas es necesario primero declarar el
uso de tales unidades.

La declaración USES
Para declarar una unidad, o lo que es lo mismo, dejarla lista para ser utilizada,
se utiliza la palabra reservada USES que debe ir inmediatamente despues de la
sentencia PROGRAM, despues se escriben los nombres de las unidades que se
utilizarán.

Las unidades estándar de turbo pascal son:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad7p.html (1 de 4) [30/09/2003 12:37:36]


Tutorial básico de Turbo Pascal

Crt
Dos
Graph
Overlay
Printer
System

Estructura de las unidades


Las unidades estan compuestas por cuatro partes:

Declaración
Es obligatoria, provee el nombre de la unidad que se creará. Su suntaxis es:

UNIT nombre_de_la_unidad;

Ejemplo:

UNIT prueba;
Interfaz
Esta sección se declara con la palabra INTERFACE, en esta sección se
encuentran las declaraciones de todos los elementos que pueden ser utilizados
por el programa que llama a la unidad, por ejemplo otras unidades, variables,
constantes, procedimientos y funciones. En esta sección no se incluyen los
códigos de los procedimientos ni funciones, unicamente su declaración.
Ejemplo:

INTERFACE
USES Crt, Dos;
VAR
Numero : Integer;
CONST
Columnas = 10;
PROCEDURE Colocar(Cad1 : String; X, Y : Integer);

Implementación
La sección de implementación es exclusiva para la unidad que se está creando,

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad7p.html (2 de 4) [30/09/2003 12:37:36]


Tutorial básico de Turbo Pascal

contiene declaraciones de etiquetas, variables, constantes, así como el


contenido de los procedimientos y funciones declarados en la sección de
interfaz. La palabra usada para declarar esta parte es IMPLEMENTATION.
Ejemplo:

IMPLEMENTATION
USES Crt;
PROCEDURE Colocar(Cad1 : String; X, Y : Integer);
BEGIN
GotoXY(X,Y);
Write(Cad1);
END;

Inicialización
Esta sección se utiliza para inicializar los valores de las variables, no es
indispensable y por lo mismo no siempre se incluye. Su sintaxis es parecida a
la del cuerpo principal de un programa, se inicia con BEGIN y termina con un
END.

Creación de una unidad


La creación de una unidad propia se realiza utilizando las partes de la citadas
anteriormente. Su creación se realiza en la misma forma que la de un programa.

Un ejemplo de una unidad es:

UNIT Prueba;
INTERFACE
PROCEDURE Centrar(Cad1 : String; renglon : Integer);

IMPLEMENTATION
USES Crt;
VAR C : Integer;

PROCEDURE Centrar(Cad1 : String; renglon : Integer);


BEGIN
C := (80 - Length(Cad1)) DIV 2
GotoXY (C,renglon);
Write(Cad1);
END;

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad7p.html (3 de 4) [30/09/2003 12:37:36]


Tutorial básico de Turbo Pascal

BEGIN
END.

Compilación de la unidad
Para compilar una unidad y dejarla lista para su utilización en programas
posteriores se utiliza la opción Compile en el menú del mismo nombre.

Es necesario verificar que en la opción Destination, del mismo menú, esté


activado el almacenamiento del código al disco (Disk) y no a memoria, de lo
contrario la unidad unicamente se podrá utilizar durante esa sesión y no en las
sesiones posteriores porque se eliminará de la memoria al momento de salir del
entorno integrado de desarrollo.

La secuencia de teclas [ALT] + [F9] también compilan la unidad así como los
programas dependiendo del caso.

Uso de las unidades


Una vez compilada una unidad se puede incorporar al programa agregando la
sentencia USES de la que se había hablado al principio, ya declaradas las
unidades que se utilizarán se puede hacer uso de todos los procedimientos y
funciones incluidas como si estuvieran escritas en el mismo programa.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad7p.html (4 de 4) [30/09/2003 12:37:36]


Tutorial básico de Turbo Pascal

Archivos de acceso secuencial


Declaración de un archivo
Abrir archivos
Escribir datos en un archivo
Leer datos de un archivo
Fin del archivo
Cerrar archivos
Función Eoln
Agregar datos a un archivo de texto
Archivos de acceso directo
Estructura del archivo
Declaración de un archivo
Asignación de un archivo
Abrir archivos
Registro actual y tamaño de un archivo
Posicionamiento en el interior de un archivo
Lectura y escritura de archivos
Cerrar un archivo

Archivos de acceso secuencial


Los archivos de acceso secuencial son llamados también archivos de texto,
están formados por cadenas de caracteres separadas unas de otras por los
códigos retorno de carro/avance de línea, que corresponden a los caracteres
13/10 del código ASCII. El final del archivo se indica mediante el caracter
ASCII 26, que también se expresa como ^Z o EOF.

Es posible visualizar estos archivos con la orden TYPE del sistema operativo
DOS y se pueden editar con cualquier editor de textos.

Este tipo de archivos solo permiten operaciones de lectura y escritura

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (1 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

secuenciales, la unica forma de modificarlos es agregando líneas al final del


archivo.

Los pasos para leer o escribir en un archivo de este tipo son:

Declarar una variable de tipo texto y asociarla al nombre de un archivo. A esto


también se le llama declarar el archivo.
Abrir el archivo ya sea para lectura o escritura.
Leer o escribir datos en el archivo.
Cerrar el archivo

Declaración de un archivo
Para declarar un archivo primero se declara una variable tipo text de la
siguiente forma:

VAR
VarArchivo : Text;

Una vez declarada la variable se asigna al nombre de algun archivo:

ASSIGN (VarArchivo, NombreArchivo);


Donde NombreArchivo es una cadena de caracteres que contiene el nombre del
archivo, la unidad de disco donde se encuentra y el directorio. Por ejemplo:

ASSIGN (VarArchivo, 'C:\DOS\PRUEBA.TXT');

Abrir archivos
Exsiten tres formas de abrir un archivo:

Rewrite Reset Append

Escribir datos en un archivo


Para escribir datos a un archivo se utilizan las instrucciones Write y WriteLn,

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (2 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

como si se quisiera escribir a la pantalla, con la diferencia de que se


especificará la variable de archivo ya declarada. Ejemplo:

WriteLn(VarArchivo, 'Prueba de archivos');


Esta sentencia grabaría el texto 'Prueba de archivos' en el archivo asignado a
VarArchivo.

Leer datos de un archivo


Para leer los datos de un archivo de acceso secuencial se utilizan las
instrucciones Read y ReadLn.

La instrucción Read lee uno o varios datos del archivo abierto y deja el puntero
en el mismo renglón en el cual leyó los datos, en cambio ReadLn lee los datos
y mueve el puntero al siguiente renglón.

Fin del archivo


Normalmente los archivos de este tipo se leen renglón por renglón hasta llegar
al final del mismo. Cuando se conoce de antemano el tamaño del archivo es
posible utilizar un ciclo FOR, pero es más seguro utilizar la función EOF la
cual es verdadera despues de que el programa lee la última linea de un archivo
de acceso secuencial.

La sintaxis de la función EOF es:

EOF (VaribleArchivo);

Es común realizar la verificación de la función con un ciclo WHILE como en el


ejemplo siguiente:

WHILE NOT EOF(Archivo) DO


BEGIN
ReadLn(Archivo, Datos);
WriteLn(Datos);
END;

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (3 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

Cerrar archivos
Para asegurar que toda la información se grabe en el disco correctamente es
necesario cerrar el archivo antes de que se termine la ejecución del programa,
de lo contrario se corre el riego de que la última información que se haya
accesado no se grabe en su totalidad.

La instrucción para cerrar un archivo es Close, y su sintaxis es:

Close (VaribleArchivo);

Función Eoln
La función Eoln sirve para verificar si el puntero ha llegado al final de la linea.
Regresa el valor verdadero si se encuentra al final. Comunmente se utiliza en
las lecturas caracter por caracter.

Agregar datos a un archivo de texto


Para añadir datos a un archivo de texto son necesarios los siguientes pasos:

Asignar un archivo a una variable con Assign


Agregar los datos con el procedimiento Append
Escribir los datos
Cerrar el archivo

A continuación se ilustra un ejemplo de un programa que agrega una linea a un


archivo de texto:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (4 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

PROGRAM Archivo;
VAR
Texto : TEXT;

BEGIN
Assign (Texto, 'PRUEBA.DAT');
Append(Texto);
WriteLn(Texto, 'Agregando una linea al archivo PRUEBA.DAT');
Close (Texto)
END.

Archivos de acceso directo


Un archivo de acceso directo esta formado por un conjunto de partes
individuales que pertenecen al mismo tipo de datos. Cada uno de los
componentes del archivo es llamado registro.

Cada uno de los componentes de este tipo de archivos es accesible


directamente.

Los archivos de acceso directo son también llamados archivos con tipos o
tipeados.

Estructura del archivo


A diferencia de los archivos secuenciales, los archivos tipeados no estan
compuestos de lineas de caracteres, sino que se acomodan en registros con
estructuras fijas. La longitud de los registros esta determinada por la cantidad
de bytes que se necesitan para almacenar el tipo de datos que contendrá el
registro.

Por ejemplo, si se van a almacenar números enteros en un archivo, cada


registro servirá para un número específico y ocupará 2 bytes, el siguiente
registro utilizará los dos bytes siguientes del archivo y así sucesivamente hasta
completar la cantidad de datos que se vayan a almacenar.

Este tipo de archivos no pueden ser visualizados con la instrucción type del
sistema operativo debido al formato utilizado para guardarlos.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (5 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

Declaración de un archivo
Para declarar un archivo de acceso directo se realiza con las palabras
reservadas FILE OF, su sintaxis es la siguiente:

VariableArchivo : FILE OF TipoElementos;

Esta declaración se realiza en la sección correspondiente a la declaración de las


variables. Ejemplo:

PROGRAM Archivo_Tipeado;
VAR
Archivo : FILE OF Integer;
BEGIN
END.

Normalmente no se desea crear archivos que puedan almacenar un solo tipo de


datos ya que se requeririan varios archivos, por ejemplo para alguna base de
datos: uno para los nombres, otro para apellidos, otro para la edad, etc. Para
evitar este inconveniente es posible usar registros del tipo RECORD, que
permiten grabar en un solo registro un grupo de datos que pueden ser de
diferentes tipos, uno de tipo INTEGER, uno de tipo STRING, etc.

Los registros del tipo record deben ser declarados antes de las variables en una
sección llamada TYPE con el siguiente formato:

TYPE
Nombre_Reg = RECORD
Campo_del_registro_1 : Tipo;
Campo_del_registro_2 : Tipo;
...
Campo_del_registro_n : Tipo;
END;

Donde Nombre_Reg es el nombre del registro que se utilizará,


Campo_del_Registro_x son las variables que estarán contenidas en el registro
y Tipo es el tipo de cada una de las variables del registro.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (6 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

La sección TYPE se escribe antes de la declaración de las variables.

Como ejemplo, si se quiere crear un archivo el que se guarden el nombre,


domicilio, edad y estado civil de un grupo de personas el primer paso a realizar
es crear un registro que contenga todos estos campos:

TYPE
Datos = RECORD
Nombre : String[40];
Domicilio : String[60];
Edad : Integer;
EdoCivil : String[10];
END;

El siguiente paso es declarar un archivo del tipo Datos así como una variable
del mismo tipo de los que se utilizarán en el archivo:

VAR
Archivo : FILE OF Datos;
Persona : Datos;

Asignación de un archivo
Aún cuando se tenga declarado el archivo no es posible grabar nada en él si no
se le asigna un nombre real para guardarlo en el disco. El proceso de dicha
asignación es el mismo que para los archivos de texto:

Assign (Archivo, 'Nombre.ext');

Nombre.txt puede ser una constante, una variable o estar escrita directamente
en el programa. Naturalmente debe cumplir con todas las reglas para nombrar
un archivo.

Abrir archivos
Una vez declarado un archivo ya es posible abrirlo. En caso de querer abrir un
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (7 de 9) [30/09/2003 12:37:50]
Tutorial básico de Turbo Pascal

archivo nuevo se utiliza la instrucción Rewrite, o si el archivo ya existe en el


disco se abre con el procedimiento
Reset.

No existe ninguna diferencia entre la apertura de un archivo de acceso directo


para su lectura o para su escritura.

Si al utilizar el procedimiento Rewrite el archivo asignado ya existía se


eliminará del disco y se creará uno nuevo, por lo mismo se debe tener ciudado
al momento de abrir estos archivos.

Registro actual y tamaño de un archivo


La función FileSize regresa el tamaño de un archivo, o mejor dicho devuelve el
número de registros contenidos en éste.

Al momento de abrir un archivo nuevo la función FileSize regresa el valor de


0, lo que significa que el archivo no tiene datos guardados en él.

Posicionamiento en el interior de un archivo


Cada uno de los registros de un archivo esta referenciado por un número
específico comenzando desde el registro 0 y aumentando de 1 en 1.

La función FilePos devuelve el número de registro actual, su sintaxis es:

FilePos (VariableArchivo)

VariableArchivo es la variable a la cual se asignó un nombre de archivo en el


disco.

Para moverse a un registro determinado se utiliza la función Seek, con la


siguiente sintaxis:

Seek (VariableArchivo, NumRegistro);

Para moverse al final del archivo para agregar un nuevo registro se utiliza este
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (8 de 9) [30/09/2003 12:37:50]
Tutorial básico de Turbo Pascal

mismo comando con el parametro NumRegistro como sigue:

Seek (VariableArchivo, FileSize(VariableArchivo));

Cuando se avanza en un archivo registro por registro se utiliza la función EOF


para determinar si ya se llegó al final del archivo.

Lectura y escritura de archivos


Para la lectura y escritura en un archivo de acceso directo unicamente se
utilizan los procedimientos Read y Write. Despues de cada operacion de
lectura o escritura el puntero se posiciona en el siguiente registro.

Para estar seguros de que se leera el registro que se desea se debe emplear el
procedimiento seek antes de cualquier procedimiento de lectura o escritura.

Cerrar un archivo
Para cerrar los archivos abiertos se procede igual que en uno de acceso
secuencial, utilizando el procedimiento close:

Close (VariableArchivo);

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad8p.html (9 de 9) [30/09/2003 12:37:50]


Tutorial básico de Turbo Pascal

Constantes predefinidas
Modo de pantalla
Colores
Variables predefinidas
CheckBreak
DirectVideo
LastMode
TextAttr
WindMin
WindMax
Procedimientos predefinidos
ClrEol
ClrScr
Delay
DelLine
GotoXY
HighVideo
InsLine
LowVideo
NormVideo
NoSound
Sound
TextBackground
TextColor
TextMode
Window
Funciones predefinidas
KeyPressed
ReadKey
WhereX
WhereY

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (1 de 10) [30/09/2003 12:38:00]


Tutorial básico de Turbo Pascal

Modo de Pantalla
Las constantes definidas de Turbo Pascal para indicar el modo de pantalla que
se utilizará son:

Constante Valor Modo de video


BW40 0 40x25 Blanco y negro en tarjeta de color
CO40 1 40x25 Color
BW80 2 80x25 Blanco y negro en tarjeta de color
CO80 3 80x25 Color
Mono 7 80x25 Monocromático

Colores
Las constantes definidas para los colores son:

Colores para primer plano y fondo: Colores para primer plano:

Constante Valor Color Constante Valor Color


Black 0 Negro Dark gray 8 Gris oscuro
Blue 1 Azul Light Blue 9 Azul claro
Green 2 Verde Light Green 10 Verde claro
Cyan 3 Cyan Light Cyan 11 Cyan claro
Red 4 Rojo Light Red 12 Rojo claro
Magenta 5 Magenta Light Magenta 13 Magenta claro
Brown 6 Marrón Yellow 14 Amarillo
Light Gray 7 Gris claro White 15 Blanco

Parpadeo

Blink 128

La unidad CRT provee un conjunto de variables utilizadas para modificar


aspectos referentes a entradas de teclado, modo de la pantalla, etc. A
continuación se listan las principales con su función específica.
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (2 de 10) [30/09/2003 12:38:00]
Tutorial básico de Turbo Pascal

CheckBreak
Tipo : boolean.

Cuando el contenido de esta variable es True se encuentra activada la


terminación de un programa por medio de las teclas Crtl-Break. Si se cambia su
valor a False se desactiva esta opción.

Su valor por defecto es True.

DirectVideo
Tipo : boolean.

Cuando existen problemas de entrada/salida de texto se debe desactivar esta


variable (guardar en ella el valor false) que inhibe la escritura directa de
caracteres a la memoria de video.

LastMode
Tipo : Word

La variable LastMode contiene el valor del modo de texto actual. Se inicializa


al momento de iniciar el programa y se utiliza comunmente para restaurar el
modo original al momento de terminar el programa.

TextAttr
Tipo : Byte

Usualmente se utiliza para cambiar los atributos de colores en la pantalla, es


más rápido que los procedimientos TextColor y TextBackground que tienen la
misma función.

WindMin
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (3 de 10) [30/09/2003 12:38:00]
Tutorial básico de Turbo Pascal

Tipo : Word; Esta variable contiene las coordenadas de la esquina superior


izquierda de la ventana de texto activa definida por el procedimiento Window.

WindMax
Esta variable contiene las coordenadas de la esquina inferior derecha de la
ventana de texto activa definida por el procedimiento Window.

A continuación se listan algunos de los procedimientos que incluye esta unidad


con una breve descripción de cada uno.

ClrEol
Sintaxis:

ClrEol;

Este procedimiento borra todos los caracteres de la linea actual desde la


posición del cursor hasta el final de la linea. Ejemplo:

PROGRAM Proc_ClrEol;
USES Crt;
VAR x,y : Integer;

BEGIN
FOR x := 1 TO 24 DO
FOR y := 1 TO 80 DO
Write('#');
GotoXY(15,15);
ClrEol;
END.

ClrScr
Sintaxis:

ClrScr;

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (4 de 10) [30/09/2003 12:38:00]


Tutorial básico de Turbo Pascal

Se utiliza para borrar la pantalla completa o la ventana actual y situa el cursor


en la esquina superior izquierda. Ejemplo:

PROGRAM LimpiarPantalla;
USES Crt;
VAR x,y : Integer;
Prb : String;

BEGIN
FOR x := 1 TO 24 DO
FOR y := 1 TO 80 DO
Write('#');
WriteLn('Presione [ENTER] para borrar la pantalla');
ReadLn(Prb);
ClrScr;
WriteLn('Se borró la pantalla');
END.

Delay
Sintaxis:

Delay(Tmp : Word);

Detiene la ejecución del programa durante un tiempo especificado en Tmp en


milisegundos. El intervalo válido es desde 0 hasta 65535, la precisión del
retardo depende de la precisión del reloj interno de la computadora. Ejemplo:

PROGRAM Retardo;
USES Crt;

BEGIN
WriteLn('Inicia retardo de aproximadamente 5 segundos');
Delay(5000);
WriteLn('Fin del retardo');
END.

DelLine
Sintaxis:

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (5 de 10) [30/09/2003 12:38:00]


Tutorial básico de Turbo Pascal

DelLine;
Borra la linea donde se encuentra el cursor y las lineas inferiores suben una
posición. Ejemplo

PROGRAM BorrarLinea;
USES Crt;
VAR x : Integer;
prb : String;
BEGIN
ClrScr;
For x := 1 to 20 DO
WriteLn('Linea número: ', x);
WriteLn('Presione [ENTER] para borrar la linea 6');
GotoXY(0,6);
DelLine;
WriteLn('Linea 6 eliminada');
END.

GotoXY
Sintaxis:

GotoXY(x, y : Byte);

Posiciona el cursor en las coordenadas especificadas por x y y.


El byte x representa la columna partiendo de izquierda a derecha y el byte y
representa la fila partiendo de arriba hacia abajo. Ejemplo:

PROGRAM Posición;
USES Crt;
BEGIN
GotoXY(10,10);
Write('*');
GotoXY(20,20);
Write('*');
END.

HighVideo
Sintaxis:
file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (6 de 10) [30/09/2003 12:38:00]
Tutorial básico de Turbo Pascal

HighVideo;

Activa la pantalla de video de alta intensidad.

InsLine
Sintaxis:

InsLine

Inserta una linea en blanco en la posición actual del cursor.

LowVideo
Sintaxis:

LowVideo

Activa la pantalla de video de baja intensidad.

NormVideo
Sintaxis:

NormVideo;

Restaura los atributos de primer plano y fondo a los colores originales


establecidos cuando arrancó el programa.

NoSound
Sintaxis:

NoSound;

Desactiva el sonido iniciado con el procedimiento Sound.


file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (7 de 10) [30/09/2003 12:38:00]
Tutorial básico de Turbo Pascal

Sound
Sintaxis:

Sound (Frecuencia : Word);

Genera un sonido en la bocina de la computadora a una frecuencia determinada


por el valor de Frecuencia. Para detener el sonido es necesario ejecutar el
procedimiento NoSound.

TextBackground
Sintaxis:

TextBackGround (Color : byte);

Se utiliza para seleccionar el color del fondo de la pantalla. Los valores que
puede utilizar son del 0 al 7, también es posible utilizar las constantes
predefinidas para los colores.

TextColor
Sintaxis:

TextColor (Color : Byte);

El procedimiento TextColor se usa para seleccionar el color del texto en la


pantalla.

TextMode
Sintaxis:

TextMode (Modo : Word);

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (8 de 10) [30/09/2003 12:38:00]


Tutorial básico de Turbo Pascal

Define el modo de video, ésto es, el número de filas y columnas que se podrán
mostrar en pantalla, también si se mostrarán en blanco y negro o en color.

Los modos válidos de pantalla de texto son:

Constante Valor Modo de video


BW40 0 40x25 Blanco y negro en tarjeta de color
CO40 1 40x25 Color
BW80 2 80x25 Blanco y negro en tarjeta de color
CO80 3 80x25 Color
Mono 7 80x25 Monocromático

Window
Sintaxis:

Window (x1, y1, x2, y2 : Byte);

Define las coordenadas de la ventana de texto activa; x1 y y1 son las


coordenadas de la esquina superior izquierda, x2 y y2 son las coordenadas de la
esquina inferior derecha.

Las siguientes son las funciones de la unidad CRT:

KeyPressed
Tipo: Boolean

La función KeyPressed devuelve el valor de True si se pulsó alguna tecla y


false si no se ha presionado ninguna.

ReadKey
Tipo: Char

Esta función lee un caracter del teclado, se utiliza mucho para leer teclas de

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (9 de 10) [30/09/2003 12:38:00]


Tutorial básico de Turbo Pascal

dirección, teclas de control y de funciones.

WhereX
Tipo: Byte

WhereX devuelve el número de la columna donde se encuentra el cursor.

WhereY
Tipo: Byte

La función WhereY devuelve el número de la fila donde se encuentra el cursor


al momento de llamar a la funcioacute;n.

file:///D|/Downloads/Books/Transformar/Pascal%20Turbo%20(Manual%20completo)/unidad9p.html (10 de 10) [30/09/2003 12:38:00]

Você também pode gostar