Está en la página 1de 37

Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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.

Las diferentes versiones ofrecían interpretaciones ligeramente diferentes que impedían la


compatibilidad entre ellas. Por estas razones, mediante diferentes proyectos, se logró la
estandarización bajo las normas ISO (International Standards Organization), ANSI
(American National Standards Institute) y IEEE (Institute of Electrical and Electronics
Engineers). Sin embargo, las versiones más populares conocidas como UCSD (Construida
por Regents) y Turbo Pascal (de Borland) no están estandarizadas. Esta última es la más
conocida y la más utilizada.

Características principales

- Excelente para el aprendizaje de la información.

- Lenguaje de propósito general.

- Lenguaje procedimental (orientado a órdenes).

- Lenguaje estructurado (Permite while, for y repeat y no necesita el goto).

- Lenguaje recursivo (Puede llamarse a sí mismo una función o procedimiento).

- Riqueza en los tipos de datos.

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

DATOS Y TIPOS DE DATOS

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.

La asignación de tipos a los datos persigue dos objetivos:

- Detectar errores de operaciones en programas.

- Determinar cómo ejecutar las operaciones.

Clasificación de los tipos de datos

Tipos de datos enteros

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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

Representan los objetos de un programa (constantes, variables, tipos de datos,


procedimientos, funciones, unidades, programas y campos de registros). Un identificador es
una secuencia de caracteres de cualquier longitud, pero el límite significativo es de 63
caracteres.

Existen tres reglas básicas para nombrar los identificadores:

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas). No puede contener


blancos.

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

Una expresión es un conjunto de datos o funciones unidos por operadores aritméticos.

Pascal soporta los siguientes operadores:

Reglas para la evaluación de expresiones

Todas las subexpresiones entre paréntesis se evalúan primero. Cuando existan


subexpresiones con paréntesis anidados se evalúan de dentro hacia fuera. El paréntesis más
interno se evalúa primero.
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

Prioridad de operaciones. Dentro de una misma expresión o subexpresión, los operadores se


evalúan en el siguiente orden:

1º *,/, div, mod

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:

a. 4+2*5 (primero la multiplicación, luego la suma)

4 + 10

14

b. 23 * 2 div 5 (de izquierda a derecha, primero * y luego div)

46 div 5

Práctica

Evalúe las siguientes expresiones:

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

Especifique el orden de desarrollo de la siguiente operación:

a - (b + c div d) + e * f

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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.

Estructura de un programa en Pascal

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

SENTENCIAS SIMPLES Y COMPUESTAS

Sentencias simples

Es una sentencia que no contiene ninguna otra sentencia. Se clasifican en: asignación y
procedure.

Sentencia de asignación

La sentencia de asignación se utiliza para asignar (almacenar) valores o variables. La


asignación es una operación que sitúa un valor determinado en una posición de memoria.
La operación de asignación puede representar en un pseudocódigo con el símbolo `?´, para
denotar que el valor situado a su derecha se almacena en la variable a la izquierda.

Formato

Variable ? expresión

En Pascal el operador `?´ se sustituye por el símbolo :=, que se denomina carácter de
asignación.

Ejemplos:

A := 16 (Se le asigna 16 a la variable A)

Inicial := `LJ´ (Se asigna el texto LJ a la variable Inicial)

N1 := N2 (El valor de la variable N1 se cambia por el valor de la variable N2).

N1 := N1 + 5 (El valor de N1 se modifica incrementándose en 5).

2.3.1.2 Sentencia procedure

Un procedure o procedimiento es un subprograma que realiza una tarea específica. Estos


son ejecutados cuando Pascal encuentra el nombre del procedimiento. Deben estar
declarados antes de ser referenciados dentro del programa.

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

If Valor1> Valor2 then

Begin

Write (`El mayor es: `,Valor1);

Readln

End

Else

If Valor1< Valor2 then

Begin

Write (`El mayor es: `,Valor2);

Readln

End

Else

Begin

Write (`Son iguales´);

Readln

End

End;

Begin

