el lenguaje de turbo pascal
TRANSCRIPT
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 1/40
El lenguaje de Turbo Pascal
Palabras reservadas
Identificadores Tipos de datos
Variables y constantes
ComentariosLa estructura de los programas
Estructura de los programas
Sentencia PROGRAMDeclaración de unidades
Declaración de constantes, tipos y variables
Programa principalEjecució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ónEntrada y salida de datos
Salida de datos a la pantallaEntrada de datos desde teclado
Tipos de datos
Tipos enterosTipos reales
Tipos caracter
Tipos cadenas
Tipos lógicos
Palabras reservadas
Para poder programar en cualquier lenguaje es necesario conocer los códigos mediante loscuales 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. 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
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 2/40
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 (siguientetópico) ya que cada una de ellas tiene una función definida en TurboPascal.
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 dellenguaje tales como variables, procedimientos, funciones, etc. Un identificador es una secuencia de 1 a 127 caracteres, que inicia conuna letra, no tienen espacios ni símbolos: &, !, *, etc. y no es alguna
palabra reservada. Para el Turbo Pascal no existen diferencias entre mayúsculas yminúsculas, así que a un identificador denominado "valor" se le puedereferir como "VALOR" o "VaLoR". Todo identificador en Pascal debe ser definido previamente a suutilizació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.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 3/40
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 fijosdurante todo el proceso. Un ejemplo de una variable es cuando vamos a sumar dos números queserán introducidos por el usuario del programa, éste puede introducirdos valores cualesquiera y no sería nada útil restringirlo a dos valorespredefinidos, así que dejamos que use los valores que el necesite sumar.Ahora, si nuestro programa de operaciones matemáticas va a utilizar elvalor de PI para algunos cálculos podemos definir un identificador PI conel valor de 3.1415926 constante, de tal forma que PI no pueda cambiarde valor, ahora en lugar de escribir todo el número cada vez que senecesite en nuestro programa, solo tenemos que escribir PI.
Las variables y constantes pueden ser de todos los tipos vistosanteriormente: 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óndel programa y es de enorme importancia al momento de crearlo,modificarlo o mantenerlo.
Existen dos formas de colocar comentarios en un programa de TurboPascal, 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
La cabecera del programa unicamente lleva el nombre del programa. Enla sección de declaraciones se le indica al compilador todos losidentificadores y unidades que se utilizarán durante la ejecución delprograma. En la sección del programa se escribe el código deinstrucciones que se llevarán a cabo.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 4/40
Sentencia PROGRAM
La sentencia PROGRAM es la declaración del nombre del programa. Consta de tres partes: la palabra reservada PROGRAM, a continuación unidentificador 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 sudeclaración.
La palabra reservada USES cumple el propósito de declarar las unidadesen 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 poruna coma. Al final de todas las unidades declaradas se deberá colocarun punto y coma ";".
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 querecibirá 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 porrenglón o varias en un solo renglón. Cuando se hace ésto, la palabraCONST solo se pone una sola vez como cabecera y a continuación todaslas 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 queen lugar de la palabra CONS utilizamos la palabra VAR, y en lugar de "=
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 5/40
valor;", utilizamos : tipo , sustituyendo "tipo" por alguna clase válida dedatos en Turbo Pascal. Ejemplo:
VAR Num_entero : Integer;
Nombre : String;
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 terminacon la palabra END., esta última con un punto al final. Cada linea de código, enunciado, sentencia o instrucción completa quese escriba deberá terminar con un punto y coma ";". Solo se omitirá el punto y coma cuando se utiliza la palabra reservadaELSE. 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 declaranlas variables y constantes (aplicable solo al Turbo Pascal), es decir,pueden declararse primero las variables y luego las constantes yviceversa:
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);
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 6/40
{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], yluego 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 desarrollode Turbo Pascal es necesario compilar el programa al disco. Para hacer esto es necesario activar la opción Destination a Disk, estose hace entrando al menú Compile, se selecciona la opción Destinationy se presiona [Enter], de esta forma se cambia el destino de compilaciónde memoria a disco o viceversa (Dependiendo de la opción seleccionadaactualmente).
Una vez compilado un programa en el disco es posible ejecutarlodirectamente 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 lomismo, igualarla a algún valor determinado. El símbolo utilizado para la operación es los dos puntos seguidos por unsigno de igual := , a la izquierda de dicho símbolo se coloca elidentificador 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 elprimer 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}
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 7/40
Es indispensable para todo programa que cuente con la capacidad demanejar entradas y salidas de información, ya que sin estas capacidadesserí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);
Donde los identificadores son aquellos que contienen la información quese desea mandar a la pantalla. Es posible utilizar varios de ellos por cadainstrucción Write o WriteLn, unicamente se separan unos de otros porcomas ",". Ejemplo:
Write (Nombre, ApellidoP, ApellidoM); Esta linea de código desplegará consecutivamente los contenidos de losidentificadores Nombre, ApellidoP y ApellidoM. En caso de que lavariable 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 siguienteestructura:
Write (Nombre);
Write (ApellidoP);
Write (ApellidoM);
Si en lugar de utilizar la instrucción Write hacemos uso de WriteLn con la misma sintaxisdel 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 alfinal del dato escrito.
Entrada de datos desde teclado
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);
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 8/40
El identificador puede ser cualquier variable definida previamente, NOpuede ser una constante. Puede ser también un conjunto de variables,separadas entre comas, en este caso se guardara el primer valor dadoantes del [Enter] en el primer identificador proporcionado, luego elsegundo y así sucesivamente hasta el último identificador.
La diferencia en el uso de la instrucción Read con respecto a ReadLn esque en la primera, si se le dan mas datos de los que se introducirán seguardan en un buffer y se usarán en la siguiente instrucción Read oReadLn del programa, en cambio ReadLn ignora todo dato posterior alos que esten definidos en la instrucción. En caso de que se le indique a Read o ReadLn que lea un tipo específicode valor, y se le proporcione otro diferente se generará un error y sedetendrá la ejecución del programa.
Tipos de datos
Un programa debe ser capaz de manejar diferentes tipo de datos, como pueden ser númerosenteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de toda estainformació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 ymenor 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 aceptaInteger -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 unnú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
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 9/40
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.7E38Single 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 cadalado del punto decimal así sea éste un cero. Como ejemplo, el número 5debe 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 delas 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 paramultiplicarlo 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 suselementos válidos siguen una secuencia ordenada de valoresindividuales. La secuencia de caracteres para este tipo corresponden alnú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 serrepresentada como #65, el retorno de carro, o enter, se representacomo #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';
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 10/40
WriteLn (Nombre);
END.
Este programa guarda la cadena 'Ernesto Chávez' en la variable definida como tipo string, yla 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 utilizandoinmediatamente despues del nombre de la misma la posición delcaracter 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 elfalso por False; también se representan por 1 y por 0 respectivamente. El tipo está definido como Boolean. Los datos lógicos tienen una enorme aplicación en la evaluación deciertos procesos, así como en el control de flujo de los programas.
Programación en Pascal
Parte IIOperaciones básicas
Operadores DIV y MOD (Enteros)
Prioridad de operadores
Constantes variablesUso de las constantes variables
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 11/40
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 losoperandos.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á laoperació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óndependerá del tipo de datos usados como operandos. Por ejemplo, lasuma 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 número real, así
que para dividir dos enteros, y obtener el resultado como entero, Turbo Pascal ofrece eloperador 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 divisorentero := dividendo MOD divisor
El siguiente programa es un ejemplo del uso de los operadoresaritmé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);
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 12/40
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:
*, /, 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 elcontenido 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 laoperació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 alresultado 7.
Uso de las constantes variables
Cuando se declaran las variables en Turbo Pascal no se inicializan con algún valor enespecial, é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 seguarde al iniciar el programa.
Estas variables inicializadas son llamadas constantes variables, ya quese declaran en la sección de constantes, pero es posible cambiar su
valor.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 13/40
La sintaxis para su declaración es la siguiente:Identificador : tipo_de_datos = valor;
Ejemplo:PROGRAM Constantes_Variables;
CONSTValor_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.
Programación en PascalParte III
Sentencias compuestasSentencias compuestas Sentencias repetitivas
Ciclos FOR Ciclos WHILE
Ciclos REPEAT-UNTILBifurcaciones condicionalesIF...THEN...ELSEIF anidadosCASEBifurcaciones incondicionales
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 14/40
GOTO
HALT
Sentencias compuestas
Las sentencias compuestas son grupos de sentencias, separadas cada una por un punto ycoma ";" que son tratadas como una sola sentencia. Para identificar una sentencia compuesta de un grupo sucesivo desentencias se encierran entre las palabras reservadas BEGIN y END.Uno de los ejemplos más claros de una sentencia compuesta es elcuerpo de un programa principal en Turbo Pascal, el lenguaje toma todolo que existe entre estas dos sentencias como un solo elemento aejecutarse 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 ENDpuede ser suprimido sin afectar a la compilación. En ocasiones esnecesario repetir un determinado número de veces la ejecución de unasentencia, ya sea sencilla o compuesta, para realizar esta tarea TurboPascal cuenta con instrucciones específicas para el tipo de repeticiónque 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 valorinicial hasta un valor final ejecutando en cada incremento la sentenciaque 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 elprimer valor que tendrá dicha variable y fin es el valor hasta el cual seincrementará 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. Lavariable utilizada es "Numero".
PROGRAM Ciclo_FOR;
VAR
Numero : Integer;
BEGIN
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 15/40
FOR Numero := 1 to 50 DO
WriteLn(Numero);
END.
Una de las limitaciones de los ciclos FOR es que una vez iniciado el ciclose 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 variableen lugar de incrementarse se decremente. Para ésto cambiamos lapalabra TO por DOWNTO, y colocamos el valor mayor a la izquierda y elmenor 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 unacondició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ónDonde condición es la condición que se evaluará, mientras ésta seaverdadera 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 cicloWHILE 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é elvalor que no cumplió con la condición establecida en el ciclo WHILE.
Ciclos REPEAT-UNTIL
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 16/40
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 dedesición con base en las variables o eventos definidos por el
programador, para que el programa sea aplicable en un entorno másgeneralizado 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 serverdadera se ejecutará la sentencia dada como instrucción, en caso deque 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
BEGINIF contador > 10 THEN WriteLn(Contador) ELSE WriteLn('*');
END;
END.
En este pequeño programa la variable Contador se incrementará desde1 hasta 50, la sentencia condicional IF verificará si es verdad queContador es mayor a 10, de ser así se escribirá en pantalla el valor de lavariable, de lo contrario se escribira en la pantalla un caracter "*". Como
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 17/40
el contador inicia desde 1, tenemos que se imprimiran 10 asteriscosantres del primer número, que será el 11, valor que si cumple lacondición "Contador > 10" (la hace verdadera). La sección ELSE con su correspondiente sentencia son opcionales ypueden 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 unadentro de otra. Ejemplo:
IF Numero > 5 THEN
BEGIN
IF Numero < 10 THEN Opcion := Numero;IF Numero < 30 THEN Opcion2 := Numero;
END;
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
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 18/40
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 laprogramació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 noson otra cosa que el identificador que marcará el lugar a donde sedirigirá el flujo del programa al momento de usar el GOTO. Ladeclaración de etiquetas se hace antes que la de constantes y variables,la palabra reservada para su declaración es LABEL. El nombre de laetiqueta es un nombre de un identificador como cualquier otro, pero alutilizarse 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;
BEGINWriteLn('Primera linea delprograma');
WriteLn('Terminará la ejecución delprograma');HALTWriteLn('');END.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 19/40
Programación en Pascal
Parte IV
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 PascalHALT 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 unareferencia al procedimiento. Por ejemplo, es muy común que se quiera visualizar un títulodeterminado varias veces en un programa, para evitar teclear ese título
en nuestro programa fuente todas las veces que sea necesario creamosun 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 dedicho procedimiento. Para poder ejecutar un procedimiento es necesario declararlo en elprograma que se este utilizando.
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 yconstantes, antes del cuerpo del programa principal. La palabra reservada para sudeclaració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;
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 20/40
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
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';
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 21/40
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: PROGRAM Variables_2;
VAR
Saludo : String;
PROCEDURE Mensaje;
VAR
Saludo : String;
BEGINSaludo := '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 losmismos 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 ydel 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 utilizarcomo tales otras variables o constantes, siempre y cuando sean delmismo tipo que los declarados. Ejemplo:
Ejemplo(1, 2, 'Hola', 'Adios');
Ejemplo de un programa con procedimiento que utiliza un parámetro. PROGRAM Parametros;
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 22/40
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 seejecutan 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 sentencianormal (sencilla o compuesta), normalmente terminando con laigualación de la 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;
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 23/40
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.
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 teclear:
Inc(Variable); El procedimiento DEC decrementa en 1 el valor de cualquier variable detipo entero que se le indique, se usa igual que INC:
DEC (Variable);
Programación en Pascal
Parte VFunciones estándar de Turbo Pascal
Truncamiento y redondeo
Exponenciales y logaritmicasAritméticas
Trigonométricas
Números aleatorios
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 24/40
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, elresultado siempre es real aunque se utilice un número de tipo enterocomo 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 logaritmonatural de x. El resultado en ambos siempre es del tipo real. Es posible crear una función con base en estas dos para calcular elresultado de un número x elevado a una potencia n, la cual nos quedaríaasí:
FUNCTION Potencia(x,n:Real):Real;
BEGIN
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 25/40
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;
BEGINPotencia := 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. 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 comovalor 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;BEGINCot := Cos(x) / Sin(x)END;
FUNCTION Sec(x : Real) :Real;BEGINSec := 1 / Cos(x)
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 26/40
END;
FUNCTION Csc(x : Real) :Real;
BEGINCsc := 1 / Sin(x)END;
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 realcomprendido entre 0 y 1, en cambio la función Random (x) genera unentero aleatorio entre 0 y x.
Sin embargo el uso de la función Random es en ocasiones insuficientepor si sola para la generación de valores aleatorios ya que los númerosson realmente pseudoaleatorios, y cada vez que se ejecute el programase obtendrían los mismos valores. Para evitar esto debemos utilizar entodo programa que utilice valores aleatorios el procedimientoRandomize, que inicializa el generador de números aleatorios, en otraspalabras, asegura que los números que obtendrá serán diferentes cadavez que se ejecute el programa. Es recomendable usar este procedimiento antes de cada función randomdel programa. Ejemplo de un programa generador de números aleatorios:
PROGRAM Nums_Aleatorios;VAR
x : Integer;
BEGINRandomizeWriteLn('Lista de númerosaleatorios');For x := 1 to 20 doWriteLn(Random);END.
Parte VI
Operaciones básicas con cadenas
Comparación de cadenas
Manejo de los elementos de la cadenaUnión de cadenas
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 27/40
Operador +
Función Concat
Procedimientos y funciones para el manejo de cadenasPos
Copy
InsertDelete
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énes 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; estascomparaciones 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' 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 ovacía. Se recomienda ampliamente inicializar todos los valores de lascadenas a cadenas nulas al inicio del programa, ya que podrían contenerdatos 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 variableCalle 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}
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 28/40
WriteLn(Caracter) END.
Para conocer la longitud de una cadena utilizamos la función Length, lalongitud es la cantidad de caracteres que contiene la cadena en unmomento determinado. Su sintaxis es:
Length (cadena);La función regresa un valor entero.
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 lacadena almacenada en memoria, en este caso específico 18.
En ocasiones es necesario combinar dos o más cadenas de caracteresen 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 quela 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 lavariable, a la cual se asignará dicha suma, puede manejar. Ejemplo:
Cadena := Concat (Cad1, cad2, cad3);
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 cadenadonde se buscará la primera:
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 29/40
Pos (Cadena1, Cadena2);Cuando encuentra la cadena la función devuelve su posición inicial, encaso 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 caracteresque se extraerán. Los valores de Inicio y Cantidad deben ser de tipo entero. Ejemplo:
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óndeterminada. Sintaxis:
Insert (Cadena1, Cadena2, Posición) Donde Cadena1 es la que se insertará, Cadena2 es donde se insertará yPosición es el lugar donde se insertará. El parámetro Posición debe serde 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 contieneun 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.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 30/40
Esto es más fácil de entender si consideramos que no es lo mismo elvalor 75 y el valor '75', en el primer caso es un número mientras que enel segundo es un par de caracteres ASCII. Para lograr estos cambios de tipo en Turbo Pascal utilizamos losprocedimientos 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 lasreglas 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 dondese 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 dondeocurrio el error.
Parte VII
Concepto de unidad
Concepto de unidadLa declaración USES
Creación de unidades
Estructura de las unidadesCreació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 programaque las llama para poder realizar su función.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 31/40
Turbo Pascal incorpora algunas unidades que contienen una grancantidad de rutinas integradas, pero para hacer uso de ellas esnecesario 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:
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;
InterfazEsta 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ónLa sección de implementación es exclusiva para la unidad que se está creando, 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
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 32/40
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 citadasanteriormente. 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);
IMPLEMENTATIONUSES Crt;VAR C : Integer;
PROCEDURE Centrar(Cad1 : String;renglon : Integer);BEGIN
C := (80 - Length(Cad1)) DIV 2GotoXY (C,renglon);Write(Cad1);END;
BEGINEND.
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 amemoria, de lo contrario la unidad unicamente se podrá utilizar duranteesa sesión y no en las sesiones posteriores porque se eliminará de lamemoria 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.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 33/40
Uso de las unidades
Una vez compilada una unidad se puede incorporar al programaagregando la sentencia USES de la que se había hablado al principio, yadeclaradas las unidades que se utilizarán se puede hacer uso de todos
los procedimientos y funciones incluidas como si estuvieran escritas enel mismo programa.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 34/40
Constantes predefinidasModo de pantallaColoresVariables predefinidasCheckBreakDirectVideoLastModeTextAttr WindMin
WindMaxProcedimientos predefinidosClrEolClrScr DelayDelLineGotoXYHighVideoInsLineLowVideoNormVideo
NoSoundSoundTextBackgroundTextColor TextModeWindowFunciones predefinidasKeyPressedReadKeyWhereXWhereY
Modo de Pantalla
Las constantes definidas de Turbo Pascal para indicar el modo de pantalla que seutilizará son:
Constante Valor Modo de video
BW40 0 40x25 Blanco y negro en tarjeta de color
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 35/40
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:
Constante Valor Color
Black 0 Negro
Blue 1 Azul
Green 2 Verde
Cyan 3 Cyan
Red 4 Rojo
Magenta 5 Magenta
Brown 6 Marrón
Light Gray 7 Gris claro
Colores para primer plano:
Constante Valor Color
Dark gray 8 Gris oscuro
Light Blue 9 Azul claro
Light Green 10 Verde claro
Light Cyan 11 Cyan claro
Light Red 12 Rojo claro
Light Magenta 13 Magenta claro
Yellow 14 Amarillo
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 listanlas principales con su función específica.
CheckBreak
Tipo : boolean.Cuando el contenido de esta variable es True se encuentra activada la terminaciónde 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 caracteresa la memoria de video.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 36/40
LastMode
Tipo : WordLa variable LastMode contiene el valor del modo de texto actual. Se inicializa almomento de iniciar el programa y se utiliza comunmente para restaurar el modo
original al momento de terminar el programa.
TextAttr
Tipo : ByteUsualmente se utiliza para cambiar los atributos de colores en la pantalla, es másrápido que los procedimientos TextColor y TextBackground que tienen la misma
función.
WindMin
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 laventana de texto activa definida por el procedimiento Window.
A continuación se listan algunos de los procedimientos que incluye esta unidadcon una breve descripción de cada uno.
ClrEol
Sintaxis:ClrEol;
Este procedimiento borra todos los caracteres de la linea actual desde la posicióndel cursor hasta el final de la linea. Ejemplo:
PROGRAM Proc_ClrEol;USES Crt;VAR x,y : Integer;
BEGINFOR x := 1 TO 24 DOFOR y := 1 TO 80 DOWrite('#');GotoXY(15,15);ClrEol;END.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 37/40
ClrScr
Sintaxis:ClrScr;
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;
BEGINFOR x := 1 TO 24 DOFOR y := 1 TO 80 DOWrite('#');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 retardodepende de la precisión del reloj interno de la computadora. Ejemplo:
PROGRAM Retardo;USES Crt;
BEGINWriteLn('Inicia retardo de aproximadamente 5 segundos');Delay(5000);WriteLn('Fin del retardo');END.
DelLine
Sintaxis: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;
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 38/40
prb : String;BEGINClrScr;For x := 1 to 20 DOWriteLn('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 yrepresenta la fila partiendo de arriba hacia abajo. Ejemplo:
PROGRAM Posición;USES Crt;BEGINGotoXY(10,10);Write('*');GotoXY(20,20);Write('*');END.
HighVideo
Sintaxis: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.
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 39/40
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.
Sound
Sintaxis:Sound (Frecuencia : Word);
Genera un sonido en la bocina de la computadora a una frecuencia determinadapor 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 puedeutilizar son del 0 al 7, también es posible utilizar las constantes predefinidas paralos colores.
TextColor
Sintaxis:TextColor (Color : Byte);
El procedimiento TextColor se usa para seleccionar el color del texto en lapantalla.
TextMode
Sintaxis:TextMode (Modo : Word);
Define el modo de video, ésto es, el número de filas y columnas que se podránmostrar en pantalla, también si se mostrarán en blanco y negro o en color.
Los modos válidos de pantalla de texto son:
5/8/2018 El Lenguaje de Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/el-lenguaje-de-turbo-pascal 40/40
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 coordenadasde 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: BooleanLa 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
dirección, teclas de control y de funciones.
WhereX
Tipo: ByteWhereX devuelve el número de la columna donde se encuentra el cursor.
WhereY
Tipo: ByteLa función WhereY devuelve el número de la fila donde se encuentra el cursor al
momento de llamar a la funcioacute;n.