SlideShare una empresa de Scribd logo
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:
Program Nombre_Programa;
Uses
Libreria1, Libreria2, .....;
Const
Nombre=Valor;
.
.
Type
Declaración de variables tipo usuario
Var
Nombre:Tipo;
Procedure (param);
Begin
.
End;
Function (param);
Begin
.
End;
Begin
Programa
End.
Cabecera
Declaraciones
Cuerpo
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.
Declaraciones
Program Suma_Numero;
Uses
Crt;
Var
A,B,C:Real;
Begin
Clrscr;
Write(“Introduzca el valor de A:”);
Readln(A);
Write(“Introduzca el valor de B:”);
Readln(B);
C:=A+B;
Write( “El resultado es:”,C:12:2);
Readln
End.
Cabecera
Cuerpo
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);

Más contenido relacionado

PDF
Diagrama de flujo
PDF
Unidad5. algebra relacional. yama.may.joseluis.j4
DOCX
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
PDF
Simbología de Diagramas de Flujo
PDF
USO DE INFORMES EN ACCESS
PPTX
Estructura de datos presentacion y sesion 1
PPTX
Entorno de desarrollo de visual basic 6.0
PPT
LibreríAs De Java
Diagrama de flujo
Unidad5. algebra relacional. yama.may.joseluis.j4
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Simbología de Diagramas de Flujo
USO DE INFORMES EN ACCESS
Estructura de datos presentacion y sesion 1
Entorno de desarrollo de visual basic 6.0
LibreríAs De Java

La actualidad más candente (20)

PPTX
Herramienta frame en visual basic
DOCX
Expresiones algorítmicas
PDF
Diseño y validacion GUI con java usando Netbeans
PDF
Manual lpp
DOCX
Manual tecnico y manual de usuario
PPTX
3. algoritmos de ordenamiento interno
PDF
Reporte metodos de busqueda y ordenamiento
DOCX
Trabajo de compiladores completo alexandra
PDF
Ejercicios resueltos de c++
PDF
esto es de transformacion del modelo relacional
PDF
Ejemplos de diagramas de flujo y algoritmos (1)
PDF
VISUAL BASIC 6.0
PPTX
Programación Orientada a Objetos - constructores y destructores
PPTX
Qué es excel
DOCX
Ejercicios propuesto 3
PDF
Manual access 2019 (1)
PPTX
Sintaxis del lenguaje c++
PPTX
Modelos del Sistema
DOC
Práctica excel 2016
PDF
INTRODUCCIÓN A PUBLISHER
Herramienta frame en visual basic
Expresiones algorítmicas
Diseño y validacion GUI con java usando Netbeans
Manual lpp
Manual tecnico y manual de usuario
3. algoritmos de ordenamiento interno
Reporte metodos de busqueda y ordenamiento
Trabajo de compiladores completo alexandra
Ejercicios resueltos de c++
esto es de transformacion del modelo relacional
Ejemplos de diagramas de flujo y algoritmos (1)
VISUAL BASIC 6.0
Programación Orientada a Objetos - constructores y destructores
Qué es excel
Ejercicios propuesto 3
Manual access 2019 (1)
Sintaxis del lenguaje c++
Modelos del Sistema
Práctica excel 2016
INTRODUCCIÓN A PUBLISHER
Publicidad

Similar a Turbo Pascal. Estructuras repetitivas. (20)

DOCX
Urso de pascal por nacho cabanes
PPT
Int. programacion
PDF
Tutorial de pascal
DOCX
3ra Evaluación de Programación.docx
PPTX
Presentación1
PPT
Pascal
DOCX
Turbo pascal
PPT
Pascal
PPTX
PDF
Grupo 6 turbopascal apesteguia (1)
DOC
Estructura De Un Programa
PDF
4035426 ejercicios-resueltos-en-pascal
PDF
ejercicios-resueltos-en-pascal
PDF
[Ebook] super manual de a lgoritmia
PPTX
Introduccion a la programacion
DOCX
Turbo pascal 7 guia principal
PDF
Pascal [modo de compatibilidad]
DOCX
Turbo pascal
PPTX
Introduccion a la programacion
Urso de pascal por nacho cabanes
Int. programacion
Tutorial de pascal
3ra Evaluación de Programación.docx
Presentación1
Pascal
Turbo pascal
Pascal
Grupo 6 turbopascal apesteguia (1)
Estructura De Un Programa
4035426 ejercicios-resueltos-en-pascal
ejercicios-resueltos-en-pascal
[Ebook] super manual de a lgoritmia
Introduccion a la programacion
Turbo pascal 7 guia principal
Pascal [modo de compatibilidad]
Turbo pascal
Introduccion a la programacion
Publicidad