Write (`Digite un valor: `);

Readln (Valor1);

Write (`Digite otro valor: `);

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

Readln (Valor2);

Elmayor

End.

Sentencias compuestas

En numerosas ocasiones, en vez de realizar sólo una acción, cuando se cumpla o no se


cumpla una determinada condición, se deben realizar diferentes acciones. Esto es posible
gracias a las sentencias compuestas. Una sentencia compuesta es un conjunto de sentencias
separadas por puntos y comas y encerradas entre las palabras begin y end.

Ejemplo:

Begin

Readln (Numero);

Numero:= Numero+1;

Write (`El número es `,Numero)

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

ENTRADAS Y SALIDAS DE INFORMACIÓN


Concepto de entrada

Una entrada de datos o valores es equivalente al término lectura. La entrada o lectura de


datos se refiere a la recepción de valores provenientes de un dispositivo periférico de
entrada como un teclado, una unidad de disco, un escáner, etc. y su direccionamiento hacia
zonas de memoria de la computadora.

Es la entrada la operación que nos permite proporcionar datos durante la ejecución de un


programa. Los datos que se pueden leer son: enteros, reales, caracteres o cadenas. NO se
puede leer un boolean por tener valores preestablecidos (V o F).

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;

Var i,j : integer; Begin

Clrscr;

Write (`Introduzca el primer número: `);

Readln (i);

Write (`Introduzca el segundo número: `);

Readln (j);

WriteLn (`La suma es `,i+j);

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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

El procedimiento que se utiliza para visualizar o escribir la información es el Write o el


WriteLn. Tanto el Write como el WriteLn cumplen la misma función, o sea desplegar
información. La diferencia es que el WriteLn despliega la información y salta a la línea
siguiente.

Ejemplo

Program Resultado;

Uses

Crt;

Var Nombre : String[30]; Begin

Clrscr;

Nombre := `Pedro Picapiedra´;

WriteLn (`Nuestro personaje se llama `,Nombre);

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

ESTRUCTURAS DE CONTROL
Expresiones lógicas

Son acciones alternativas o decisiones que determinan el cumplimiento o no de una


determinada condición.

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

Adicional ?(HorasTrabajadas * SalarioHora)

Fin_Si

Operadores de relación

Se utilizan para expresar condiciones y describen una relación entre dos valores.

Es importante recordar aquí el orden de evaluación de expresiones aritméticas:

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 or (o) es verdadera si uno de los dos operandos es verdadero.


GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

SELECCIÓN DE ACCIONES ALTERNATIVAS

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

Writeln (`Introduzca un número `);

Read (Numero);

If Numero > 0.0 Then

Begin

Writeln (`El número introducido es positivo´);

Readln

End Else Begin

Writeln (`El número introducido es negativo´);

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

Writeln (`Digite tres números enteros `);

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;

Writeln (`El número mayor es: `,Elmayor)

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

CONDICIONES COMPUESTAS

En numerosas ocasiones las expresiones de control de un ciclo pueden ser condiciones


lógicas compuestas, como las siguientes:

While (Datos >= 100) and (Datos >= 1000) do

While not (A <= 5) do

While (A <> B) and not Eof (input) do

Ejemplo:

Diseñar un programa que verifique si un número es primo.

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

CICLOS

Es una estructura de control que permite la repetición de una serie determinada de


sentencias. Se le llama también bucle o lazo.

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.

Nos ocuparemos de estudiar el ciclo FOR y el ciclo REPEAT.

La sentencia FOR

En numerosas ocasiones se puede desear un bucle que se ejecute un número determinado de


veces, y cuyo número se conozca por anticipado. Para aplicaciones de este tipo se utiliza 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:

For variable := valor inicial to valor final do

Sentencia;

Ejemplos:

1.

For c := 1 to 5 do

Begin

Write (`aa´);

