Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN:
Pascal es un lenguaje de alto nivel y de propósito general (es aplicable a un gran número de
aplicaciones diversas) desarrollado por el profesor suizo Niklaus Wirth como un lenguaje
para enseñar la programación con un método disciplinado y sistemático. Wirth trató de
eliminar las inconsistencias de otros lenguajes de programación de su época y además que
sirviera para enseñar las técnicas de programación a sus alumnos.
Una versión preliminar del lenguaje apareció en 1968 y a finales de 1970 apareció el
primero compilador totalmente completo.
Características principales
Turbo Pascal
Fue lanzado por la firma Borland International en 1983 a modo experimental. Fue todo un
éxito, pues además de funcionar, compilaba y corría los programas más rápido.
Las versiones han evolucionado de la 1.0 hasta la 7.0 que cuenta con una biblioteca de
objetos denominada Turbo Visión.
Concepto de dato
Los diferentes objetos de información con los que trabaja un programa en Pascal se
conocen como datos. Todos los datos tienen un tipo asociado con ellos. Pueden ser de tipo
carácter, entero, un número real, etc.
Turbo Pascal dispone de cinco tipos predefinidos (no necesitan una nueva definición de
parte del programador pues cada tipo tiene un límite) que permiten representar valores
enteros.
Si se asigna un valor fuera del límite de cada tipo, producirá un mensaje de error:
Error 76: Constant out of range
Byte: Son los datos comprendidos entre 0 y 255.
Integer: Enteros que están entre -32.768 y 32.767.
Longint: A partir de la versión 4.0 se amplía el rango de los enteros. Van desde -2.147,483.647 hasta
2.147,483.647.
Shortint: Son datos enteros comprendidos entre -128 y 127. Son utilizados cuando se debe trabajar con
valores pequeños y se desea economizar memoria. Ocupan 1 byte de memoria.
Word: Se utiliza cuando se desea representar únicamente valores positivos. Ocupan dos bytes de memoria y
van de 0 a 65.535.
IDENTIFICADORES Y EXPRESIONES
Identificadores
Los caracteres permitidos después del primer carácter son letras, dígitos y el carácter de
subrayado ( _ ).
No se puede utilizar una palabra reservada como identificador. Las palabras reservadas son
aquellos términos que tienen un significado especial para Pascal y no se pueden utilizar
para otros propósitos.
Algunas palabras reservadas son: absolute, and, array, begin, const, div, do, downto, else,
if, in,label,mod,not,of, packed, procedure, record, set, shr, then,to, unit, uses, var, while,
xor.
Expresiones
2º +, -
Regla asociativa izquierda. Los operadores en una misma expresión o subexpresión con
igual nivel de prioridad ( *, / ) se evalúan de izquierda a derecha.
Ejemplos:
4 + 10
14
46 div 5
Práctica
8 * 5 * (7+2 - (4 + 4)) R/ 40
(1 + 6) * 5 div 7 mod 4 + 1 R/ 2
3 + 4 - 14 /2 R/ 0
2 * (2 + 6 * 4) R/ 52
a - (b + c div d) + e * f
CONCEPTO DE SENTENCIA
Las sentencias son pasos que describen las acciones algorítmicas que pueden ser
ejecutadas. Se clasifican según su operatividad en ejecutables y no ejecutables. Las
ejecutables son aquellas que especifican operaciones de cálculos aritméticos y
entradas/salidas de datos y no ejecutables son las que no realizan ninguna acción concreta,
sino que ayudan a la legibilidad el programa sin afectar su ejecución. Las sentencias
ejecutables son aquellas que aparecen en el cuerpo del programa luego de la palabra begin.
Program Nombre;
Uses
Crt,Printer;
Var
Cedula: String[16];
Apellido1: String[15];
Apellido2: String[15];
Nombre: String[20];
Edad: Integer; Begin
Clrscr;
Write (`Digite la cédula: `);
Readln (Cedula);
Write (`Digite el primer apellido: ´);
Readln (Apellido1);
Write (`Digite el segundo apellido: `);
Readln (Apellido2);
Write (`Digite el nombre: `);
Readln (Nombre);
Write (`Digite la edad: `);
Readln (Edad);
Write (`El empleado se llama `,Apellido1,´ `,Apellido2,´ `,Nombre,´ `,´y tiene `,Edad,
` `,´años´);
End.
Sentencias simples
Es una sentencia que no contiene ninguna otra sentencia. Se clasifican en: asignación y
procedure.
Sentencia de asignación
Formato
Variable ? expresión
En Pascal el operador `?´ se sustituye por el símbolo :=, que se denomina carácter de
asignación.
Ejemplos:
Ejemplo:
Program Calcula;
Var
Valor1: Integer;
Valor2: Integer;
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
Procedure Elmayor;
Begin
Begin
Readln
End
Else
Begin
Readln
End
Else
Begin
Readln
End
End;
Begin
Readln (Valor1);
Readln (Valor2);
Elmayor
End.
Sentencias compuestas
Ejemplo:
Begin
Readln (Numero);
Numero:= Numero+1;
End.
Los datos estructurados como arrays, registros o conjuntos, no se pueden leer globalmente
y se suele recurrir a diseñar procedimientos específicos.
Los procedimientos de lectura son: Read y ReadLn. Estos esperan a que se pulse la tecla
ENTER antes de asignar un valor a la variable.
Ejemplo
Program Suma;
Uses
Crt;
Clrscr;
Readln (i);
Readln (j);
End.
Concepto de salida
Los programas para ser útiles deben proporcionar información de salida (resultados). Esta
salida toma información de la memoria y la sitúa o almacena en: la pantalla, en un
dispositivo de almacenamiento (disco duro o flexible), o en un puerto de E/S (puertos serie
para comunicaciones o impresoras).
Ejemplo
Program Resultado;
Uses
Crt;
Clrscr;
End.
ESTRUCTURAS DE CONTROL
Expresiones lógicas
Por ejemplo, supongamos que se desea diseñar un programa para calcular el salario
semanal de un empleado que trabaja por horas; la empresa paga un 1.5% adicional por
todas las horas trabajadas superiores a 40. El algoritmo de cálculo de pago sería el
siguiente:
Leer HorasTrabajadas
Si HorasTrabajadas>40 entonces
Adicional ?(HorasTrabajadas-40)*SalarioHora*1.5%
Si no
Fin_Si
Operadores de relación
Se utilizan para expresar condiciones y describen una relación entre dos valores.
Operadores lógicos
Las expresiones lógicas pueden combinarse para formar expresiones más complejas. Esto
se logra utilizando los operadores lógicos: and, or y not.
La operación and (y) combina dos condiciones simples y produce un resultado verdadero sí
y sólo sí los dos operandos de la expresión son verdaderos.
La operación not (no) actúa sobre una sola condición simple u operando y simplemente
niega o invierte su valor.
Esto se puede demostrar más fácilmente mediante las tabla de verdad para cada operador.
Operador and
Operador or
Operador not
La sentencia IF
Puesto que las expresiones lógicas toman el valor verdadero o falso, se necesita una
sentencia de control que indique a la computadora que ejecute una sentencia en caso de que
la expresión sea verdadera y otra sentencia en el caso de que sea falsa. Esto se logra
mediante la sentencia IF. El siguiente ejemplo describe su utilidad.
Ejemplo:
Program Numeros;
Var
Numero : Real;
Begin
Read (Numero);
Begin
Readln
Readln
End;
End.
Sentencias IF anidadas
La sentencia que sigue a la palabra reservada then o else puede ser cualquiera, incluso otra
sentencia if - then - else. Cuando existe una sentencia if - then - else dentro de otra
sentencia if - then - else, se dice que dichas sentencias están anidadas.
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
Ejemplo:
Program Mayor;
Uses
Wincrt;
Var
A,B,C : Integer;
Elmayor : Integer;
Begin
Readln (A,B,C);
If A > B Then
If A > C Then
Elmayor := A
Else
Elmayor := C
Else
If B > C Then
Elmayor := B
Else
Elmayor := C;
End.
La sentencia CASE
La sentencia CASE se utiliza para elegir entre diferentes alternativas. Una sentencia CASE
se compone de varias sentencias simples. Cuando un CASE se ejecuta, una y sólo una de las
sentencias simples se selecciona y se ejecuta.
Ejemplo:
Program Cursor;
(* Este programa mueve el cursor a través de la pantalla mediante las teclas predefinidas,
cuando se presiona otra tecla, emite un pitido de advertencia*)
Uses
Wincrt;
Var
X,Y : Integer;
C : Char;
Begin
Clrscr;
X := 40;
Y := 10;
GotoXY (X,Y);
Write (`*´);
Repeat
C := Readkey;
GotoXY (X,Y);
Write (` `);
Case C of
`S´ : Y := Y - 1;
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
`B´ : Y := Y + 1;
`D´ : X := X + 1;
`I´ : X := X - 1;
`P´ : Exit
Else
Write (Chr(7)
End;
GotoXY (X,Y);
Write (`*´)
Until C = `P´
End.
CONDICIONES COMPUESTAS
Ejemplo:
Program Primos;
Var
Primo : bolean;
Número : Integer;
Begin
Primo: = True;
Divisor := 2;
WriteLn (`Introduzca un entero positivo: `);
ReadLn (Numero);
While (Divisor < Numero) and Primo do
Begin
If Numero mod Divisor = 0 then
Primo := False;
Divisor := Divisor + 1
End;
If primo = True then
Writeln (Numero,` ` , ` es primo´)
Else
Writeln (Numero,` ` , ` no es primo´)
End.
CICLOS
El cuerpo del ciclo o bucle contiene las sentencias que se repiten. Pascal proporciona tres
estructuras o sentencias de control para especificar la repetición: while, repeat, for.
La sentencia FOR
La sentencia FOR requiere que conozcamos por anticipado el número de veces que se
ejecutan las sentencias que se encuentran dentro del ciclo. El ciclo for se incremente
automáticamente.
Sintaxis:
Sentencia;
Ejemplos:
1.
For c := 1 to 5 do
Begin
Write (`aa´);
Write (`BB´)
End;
Al ejecutarse, visualiza:
AaBBaaBBaaBBaaBBaaBB
WriteLn (Caracter);
Sentencia;
Ejemplos:
For C := 5 downto 1 do
Begin
Write (`C´);
Writeln
End;
For m := 1 to 10 do
begin
For n := 10 downto 2 do
WriteLn (m,n)
end;
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
La sentencia REPEAT
Repetir
Sentencias
Hasta_que condición
Sintaxis:
Repeat
Begin
Sentencia 1;
Sentencia 2;
...
...
...
Sentencia n;
End;
Ejemplo:
Uses wincrt;
Var m : char;
n : integer;
Begin
Repeat
Begin
End;
Until keypressed
End.
Concepto
Un procedimiento es un programa que realiza una tarea específica. Puede recibir cero o más
valores del programa que llama y devolver cero o más valores al programa que realizó la
llamada. Un procedimiento está compuesto de un grupo de sentencias a las que se asigna un
nombre (identificador) y constituye una unidad de programa. La tarea asignada al
procedimiento se ejecuta siempre que Pascal encuentra el nombre del procedimiento.
Los procedimientos es obligatorio declararlos y deben ser declarados antes de que puedan
ser referenciados en el cuerpo del programa. En Pascal reciben el nombre de
PROCEDURE.
Declaración de un procedimiento
Al igual que los identificadores, los procedimientos deben declararse dentro del cuerpo del
programa. La declaración de un procedimiento NO indica a la computadora que ejecute las
instrucciones dadas, sino que indica a la computadora cuáles son estas instrucciones y
dónde están localizadas cuando sea necesario.
Procedure nombreproc;
Declaraciones locales
Begin
End;
Una cabecera del procedimiento que proporciona el nombre del mismo y, en caso de existir,
una lista de parámetros formales.
Una sección de declaración que puede contener constantes, variables e incluso otros
procedimientos.
Ejemplo:
Program Recuadro;
Var I : Integer;
Procedure Estrellas;
Begin
For I := 1 to 15 do
Write (`*´)
End;
Begin
Write (`Mensajes´);
End.
Los procedimientos se pueden ejecutar más de una vez en un programa y/o en diferentes
programas, ahorrando tiempo de programación.
PARÁMETROS
Concepto
Un parámetro es, prácticamente, una variable cuyo valor debe ser ya sea proporcionado por
el programa principal al procedimiento o ser devuelto desde el procedimiento hasta el
programa principal. Por consiguiente, existen dos tipos de parámetros:
Ejemplo 1:
(Parámetros de entrada)
Var
J : Integer;
Begin
For J := 1 to N do
Write(`*´)
End;
Ejemplo 2:
(Parámetros de entrada/salida)
Begin
End;
Los parámetros actuales pa1, pa2, pa3, ... deben tener unos valores que se pasan al
procedimiento nombreproc.
Program Correspondencia;
Uses Wincrt;
Var
X,Y,A,P : real;
Begin (* Geometría *)
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
End;
Begin
Readln (X);
Readln (Y);
End.
Parámetros valor
Parámetros variable
Program EjemploParametros;
Uses Wincrt;
Var
A,B,C : Integer;
Begin
WriteLn ('A = ', D:1, ' ':5,'B = ', E:1,' ':5,'C = ', F:1)
End;
Begin
F := D * E;
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
Imprimir (D, E, F)
End;
Begin
A := 2;
B := 3;
C := 4;
Pasar(A, B, C);
End.
Ejemplo
En este ejemplo los parámetros formales a y b recibe, cuando son llamados, los valores
contenidos en los parámetros actuales de x e y.
Program Calculo;
Uses wincrt;
Var
x,y : real;
Var
max : real;
Begin
if a > b then
max := a
else
max := b;
End;
Begin
repeat
readln (x,y);
mayor (x,y)
until x = 0
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario
End.
Ejemplo
Program Intercambio;
Uses wincrt;
Var
x,y : real;
resp : char;
Var
aux : real;
Begin
aux := a;
a := b;
b := aux;
End;
Begin
repeat
clrscr;
readln (x);
readln (y);
cambio(x,y);
writeln;
readln (resp);
End.
FUNCIONES
Una función es un subprograma que recibe como argumentos o parámetros datos de un tipo
numérico o no numérico (char, string, bolean u otros) y devuelve un resultado. Esta
característica le diferencia de un procedimiento.
El pseudocódigo es el siguiente:
Nombre_función (argumento1,argumento2,...);
Los argumentos es lo que se conoce en Pascal como parámetros. Para poder calcular el
valor o resultado de la función, todo lo que se necesita conocer es el valor o valores de los
parámetros respectivos.
begin
<cuerpo de la función>
end;
La lista de los parámetros formales son los identificadores utilizados para recibir valores
del programa.
El tipo de datos del resultado coincide con el tipo expresado en la cabecera de la función.
En el cuerpo de la función tiene que existir una sentencia de asignación como la siguiente:
Nombre_función := valor_función
La función sólo devuelve un valor, el procedimiento puede devolver cero, uno o varios
valores.
El tipo de dato del resultado de la función debe estar indicado en la cabecera y puede ser
tipo char, integer, real o bolean.
Uses
Wincrt;
Var
Num,valor : integer;
Function El_cubo (Numero: integer):integer;
Begin
valor := Num*Num*Num;
End;
Begin
Write ('Digite un número entero: ');
Readln (Num);
El_cubo(Num);
Write ('El cubo de ',Num,' es ',valor);
End.
EJECICIOS:
PRIMER PROGRAMA:
SEGUNDO PROGRAMA
2. Hacer un programa que lea tres números, que calcule el mayor y el menor de esos
números y los imprima.
4. Hacer un programa que lea dos números y que imprima el resultado de su suma, su
resta, su multiplicación y su división.
Al final debe imprimir lo siguiente: "Estimado empleado: (nombre). En este mes su salario
se desglosa así:
8% CCSS: (CCSS)
6. Escriba un programa que lea tres números para tres variables a, b y c. Con base en los
valores almacenados, calcule la expresión ((a+7*c)/(b+2-a)+2*b).
TERCER PROGRAMA
2. Diseñe un programa para calcular e imprimir los primeros 2000 números enteros
positivos.
3. Leer las notas de 50 exámenes e imprimir cuántos de ellos tienen nota mayor o igual a
70.
4. Hacer un programa que lea los montos de las N ventas hechas por una tienda en un día y
que imprima el monto total de ventas y el monto promedio.
5. Hacer un programa que lea 10 valores numéricos (positivos y negativos). Debe imprimir
el número de valores negativos, el número de valores iguales a cero y el promedio de
valores positivos.
8. Hacer un programa que lea: P, i, y N e imprima el monto de interés a través del número
de años leído.
9. Diseñe un programa para calcular la nómina semanal de una compañía con N empleados.
Por cada empleado, se debe leer: Nº de empleado, salario por hora y número de horas
trabajadas. Por cada empleado se debe imprimir: Nº de empleado, salario bruto, impuesto
federal, impuesto estatal, cuota del seguro social y salario neto. Los impuestos federales son
el 15% del salario bruto, los estatales el 6% y el seguro social el 7%. El salario se calcula
de la siguiente manera: Por las primeras 40 horas o menos se paga el salario normal por
hora. Por las horas extra (más de 40) se paga 1.5% adicional por hora.
10. Diseñe un programa para calcular cuántas veces se puede dividir un número X entre un
número Y de tal manera que el resultado de la división sea un número entero.
CUARTO PROGRAMA
1. Hacer un programa que calcule lea el Id. del empleado, el nombre del empleado y el
salario bruto.
Debe utilizar un procedimiento de cálculo tomando como parámetro el salario bruto (utilice
una variable diferente al del programa principal). Finalmente, debe calcular la deducción de
la Caja y del Banco Popular y el salario neto.
Hacer un programa de funciones aritméticas que lea un número real y mediante un menú y
utilizando procedimientos para cada función calcule:
Diseñe un programa que mediante una función calcule la suma de los números que están en
un rango establecido. (Por ejemplo de 1 a 100). Pruebe con varios rangos.
Escribir un programa que, mediante una función devuelva el valor del día de la semana en
respuesta a la entrada de la letra inicial de dicho día.
_________________________________________________________________________