Más de SistemadeEstudiosMed (20)

PDF
Metodologia Aprendizaje Multicanal - ADI22.pdf
PDF
DE-04-COMPRESORES-2022.pdf
PDF
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
PDF
DE-02-FLUJO DE FLUIDOS-2022.pdf
PDF
DE-01-INTRODUCCION-2022.pdf
PPT
Clase 3 Correlación.ppt
PPT
Clase 2 Medidas Estadisticas.ppt
PPTX
Clase 1 Estadistica Generalidades.pptx
PDF
nociones básicas de la comunicación.pdf
PDF
¿Cómo elaborar un Mapa Mental?
PDF
Unidad 1 Planificación Docente
PPTX
hablemos_pp2_inf.pptx
PPTX
UNIDAD 3 FASE METODOLOGICA.pptx
PPT
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
PPT
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
PDF
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
PDF
unidad quirurgica.pdf
PDF
Cuidados preoperatorios.pdf
PDF
Cirugía..pdf
PDF
Cirugía Ambulatoria2.pdf
Metodologia Aprendizaje Multicanal - ADI22.pdf
DE-04-COMPRESORES-2022.pdf
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
DE-02-FLUJO DE FLUIDOS-2022.pdf
DE-01-INTRODUCCION-2022.pdf
Clase 3 Correlación.ppt
Clase 2 Medidas Estadisticas.ppt
Clase 1 Estadistica Generalidades.pptx
nociones básicas de la comunicación.pdf
¿Cómo elaborar un Mapa Mental?
Unidad 1 Planificación Docente
hablemos_pp2_inf.pptx
UNIDAD 3 FASE METODOLOGICA.pptx
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
unidad quirurgica.pdf
Cuidados preoperatorios.pdf
Cirugía..pdf
Cirugía Ambulatoria2.pdf

Último (20)

PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PDF
Durabilidad del concreto en zonas costeras
PDF
Informe Estudio Final Apagon del 25 de febrero
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PDF
Electricidad-Estatica-Peligros-Prevencion.pdf
PDF
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PDF
Primera formulación de cargos de la SEC en contra del CEN
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PDF
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
357161027-seguridad-industrial-diapositivas-ppt.ppt
Durabilidad del concreto en zonas costeras
Informe Estudio Final Apagon del 25 de febrero
GEOLOGIA, principios , fundamentos y conceptos
Electricidad-Estatica-Peligros-Prevencion.pdf
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Primera formulación de cargos de la SEC en contra del CEN
Perfilaje de Pozos _20250624_222013_0000.pdf
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
S15 Protección de redes electricas 2025-1_removed.pdf
Sustancias Peligrosas de empresas para su correcto manejo
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...

Turbo Pascal. Estructuras repetitivas.

  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. . 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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:
  • 10. 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.
  • 11. 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: Program Nombre_Programa; Uses Libreria1, Libreria2, .....; Const Nombre=Valor; . . Type Declaración de variables tipo usuario Var Nombre:Tipo; Procedure (param); Begin . End; Function (param); Begin . End; Begin Programa End. Cabecera Declaraciones Cuerpo 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:
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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:
  • 16. 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.
  • 17. 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. Declaraciones Program Suma_Numero; Uses Crt; Var A,B,C:Real; Begin Clrscr; Write(“Introduzca el valor de A:”); Readln(A); Write(“Introduzca el valor de B:”); Readln(B); C:=A+B; Write( “El resultado es:”,C:12:2); Readln End. Cabecera Cuerpo
  • 18. 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
  • 19. 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
  • 20. 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.
  • 21. 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
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. 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.
  • 28. 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;
  • 29. 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;
  • 30. 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);