Write (`BB´)

End;

Al ejecutarse, visualiza:

AaBBaaBBaaBBaaBBaaBB

For Caracter := `A´ to `Z´ do


GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

WriteLn (Caracter);

Decremento del contador FOR (Downto)

El contador del ciclo se puede decrementar de uno en uno en lugar de incrementar. La


sintaxis es la siguiente:

For variable := valor inicial downto valor final do

Sentencia;

Ejemplos:

For C := 5 downto 1 do

Begin

Write (`C´);

Writeln

End;

Lo anterior produce la siguiente salida:

También podemos encontrar ciclos FOR anidados:

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

Es una variante de la sentencia while. La sentencia REPEAT especifica un ciclo condicional


que se repite hasta que la condición se hace verdadera.

El diagrama de flujo se representa de la siguiente manera:

El seudocódigo se representa así:

Repetir

Sentencias

Hasta_que condición

Sintaxis:

Repeat

Begin

Sentencia 1;

Sentencia 2;

...

...

...

Sentencia n;

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

End;

Until expresion lógica

Ejemplo:

(* El siguiente programa imprime las secuencias de caracteres hasta que se presione


cualquier tecla *)

Uses wincrt;

Var m : char;

n : integer;

Begin

Repeat

Begin

Write ('a e i o u');

Write ('1 2 3 4 5');

End;

Until keypressed

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

SUBPROGRAMAS: FUNCIONES Y PROCEDIMIENTOS


Procedimientos

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.

El formato del procedimiento es el siguiente:

Procedure nombreproc;

Declaraciones locales

Begin

Cuerpo del procedimiento

End;

A las variables que se encuentran dentro de un procedimiento se les llaman Variables


Locales y a las que se ubican en el cuerpo principal, fuera de los procedimientos, se les
llama Variables Globales.

En resumen, un procedimiento, al igual que un programa, consta de tres partes:

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

Una sección ejecutable: el cuerpo del procedimiento.

Ejemplo:

Program Recuadro;

Var I : Integer;

Procedure Estrellas;

(* Este procedimiento visualiza 15 asteriscos *)

Begin

For I := 1 to 15 do

Write (`*´)

End;

Begin

Estrellas; (* Llamado del procedure *);

Write (`Mensajes´);

Estrellas; (* Nuevo llamado del procedure *);

End.

Ventajas de utilizar procedimientos

La organización de un programa en procedimientos lo hace más fácil de escribir y depurar.


Los procedimientos no deben exceder de 25 líneas.

Las ventajas de utilizar procedimientos son:

Facilita el diseño descendente.

Los procedimientos se pueden ejecutar más de una vez en un programa y/o en diferentes
programas, ahorrando tiempo de programación.

El uso de procedimientos facilita la división de las tareas entre un equipo de programadores


y se pueden comprobar individualmente.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

PARÁMETROS
Concepto

Un parámetro es un método para pasar información (valores a variables) del programa


principal a un procedimiento y viceversa.

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:

- Parámetros de entrada: Sus valores deben ser proporcionados por el programa


principal.

- Parámetros de salida: Son parámetros cuyos valores se calcularán en el


procedimiento y se deben devolver al programa principal para su proceso posterior.

4.2.2 Transferencia de información desde y/o hasta los procedimientos

Existen dos tipos de procedimientos:

- Procedimientos sin parámetros: No existe comunicación entre el programa principal


y los procedimientos ni viceversa.

- Procedimientos con parámetros: Existe comunicación entre el programa principal y


los procedimientos o entre dos procedimientos.

Ejemplo 1:

(Parámetros de entrada)

Procedure RecuadroDos (N : Integer);

Var

J : Integer;

Begin

For J := 1 to N do

