Está en la página 1de 4

Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos

Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa


Ingeniería en Sistemas de Información Procedimientos

Procedimientos

Introducción

• Ante problemas complejos es conveniente aplicar la técnica de dividirlos en partes,


para hacer más fácil su análisis y resolución, así como su mantenimiento ante futuros
requerimientos y/o mejoras.
• Entonces, un problema se puede dividir en subproblemas que se resuelven en forma
separada, y luego se integran a la solución general.
• Cada subproblema es un problema en sí mismo, que denominaremos módulo o
subprograma, y se resuelve determinando la secuencia de acciones que realiza una
tarea específica.
• El programa principal es un módulo desde el cual se invoca la ejecución de otros
módulos, y estos mismos pueden invocar a otros en su desarrollo.
• Una de las ventajas de resolver un problema en módulos es la reusabilidad de los
mismos. Se evita escribir la misma lista de acciones en distintas partes del programa
ya que se puede invocar al módulo que las contiene todas las veces que sea
necesario.
• Otra de las ventajas es que esta técnica facilita la legibilidad y el seguimiento de la
solución de un problema.

Un procedimiento es un subprograma que realiza una tarea específica. Puede


retornar ninguno, uno o más resultados a través de los parámetros de salida o
entrada/salida.

Los procedimientos deben estar definidos antes de ser invocados por el programa
principal u otro subprograma.

La definición del procedimiento incluye:

• la palabra reservada PROCEDURE,

• el identificador del procedimiento,

• entre paréntesis, la lista de parámetros separados por punto y coma, la cual incluye
todos y cada uno de los parámetros con su tipo (IdParametro : TIPO; . . . ), y

• el cuerpo del procedimiento.

La invocación a un procedimiento es una acción simple que incluye el identificador y la


lista de argumentos separados por comas.

En los procedimientos, los argumentos de la invocación y los parámetros de la


cabecera deben coincidir en cantidad, tipo y orden, es decir, el tipo del primer argumento
debe ser el mismo que el del primer parámetro, el tipo del segundo argumento igual al del
segundo parámetro y así sucesivamente.

Es aconsejable definir identificadores semejantes para los argumentos del módulo de


llamada y los parámetros, aunque no idénticos, para una mayor legibilidad.

Edición Preliminar (bajo revisión) Página 1 de 4


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Procedimientos

Veamos un ejemplo sencillo:

Dados dos números, mostrar por pantalla la suma y la resta de ambos.

Algoritmo del Módulo o Programa Principal

Esquema de Datos
E/S IDENTIFICADOR TIPO BYTES

E Num1 REAL 6
E Num2 REAL 6

Identificador del
C procedimiento

LeerDosNumeros
Num1, Num2

Argumentos
Llamadas a módulos o
procedimientos ImprimirSuma
Num1, Num2

ImprimirResta
Num1, Num2

Los subprogramas deben estar declarados antes de ser invocados por el programa
principal u otros subprogramas.

Algoritmo del Módulo LeerDosNumeros

Tipo e identificador del


subprograma

Cabecera del PROCEDURE LeerDosNumeros


procedimiento
VAR PNum1, PNum2: REAL

Parámetros que operan como


Ingrese dos números variables dentro del módulo

PNum1, PNum2

R
Edición Preliminar (bajo revisión) R Página 2 de 4
Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Procedimientos

Algoritmo del Módulo ImprimirSuma

PROCEDURE ImprimirSuma

PNum1, PNum2: REAL

La suma es:

PNum1 + PNum2

Algoritmo del Módulo ImprimirResta

PNum1, PNum2
PROCEDURE ImprimirResta

PNum1, PNum2: REAL

La resta es:

PNum1 - PNum2

Codificación del Programa en Pascal

PROGRAM SumaYRestaDosNumeros;

VAR
Num1, Num2 : REAL;
{para declarar un procedimiento se coloca la palabra reservada PROCEDURE, el
nombre del procedimiento y, entre paréntesis, la lista de parámetros, separados
por punto y coma.
La lista de parámetros está formada por el nombre de cada parámetro, dos puntos
y el tipo del mismo. Cuando varios parámetros son del mismo tipo se pueden
agrupar, separados por comas, para declarar el mismo}.

Edición Preliminar (bajo revisión) Página 3 de 4


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Procedimientos

PROCEDURE LeerDosNumeros (VAR PNum1, PNum2 : REAL);


BEGIN
WRITELN(‘Ingrese dos números’); Cuando se antepone VAR al nombre de
Cuerpo del procedimiento un parámetro el valor que éste toma en el
READLN(PNum1, PNum2) procedimiento se devuelve al programa.
END; Én este caso, se denominan parámetros
por referencia o parámetros de
entrada/salida
PROCEDURE ImprimirSuma (PNum1, PNum2 : REAL);
BEGIN
WRITELN(‘La suma es:’);
WRITELN(PNum1 + PNum2) Sección de declaración de
procedimientos y funciones; precede
END; al cuerpo del programa principal

PROCEDURE ImprimirResta (PNum1, PNum2 : REAL);


BEGIN
WRITELN(‘La resta es:’);
WRITELN(PNum1 - PNum2)
Se denominan parámetros por valor , o de entrada, ya
END; que los valores de los argumentos del módulo que invoca
se copian en éstos, y todos los cambios que se
produzcan durante la ejecución del subprograma no se
verán reflejados en los argumentos cuando se devuelva
el control al módulo de llamada.

BEGIN
Cuerpo del LeerDosNumeros(Num1,Num2);
programa principal ImprimirSuma(Num1,Num2);
ImprimirResta(Num1,Num2)
END.

Estructura de un Procedimiento

Un procedimiento tiene la misma estructura que un programa principal, por lo tanto, dentro de
su definición se pueden incluir entidades locales: declarar variables, definir constantes, definir
tipos de datos del usuario y definir procedimientos y/o funciones, teniendo en cuenta que éstas
tendrán validez exclusivamente dentro del entorno de ejecución del procedimiento.

PROCEDURE NombreDelProcedimiento (<lista_de_parámetros>); Cabecera


CONST . . . ;

TYPE . . . ;

PROCEDURE ... ; Zona de declaración de variables, definición de


constantes, tipos de datos, procedimientos y funciones
FUNCTION ... ; locales

VAR . . . ;

BEGIN Cuerpo del procedimiento:


sentencias
secuencia de sentencias
END;

Edición Preliminar (bajo revisión) Página 4 de 4

También podría gustarte