TUTORIAL TURBO PASCAL
1.- Interfaz gráfica Turbo Pascal 7.0
Turbo pascal en sus versiones 6.0 y 7.0 es un lenguaje de programación
estructurado, dirigido a programadores con equipos que funcionan con el sistema
operativo DOS, de allí que su GUI (Interfaz Grafica de Usuario) este conformada por un
compilado, un simple editor de texto y un sistema de menús. El hecho de que este
diseñado para DOS y no para Windows trae un conjunto de ventajas y desventajas, entre
las ventajas podemos nombrar las siguientes: funciona en cualquier equipo PC, al
trabajar con un editor de texto el programa puede ser escrito en Word, el bloc de notas o
cualquier otro procesador de texto disponible. Entre sus desventajas podemos enumerar
las siguientes: las funciones del botón derecho del mouse están desactivadas (Este
problema fue resuelto en la versión 7.0), la GUI es diferente a la acostumbrada para los
usuarios de Windows, no existen los iconos, ni la acción del doble clic, entre otras. Es
importante acotar que este lenguaje de programación fue desarrollado por
norteamericanos por lo cual su sintaxis esta en el idioma ingles.
Antes de empezar a explicar como desarrollar programas con esta herramienta,
primero es necesario conocer como funcionan los elementos de la misma, para eso
vamos a ver con más detalles cuatro de los menús que conforman el pascal.
Menú File: en este menú se encuentran las funciones encargadas de Abrir, Crear y
Guardar los archivos relacionados a un programa escrito en Pascal, además de las
opciones relacionadas con la impresión de archivos y de la salida de la aplicación.
New: esta opción se encarga de crear una nueva ventana de archivo en el cual se pueda
escribir un nuevo programa.
Open: este cuadro de dialogo permite cargar un archivo de programa existente en un
dispositivo de almacenamiento, como un disquete, disco duro, pendrive, CD, etc. Puede
ser llamado directamente desde el teclado con la tecla de función F3. Como se puede
observar en la siguiente imagen, el dialogo está compuesto por 3 partes Name, Files y
los botones Open, Replace, Cancel y Help.
En el apartado Name, se coloca el nombre del archivo que desea abrir o si no
recuerda el nombre, en el apartado Files UD puede escoger el archivo de la lista. Una
vez que coloque o elija el nombre del archivo el botón Open le permitirá abrir dicho
archivo, el botón Replace le permite remplazar el archivo actual por el archivo que
acaba de seleccionar, el botón Cancel finaliza el dialogo sin que se abra ningún archivo
y por último el botón Help llama la ayuda en línea para este dialogo en ingles.
Save: este cuadro de dialogo permite guardar el archivo de programa actual en un
dispositivo de almacenamiento, como un disquete, disco duro, pendrive, CD, etc. Puede
ser llamado directamente desde el teclado con la tecla de función F2, este cuadro de
dialogo solo aparece si no se ha guardado el archivo la primera vez, si ya ha sido
guardado lo que hace es que almacena el archivo con el mismo nombre y en la misma
ubicación.
Como se puede observar en la siguiente imagen, el dialogo está compuesto por
3 partes Save file as, Files y los botones Ok, Cancel y Help.
.
En el apartado Save file as, se coloca el nombre con el que desea guadrar el
archivo si quiere guardarlo con un nombre existente y no recuerda dicho nombre, en el
apartado Files UD puede escoger el archivo de la lista. Una vez que coloque o elija el
nombre del archivo el botón Ok le permitirá guardar dicho archivo, el botón Cancel
finaliza el dialogo sin que se guarde ningún archivo y por último el botón Help llama la
ayuda en línea para este dialogo en ingles.
Save as: Funciona como la opción Save solo que Save as simpre activa el dialogo Save
File as.
Save all: Si existen varios archivos de programas abiertos al mismo tiempo, esta opción
permite guardarlos a todos en un dispositivo de almacenamiento.
Print: Permite imprimir en la impresora por defecto un listado del programa actual.
Exit: Con esta opción el usuario se sale de la herramienta Turbo Pascal, puede ser
accesada por el usuario a través de la combinación de teclas Alt + X.
Menu Edit: En este menú se encuentran las funciones de edición del procesador de
texto las cuales son rehacer, deshacer, copiar, cortar y pegar.
Undo: Es la opción de deshacer el último cambio.
Redo: Es la opción utilizada para rehacer el último cambio.
Cut: Opción para cortar la línea o palabra seleccionada en el editor de texto.
Copy: Opción para copiar la línea o palabra seleccionada en el editor de texto.
Paste: Opción para pegar la línea o palabra seleccionada en el editor de texto.
Menú Run: Este menú contiene las funciones de ejecución del programa completo y
por partes, para el propósito de este curso solo vamos a trabajar con dos de estas
opciones las cuales son:
Run: Esta opción ejecuta el programa de inicio a fin sin pausas. Se utiliza para trabajar
con la versión final del programa, su atajo es la combinación de teclas Ctrl + F9.
Step over: Esta opción ejecuta el programa línea por línea, se emplea más que todo
cuando se sospecha de un error lógico, su atajo es la tecla F8.
Menú Debug: Este es el menú de depuración, la mayoria de sus opciones son para
usuarios avanzados por lo tanto no son motivo de estudio durante este curso. De este
menú la única opción a utilizar es la opción Breakpoints (su atajo es Ctrl+F8) la cual
sirve para colocar puntos de control en el programa, cuando el compilador consigue un
punto de control detiene la ejecución del programa para que el usuario pueda realizar
una ejecución línea por línea.
2.- Introducción al lenguaje Turbo Pascal.
Pascal es un lenguaje de programación estructurado como ya fue expuesto al
principio, está regido por la filosofía de divide y vencerás. En otras palabras los
problemas deben ser vistos como estructuras que están conformadas por varias partes o
módulos y que al ser resueltos de forma individual pueden integrarse unos con otros
para obtener una solución al problema en cuestión.
Pascal es el lenguaje más empleado para enseñar los principios formales de la
programación estructurada, debido a que esta compuesto por una serie de reglas,
parámetros, procedimientos y comandos refuerzan el desarrollo de programas de forma
clara y ordenada, además de estos beneficios le exige al programador un cierto grado de
atención a los detalles, ya que cualquier error de sintaxis es causa de fallas en el
programa.
2.1.- Tipos de datos utilizados por Turbo Pascal.
Antes de empezar a explicar que es un tipo de dato, se debe tener una noción
aunque sea superficial de lo que es la memoria de un computador. La memoria del
computador se puede comparar con un archivero que esta compuesta por muchas
gavetas cada una de ellas tiene un tamaño variable pero finito, en otras palabra la
memoria puede quedarse sin espacio. Debido a esto el programador le debe indicar al
PASCAL de que tamaño van a ser esas gavetas por medio de los tipos de datos, cada
tipo tiene un tamaño asignado a la memoria, los tipos de datos que existen en PASCAL
están divididos en numéricos y alfanuméricos estos a su vez están divididos en subtipos
a continuación se muestran cada uno de ellos.
Numéricos: con este tipo de datos se pueden realizar operaciones matemáticas, estan
divididas en enteros y reales. Su división y propósito son los siguientes:
Enteros.
Nombre Rango Formato
Integer -32768 a 32767 Entero con signo
Word 0 a 65535 Entero sin signo
ShortInt -127 a 127 Entero corto
Byte 0 a 255 Entero corto sin signo
LongInt -2147483648 a 2147483648 Entero largo con signo
Reales.
Nombre Rango Cifras Significativas
Real 2.9E-39 a 1.7E38 11-12
Single 1.5E-45 a 3.4E38 6-7
Double 5.0E-307 a 1.7E307 15-16
Extended 1.9E493210 a 1.1E493210 19-20
Comp -9.2E18 a 9.2E18 18-19
Alfanuméricos: Son valores que pueden combinar números y letras, con este tipo de
datos no se pueden realizar operaciones matemáticas, solo operaciones de manejo de
caracteres. Estos tipos de datos se dividen en:
Char: Son el tipo de dato carácter, solo pueden representar una letra o un número a la
vez, los números que se emplean en este tipo de datos ya no pueden ser utilizados en
operaciones matemáticas.
String: Son el tipo de dato cadena de caracteres, pueden representar palabras o
conjuntos de números y letras, al igual que Char los números empleados en este tipo de
datos no pueden ser utilizados en operaciones matemáticas.
Boolean: Son un tipo de dato lógico, solo pueden tomar valores TRUE (verdadero) o
FALSE (falso).
2.2.- Estructura de un programa en PASCAL.
Un programa en Pascal esta constituido por una cabecera, las declaraciones y
el cuerpo del programa. En otras palabras necesita de una receta que le permita
desarrollar el programa dicha receta se muestra a continuación:
Cabecera Program Nombre_Programa;
Uses
Libreria1, Libreria2, .....;
Const
Nombre=Valor;
.
.
Type
Declaración de variables tipo usuario
Declaraciones
Var
Nombre:Tipo;
Procedure (param);
Begin
.
End;
Function (param);
Begin
.
End;
Begin
Cuerpo
Programa
End.
Program: Esta sentencia constituye el encabezado del programa, aquí se coloca un
nombre descriptivo del programa (no se debe confundir con el nombre del archivo), de
tal forma que cualquier persona que lea el programa tenga una idea de que trata el
mismo. Para poder escribir el nombre del programa deben de seguirse algunas reglas,
las cuales se aplican también para los nombres de variables y de constantes estas son:
a) Los nombres no deben de empezar con un número.
b) Los nombres no pueden tener acentos, tildes, espacios o cualquier otro carácter
diferente del “_”(subrayado o piso).
c) Los nombres pueden ser escritos en mayúsculas o minúsculas, Pascal las trata
como un mismo nombre.
d) Los nombres no pueden ser repetidos, a menos que pertenezcan a ámbitos de
programa distintos (mas detalles sobre los ámbitos en su unidad respectiva).
Const: Con este apartado inician la sección de declaraciones del programa. Pascal
además de emplear la filosofía de divide y vencerás utiliza la filosofía de Descartes (no
confundir con descartar) pienso luego existo, en otras palabras si no se declaran los
componentes del programa Pascal no puede utilizarlos en un programa, de allí la
importancia de la sección de declaraciones ya que en esta se le indica al pascal con que
materiales va a trabajar. En el caso concreto del Const es el lugar donde se declaran las
constantes(valores que no cambian durante el transcurso del programa) que van a
utilizarse estas pueden ser tanto numéricas como alfanuméricas, las etiquetas y las
palabras reservadas no llevan ; como se puede ver en el siguiente ejemplo:
Program Circulo;
Const
Pi = 3.1416;
Titulo’Area:’;
Type: En este apartado se declaran los tipos de variables definidos por el usuario.
Cuando los tipos básicos(entero, real, carácter, cadena y lógico) no son suficientes para
las necesidades del programa el usuario puede crear sus propios tipos y declararlos en
este lugar. En transcurso de este tutorial se dará una explicación con más detalle de este
apartado.
Var: Esta etiqueta indica el lugar donde se deben declarar las variables(valores que van
a estar cambiando ó variando a lo largo del programa) que van a ser empleadas en el
programa. Es importante entender que solo se va a declarar el tipo de la variable, no a
darle valores a las mismas. Las variables que son del mismo tipo pueden ser declaradas
en la misma línea siempre y cuando estén separadas por coma, si son de tipos diferentes
deben de estar en líneas diferentes. A continuación un ejemplo de declaración de
variables:
Program Circulo;
Const
Pi=3.1416;
Titulo’Area:’;
Var
Radio,Area:Real;
Nombre:String;
Procedure y Function: Anteriormente habíamos expuesto que Pascal trabaja con la
filosofía “divide y vencerás” en términos informáticos a esta filosofía se la conoce como
programación modular. Dependiendo del resultado que devuelva cada modulo se utiliza
el Procedure(si el modulo no necesita devolver un valor) o Function(si el modulo debe
devolver un valor). Más adelante revisaremos en detalle estos subprogramas, por ahora
sírvase el recordatorio de que en esta parte del programa van los procedimientos y las
funciones.
Cuerpo del programa: En este apartado se coloca el programa principal, comienza con
la palabra reservada Begin y termina con la palabra reservada End. Cuando Pascal
encuentra la palabra “End” seguida de “.” este es indicativo del fin del programa,
cualquier línea que se agregue después no será tomada en cuenta. Además de esto estan
las reglas pertinentes al uso del “;” las cuales son:
a) Cada sentencia debe terminar con un punto y coma.
b) Se puede omitir el punto y coma al final si la línea es una etiqueta o si termina
en UNTIL, ELSE o es la línea antes del END final.
c) El ELSE solo lleva punto y coma si es parte de una estructura CASE.
3.- Programación en Turbo Pascal.
Antes de empezar de lleno con la resolución de problemas debemos entender lo
que es un programa como tal. Un programa es un conjunto de instrucciones que
indican como resolver un problema paso por paso. En otras palabras no es más que una
receta para solucionar un problema ni más ni menos, claro esta como estos pasos deben
ser procesados por un computador es necesario que sean claros y que sigan las reglas
del lenguaje de programación que se este empleando. Entre estas reglas se encuentran
por nombrar algunas, el manejo de los datos (declaración de constantes y variables), la
entrada de datos al computador(por teclado, por mouse ,etc) y la salida de los mismos
(por pantalla, por impresora, etc), también se encuentran las reglas de toma de
decisiones (estructuras de control) y de manejo de archivos, entre otras. Esto implica
que para poder obtener resultados con el computador se le debe indicar el camino lógico
que debe de seguir.
3.1.- Entrada y salida de datos.
Para que el Pascal pueda dar una solución a un problema, primero debe de tener
los datos necesarios para poder resolverlo(entradas) y luego de obtener la respuesta
necesita saber a través de que medio va a mostrar los resultados(salidas). Estas
funciones de entrada / salida de datos son manejadas por las palabras reservadas READ
y WRITE (leer y escribir).
3.1.2.- Write y Writeln.
Las sentencias Write(escribir) y Writeln(escribir con salto de línea), sirven
como salida de datos en el lenguaje pascal, bien sea para mostrar texto o datos
almacenados en las variables(en pantalla, archivo o papel). La estructura de esta
sentencia es la siguiente:
Write (‘texto’);
Write (valor);
Write (‘texto’,valor);
Writeln (‘texto’);
Writeln (valor);
Writeln (‘texto’,valor);
Como se puede ver en la estructura, se logran mostrar valores, texto o cualquier
combinación de valores y texto (siempre y cuando estén separados con comas) por
medio de las sentencias Write y Writeln, la única diferencia entre ellas es que una deja
una línea de por medio al mostrar la información (Writeln) y la otra no(Write). Es
importante acotar que cuando se desea mostrar como salida un texto este debe estar
entre comillas como se puede observar en la estructura, mientras que para mostrar
valores almacenados en variables no es necesario utilizar comillas. Pascal es un
lenguaje de programación matemático por lo tanto cuando se muestran números reales,
se muestran en notación científica (ver rangos de tipos reales en el apartado de tipo de
datos), esto puede traer inconvenientes a la hora de mostrar los datos en pantalla para
aplicaciones que no son de carácter científico. Debido a esto existe el formateo de datos,
que no es mas que limitar el número de enteros y decimales expuestos en pantalla la
estructura para este formato es la siguiente:
Write (valor:E:D);
Write (‘texto’,valor:E:D);
Writeln (valor:E:D);
Writeln (‘texto’,valor:E:D);
En donde la E representa el número de enteros que se van a mostrar y la D
representa el número de decimales que aparecerán en pantalla para el valor.
3.1.3.- Read y Readln.
Las instrucciones Read(leer) y Readln(leer con salto de línea) son las
encargadas de almacenar las entradas de datos en las variables respectivas, este es su
único propósito no pueden ser utilizadas para mostrar resultados, solo para pedir datos.
A continuación se muestra la estructura de las sentencias Read y Readln:
Read (Variable);
Read (Variable1,Variable2,..,VariableN);
Readln (Variable1,Variable2,..,VariableN);
Readln (Variable);
Como puede observarse en la estructura, las sentencias Read y Readln puede leer
varios datos a la vez, cuando se utiliza este método se debe introducir cada valor
dejando un espacio de por medio (solo cuando se esta ejecutando el programa, no
cuando se esta escribiendo).
3.2.- Ejemplo de un programa con entrada y salida de datos.
Escribir un programa en pascal que permita sumar dos números y que muestre el
resultado por pantalla.
Cabecera Program Suma_Numero;
Uses
Declaraciones
Crt;
Var
A,B,C:Real;
Begin
Clrscr;
Write(“Introduzca el valor de A:”);
Readln(A);
Cuerpo
Write(“Introduzca el valor de B:”);
Readln(B);
C:=A+B;
Write( “El resultado es:”,C:12:2);
Readln
End.
Este es nuestro primer programa en Turbo Pascal, veámoslo con más detalle:
a) Podemos observar que faltan varias partes de la sección de declaraciones,
esto se debe a que en un programa solo se escriben las secciones que van a
ser utilizadas, en este programa no hay constantes, tipos, procedimientos o
funciones, por lo tanto no es necesario escribir sus apartados en el programa.
b) Lo próximo que podemos ver es el uso de la librería Crt ya que el comando
de borrar pantalla (Clrscr) se encuentra dentro de ella. Hay que recordar que
Pascal solo puede usar comandos y datos que han sido declarados
previamente.
c) Seguido a esto se le indica al computador cuantas variables se van a usar,
que nombre tienen y de que tipo son. Se coloca que las variables son reales
ya que el ejercicio pide que se sume cualquier número no solamente los
enteros, como las tres variables son del mismo tipo se colocan en la misma
línea separados por coma.
d) Una vez terminada las declaraciones, se comienza el programa como tal con
la palabra reservada Begin luego empezamos a observar las instrucciones
que conforman el programa. El comando clrscr para que limpie la pantalla,
luego procedemos a pedir los datos, note que la sentencia Write solo se
utiliza para escribir texto o datos y que la sentencia Readln se utiliza
únicamente para leer las variables. Luego de obtenido los datos se procede a
realizar la suma por medio de la ecuación C:=A+B, luego se utiliza el Write
para mostrar una combinación de texto y variable que nos permite ver el
resultado en pantalla con un formato de máximo 12 números enteros y de 2
decimales. Por último colocamos un Readln sin variable para representar
una pausa y luego termina el programa con la palabra reservada End seguida
de punto.
Al ejecutar este programa el computador le pide al usuario los dos números que va a
sumar y luego le muestra el resultado de la sumatoria. Felicidades ha completado su
primer programa en Pascal.
Ejercicios:
1) Copiar el programa anterior en turbo pascal y ejecutarlo.
2) ¿Qué errores existen en las siguientes declaraciones de variables?
a) x = Integer;
b) c: Real, d:Integer;
c) x,y,z,t,n,v,:Integer;
d) z = 15;
3) Escriba un programa en pascal que intercambie el contenido de dos variables.
4) Escriba un programa en pascal que le pida al usuario la longitud y la anchura de
una habitación y a continuación visualice su superficie con tres cifras decimales.
5) Escribir un programa que expida la factura de compra de un almacén. Los datos
de entrada serán el precio unitario y el número de artículos. El IVA siempre va a
ser del 12% y la factura debe de tener un formato igual al del siguiente ejemplo:
Precio unidad 20.25
Número de artículos 16
Precio neto 324.00
Impuestos 38.88
Total.............................362.88
4.-Operadores Aritméticos:
Operador Función
+ Operador de suma.
- Operador de resta.
* Operador de multiplicación.
/ Operador de división.
Mod Operador de resto entero.
Div Operador de división entera.
- Operador Unario, invierte el signo.
4.1- Funciones predefinidas:
Instrucción Función
Abs(x) Proporciona el valor absoluto de una variable numérica x.
ArcTan(x) Arco tangente de x.
Chr(x) Devuelve el carácter ASCII de un entero entre 0 y 255.
Cos(x) Proporciona el coseno de x.
Exp(x) Exponencial de x.
Frac(x) Parte decimal de x.
Int(x) Parte entera de x.
Ln(x) Logaritmo neperiano de x.
Odd(x) Devuelve true si x es impar y false si es par.
Round(x) Entero más proximo al valor de x.
Sin(x) Seno de x.
Sqr(x) Cuadrado de x.
Sqrt(x) Raiz cuadrada de x.
Trunc(x) Parte entera de x.
4.1.3- Operadores lógicos.
Operador Función
A>B Operador mayor que. A mayor que B.
A<B Operador menor que. A menor que B.
A<=B Operador menor igual que. A menor igual que B.
A>=B Operador mayor igual que. A mayor igual que B.
And Operador lógico Y.
Or Operador lógico O.
5.-Estructuras de control.
Se denominan estructuras de control a aquellas que determinan cuales
instrucciones deben de ejecutarse y el número de veces deben ser ejecutadas. Existen
dos tipos, las estructuras de selección ( alternativas) y las de iteración ( repetitivas).
5.1- Estructuras de selección.
Son aquellas que permiten que el programa tome un curso u otro dependiendo de
si se cumplen las condiciones dadas o no. En otras palabras se toma la decisión de
seguir un camino dependiendo del resultado de una condición. Estas estructuras de
selección están a su vez divididas en dos las cuales son: selección simple (IF-THEN-
ELSE) y selección múltiple (CASE-OF).
5.1.2.- Estructuras de selección simple IF-THEN-ELSE.
Son aquellas que evalúan el resultado de una condición, la traducción al español
de esta estructura es SI-ENTONCES-DE LO CONTRARIO. En otras palabras SI (IF) la
condición se cumple ENTONCES(THEN) pascal va a ejecutar una serie de
instrucciones, DE LO CONTRARIO(ELSE) va a seguir un camino diferente que no
incluye el primer conjunto de instrucciones. La sintaxis de la estructura de selección
simple es la siguiente:
1. IF (condición) Then (instrucción) ELSE (instrucción);
2. IF(condición) Then
Begin
Instrucción1;
Instrucción2;
Instrucción-N;
End
Else
Begin
Instrucción1;
Instrucción2;
Instrucción-N;
End;
3.IF (condición) Then
Instrucción
Else
Instrucción;
Al trabajar con la estructura IF agregamos una regla más a las reglas del punto y
coma la cual dice: la línea que va antes del ELSE no lleva punto y coma.
Ejemplo de un programa con la sentencia IF.
Hacer un programa en Turbo Pascal, que determine si un número es par o impar.
Program Par_Impar;
Uses
Crt;
Var
Numero:Integer;
Begin
Clrscr;
Write(“Introduzca el número a evaluar:”);
Readln(Numero);
IF (Numero MOD 2 =0) Then
Write(‘El número es par.’)
Else
Write(‘El número es impar.’);
Readln;
End.
En este programa se utiliza la estructura IF para tomar la decisión
correspondiente a si el número es par o impar, para lo cual primero se debe representar
de forma matemática a un número par. Por definición un número par es aquel entero que
al ser dividido entre dos da una división exacta (residuo igual a cero). En el apartado de
funciones matemáticas vimos que el MOD devuelve el residuo entero de una división
por lo tanto Si (IF) se divide un número entre dos y su residuo es cero Entonces
(THEN) es un número par, esto esta representado por la expresión IF (Numero MOD 2
=0) THEN. De lo contrario(ELSE) si el número es impar.
Ejercicios.
1) Calcular la sumatoria de dos números pares, en caso de que uno de los números
sea impar mostrar un mensaje que diga “No se puede realizar la suma”.
2) Hacer un programa en pascal que solicite al usuario dos números y que luego
haga lo siguiente:
a) Sumar los números si el primero es menor que el segundo.
b) Restar los números si el segundo es menor que el primero.
c) Multiplicar los números si ambos son iguales.
3) Se desea calcular el salario neto semanal de los trabajadores de una empresa,
deacuerdo a las siguientes normas:
a) Horas semanales trabajadas < 38 a una tasa dada.
b) Horas extras (38 o más) a una tasa de 50% superior a la ordinaria.
c) Impuesto de 0%, si el salario bruto es menor o igual a los 200000bs.
d) Impuesto del 10%, si el salario bruto es mayor a los 200000bs.
4) Hacer un programa en pascal que determine si un año es bisiesto o no. Un año
bisiesto se da cada 4 años, además de esto si un año es múltiplo de mil debe de
ser múltiplo de 400 para poder ser considerado bisiesto.
5.2.-Estructuras de selección múltiple CASE-OF.
Este tipo de estructura se emplea cuando una condición puede tomar más de un
valor ó cuando ofrece más de una salida. En español esta estructura sería en CASO
(CASE) que la condición se DE (OF) hacer. La sintaxis del CASE-OF la podemos ver
a continuación:
CASE (variable o condición) OF
(lista de constantes1):Instrucción;
(lista de constantes2):Begin
Instrucción 1;
Instrucción 2;
.
.
Instrucción N;
End;
(lista de constantes3):Instrucción;
ELSE
Begin
Instrucciones;
End;
END;
Hay que tomar en cuenta que cada vez que una de las condiciones tenga más de
una instrucción se debe colocar su BEGIN y su END respectivo; por otra parte todo
CASE-OF tiene un END que indica el final de la estructura, al igual que las estructuras
de selección simple el apartado ELSE(de lo contrario) es totalmente opcional y afecta a
toda la estructura.
Ejemplo de un programa con la sentencia CASE-OF.
Hacer un programa en Turbo Pascal, que tenga como entrada el ordinal del de un
día laborable de la semana y que de cómo salida el nombre de dicho día. Si el día es no
laborable debe mostrar un mensaje que lo señale como tal.
PROGRAM DIAS;
USES
CRT;
VAR
NUMERO_DIA:INTEGER;
BEGIN
CLRSCR;
WRITE (‘INTRODUZCA EL NÚMERO DEL DÍA:’);
READLN(NUMERO_DIA);
CASE (NUMERO_DIA) OF
1:WRITELN(‘LUNES’);
2:WRITELN(‘MARTES’);
3:WRITELN(‘MIERCOLES’);
4:WRITELN(‘JUEVES’);
5:WRITELN(‘VIERNES’);
6:WRITELN(‘SABADO’);
ELSE
WRITELN(‘EL DOMINGO NO ES LABORABLE’);
END;
READLN;
END.
En este problema se nos indica que debemos dar una respuesta dependiendo del
día de la semana que demos como entrada, lo que quiere decir que hay múltiples
respuestas para una sola condición. Para poder dar una solución eficiente a este
problema se emplea la estructura de decisión múltiple (CASE) que se traduce
literalmente “en caso de”; en este ejercicio la estructura es leería de la siguiente forma:
en caso de que el NUMERO_DIA tome un valor entre 1 y 6 mostrar el día
correspondiente de lo contrario mostrar “el domingo no es laborable”. Debemos tomar
en cuenta que cada constante numérica (valores numéricos de los días) representan los
posibles valores que puede tomar NUMERO_DIA y que el ELSE afecta a toda la
estructura.
Ejercicios.
1) Desarrollar un programa en pascal que muestre un menú con cinco platos de
comida y que al seleccionar alguno devuelva como resultado el precio del
mismo.
2) Hacer un programa en pascal que permita calcular el área de un circulo,
triangulo y rectángulo. El mismo debe de tener un menú desde el cual se pueda
seleccionar la opción correspondiente a cada figura geométrica.
3) Hacer un programa que determine cuando un carácter introducido por el teclado
es una letra mayúscula o minúscula. En caso de que el carácter no sea una letra
mostrar un mensaje que lo indique.
5.3.- Estructuras repetitivas.
Son aquellas estructuras que crean una repetición continua de un conjunto de
instrucciones (bucle) durante el transcurso de un programa. El objetivo de esta
estructura es la de permitir que los procesos de cálculos u operaciones repetitivas se
ejecuten sin necesidad de escribir código adicional, estas estructuras están divididas en
iterativas y condicionales.
5.3.1.-Estructuras iterativas (FOR).
Repite un conjunto de instrucciones un número de veces fijo previamente
establecido, para ello necesita de una variable de control de tipo entera (INTEGER) que
sirve para llevar la cuenta (puede ser progresiva o regresiva) del número de veces que
se ha ejecutado el bucle. La sintaxis de la estructura FOR es la siguiente:
1) FOR VariableControl:=ValorIni TO ValorFin DO
Begin
Instrucciones;
End;
2) FOR VariableControl:=ValorFin DOWNTO ValorIni DO
Begin
Instrucciones;
End;
La traducción literal de la estructura es la siguiente:
1) DESDE VariableControl:=ValorIni HASTA ValorFin HACER
Inicio
Instrucciones;
Fin;
2) DESDE VariableControl:=ValorFin HACIA ATRAS ValorIni HACER
Inicio
Instrucciones;
Fin;
Las instrucciones que están entre el inicio(begin) y el fin(end) son las que van a
repetirse. En Pascal la estructura FOR no permite aumentar el paso de las iteraciones, en
otras palabras los valores que toma la VariableControl solo pueden cambiar en
intervalos de 1.
5.3.2.- Estructuras condicionales.
Estas estructuras también trabajan con bucles pero no dependen de un numero de
ejecuciones fijas sino que dependen de si se cumple o no una condición preestablecida.
Estas a su vez están divididas en las sentencias WHILE (mientras) y REPEAT-UNTIL
(repetir-hasta que).
5.3.2.1.- Sentencia WHILE.
Con esta sentencia el bucle se repite mientras el resultado de la condición sea
verdadera y deja de hacerlo cuando el resultado es falso, dicha condición es evaluada al
principio de la estructura. La sintaxis de la sentencia WHILE es la siguiente:
WHILE (condición) DO
Begin
Instrucciones;
End;
La traducción literal de la sentencia es:
MIENTRAS (condición) HACER
Inicio
Instrucciones;
Fin;
5.3.2.2.- Sentencia REPEAT-UNTIL.
Con esta sentencia el bucle se repite mientras que el resultado de la condición
sea falso y deja de hacerlo cuando el resultado es verdadera, dicha condición es
evaluada al final de la estructura. La sintaxis de la sentencia REPEAT-UNTIL es la
siguiente:
REPEAT
Begin
Instrucciones;
End;
La traducción literal de la sentencia es:
REPETIR
Inicio
Instrucciones;
Fin;
HASTA QUE (condición);