Write(`*´)

End;

Ejemplo 2:

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

(Parámetros de entrada/salida)

El procedimiento Geometria recibe la longitud y anchura de un rectángulo, calcula el área y


perímetro del rectángulo y devuelve los valores obtenidos al programa principal.

Procedure Geometria (Longitud, Anchura : Real; Var Area, Perímetro : Real);

Begin

Area := Longitud * Anchura;

Perimetro := 2 * (Longitud + Anchura)

End;

Parámetros actuales y formales

Las sentencias llamadas a procedimientos constan de dos partes: un nombre de


procedimiento y una lista de parámetros llamados actuales:

Nombreproc (pa1,pa2, pa3,...);

Los parámetros actuales pa1, pa2, pa3, ... deben tener unos valores que se pasan al
procedimiento nombreproc.

En la declaración de un procedimiento cuando se incluyen parámetros, éstos se denominan


parámetros formales o ficticios (pf1, pf2, pf3, ...). Ellos sirven para contener los valores de
los parámetros actuales cuando se invoca el procedimiento.

Procedure nombreproc (pf1, pf2, pf3, ...)

El valor de los parámetros actuales no se conoce cuando se declara el procedimiento, sin


embargo, cuando se ejecuta la sentencia de llamada al procedimiento es preciso que tengan
valores asignados, ya que en caso contrario se producirá un error.

Program Correspondencia;

Uses Wincrt;

Var

X,Y,A,P : real;

Procedure Geometria (Longitud, Anchura : Real; Var Area, Perimetro : Real);

Begin (* Geometría *)
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

Area := Longitud * Anchura;

Perimetro := 2 * (Longitud + Anchura)

End;

Begin

WriteLn ('Introducir longitud: ');

Readln (X);

WriteLn ('Introducir anchura: ');

Readln (Y);

Geometria (X,Y,A,P); (* Llamada al procedimiento *)

WriteLn ('El área es: ', A:6:2);

WriteLn ('El perímetro es: ', P:6:2)

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

PARÁMETROS VALOR Y VARIABLES

Parámetros valor

Son parámetros unidireccionales que se utilizan para proporcionar información a un


procedimiento, pero no pueden devolver valores. Si la palabra var no aparece delante del
parámetro formal en un procedimiento, la computadora supone que el parámetro formal es
un parámetro valor. En la llamada al procedimiento el valor del parámetro actual se pasa a
la variable que represente el parámetro actual. Este valor puede ser modificado dentro del
programa, pero su valor no se puede devolver al programa o procedimiento llamante.

Parámetros variable

En la declaración de un procedimiento, los nombres de los parámetros variables están


precedidos con la palabra var. Los parámetros variable se utilizan tanto para recibir como
para transmitir valores entre el subprograma y el programa llamante. Estos parámetros
pueden actuar como parámetros de salida o de entrada/salida.

El siguiente ejemplo ilustra la diferencia entre parámetros valor y variable en Pascal y la


correspondencia entre ellos.

Program EjemploParametros;

Uses Wincrt;

Var

A,B,C : Integer;

Procedure Imprimir (D, E, F : Integer);

Begin

WriteLn ('A = ', D:1, ' ':5,'B = ', E:1,' ':5,'C = ', F:1)

End;

Procedure Pasar (D,E : Integer; Var F : Integer);

Begin

Writeln ('Entrada al procedimiento Pasar');

Imprimir (D, E, F);

F := D * E;
GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

WriteLn ('Salida del procedimiento Pasar');

Imprimir (D, E, F)

End;

Begin

A := 2;

B := 3;

C := 4;

WriteLn ('Antes de llamar al procedimiento Pasar');

Imprimir (A, B, C);

Pasar(A, B, C);

WriteLn ('Después de llamar al procedimiento Pasar');

Imprimir (A, B, C);

End.

La salida de este programa es:

Antes de llamar al procedimiento Pasar

a=2 b=3 c=4

Entrada al procedimiento Pasar

a=2 b=3 c=4

Salida del procedimiento Pasar

a=2 b=3 c=6

Después del retorno del procedimiento Pasar

a=2 b=3 c=6

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

Paso de parámetros (repaso...)

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;

Procedure mayor (a,b : real);

Var

max : real;

Begin

if a > b then

max := a

else

max := b;

writeln ('El mayor de los dos números es ',max:4:2);

End;

Begin

repeat

write ('Introduzca dos números ');

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

El siguiente ejemplo muestra un intercambio de valores de dos variables con un


procedimiento.

Program Intercambio;

Uses wincrt;

Var

x,y : real;

resp : char;

Procedure cambio (var a,b : real);

Var

aux : real;

Begin

aux := a;

a := b;

b := aux;

writeln ('Ahora el valor de a es ',a:5:2,' y el valor de b es ',b:5:2);

End;

Begin

repeat

clrscr;

write ('Introduzca el valor para x ');

readln (x);

write ('Introduzca el valor para y ');


GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

readln (y);

cambio(x,y);

writeln;

write ('Desea continuar (S/N)?');

readln (resp);

until (resp = 'N') or (resp = 'n')

End.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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.

Funciones aritméticas o matemáticas

Funciones definidas por el usuario

Además de las funciones predefinidas citadas anteriormente, es posible que el usuario


pueda declarar sus propias funciones de igual modo que declara sus procedimientos.

Una función es un subprograma que devuelve un único resultado al programa o


subprograma que le llamó. La sintaxis es muy similar a la de un procedimiento.

Function nombre (parámetros): tipo

(declaración de variables locales)

begin

<cuerpo de la función>

nombre de la función := valor de la función

end;

Comparación entre funciones y procedimientos


GRUPOS EMAGISTER Email: ogario2007@hotmail.com
Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

En vez de la palabra procedure se debe utilizar la palabra function

Al igual que en los procedimientos, el nombre de una función es un identificador. Sin


embargo, el nombre de la función se refiere a la posición de memoria que contiene el valor
devuelto por la función.

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.

Ejemplo: Program Cubo;

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

EJECICIOS:
PRIMER PROGRAMA:

1. Realicen un programa que pida el nombre y grado de un estudiante.


2. Que pida 4 datos de cursos: Matemáticas, Idioma Español, Ciencias Naturales y
Estudios Sociales.
3. Que el programa calcule el promedio de los cuatro cursos.

SEGUNDO PROGRAMA

1. Hacer un programa que lea su cédula, su nombre y su teléfono y los imprima en


pantalla.

2. Hacer un programa que lea tres números, que calcule el mayor y el menor de esos
números y los imprima.

3. Hacer un programa que lea un código de producto, su descripción, su precio unitario,


las unidades compradas y el precio total a pagar e imprima el resultado.

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.

5. Hacer un programa que lea la cédula de un trabajador, su nombre y su salario. Debe


calcular el 8% correspondiente al rebajo de la CCSS y el 1% del Banco Popular, el total de
deducciones y el salario neto.

Al final debe imprimir lo siguiente: "Estimado empleado: (nombre). En este mes su salario
se desglosa así:

Salario bruto: (Salario)

8% CCSS: (CCSS)

1% Banco Popular: (BP)

Total de deducciones: (Totded)

Salario Neto: (Salneto)

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

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

TERCER PROGRAMA

1. Los patos de un granjero se venden a precios especiales si son grandes pero no


demasiado. Diseñe un programa que lea el número de patos que posee el granjero y el peso
de cada ave. Al final debe especificar cuántos patos pesan entre 1.5 kilos y 2 kilos
inclusive.

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.

6. Encuentre la suma de los primeros 50 números enteros pares.

7. El interés simple se calcula mediante la fórmula A=P(1+i*n), donde A=Monto de


Interés, P=Capital, N=Número de años e i=tasa de interés.

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.

GRUPOS EMAGISTER Email: ogario2007@hotmail.com


Manual de Turbo Pascal Autor: Oscar Manuel Cujuy Gario

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.

La salida del programa debe ser la siguiente:

El empleado (nombre), cédula No. (id_empleado), obtuvo un salario neto de...

Sus deducciones suman ....

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:

- El seno de ese número

- El cuadrado de ese número

- La raíz cuadrada de ese número

- La parte decimal del número

- La parte entera del número

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.

Mediante una función, determinar el número de días de un mes dado.

Escriba un programa que mediante una función determine si un número es primo.

_________________________________________________________________________

GRUPOS EMAGISTER Email: ogario2007@hotmail.com

También podría gustarte