Este documento presenta los conceptos básicos de la programación modular y los subprogramas. Explica que la programación modular divide un programa en módulos independientes que realizan tareas específicas. Luego describe los diferentes tipos de subprogramas como procedimientos, funciones y sus características como parámetros, ámbitos y la forma de invocarlos y definirlos. Finalmente, incluye ejemplos para ilustrar el uso de subprogramas.
1. Grupo 248
Docente: Ma. Eugenia Morales M.
Subprogramas
Programación Modular
Subprogramas
Ámbitos
Parámetros
Procedimientos o subrutinas y
activación de un procedimiento
Funciones y activación de una función
Institución Universitaria de Envigado
Facultad de Ingenierías
2. Método flexible para
mejorar la
productividad de los
programas.
En esta los programas
se dividen en módulos
independientes que
ejecutan las diferentes
tareas del programa,
cada módulo se
codifica y procesa en
forma independiente
Programación Modular
3. Subprograma 1
Programa Subprograma 2
Subprograma 3
Representación de subprogramas
4. Un programa modular se compone de un
programa principal y subprogramas. El
programa principal debe contener Programa Principal
operaciones fundamentales y las
llamadas a los subprogramas, este
modulo principal controla todo lo que
sucede, y transfiere el control a los
diferentes módulos o subprogramas.
Cada modulo es independiente de los Retorna
otros en el sentido que ninguno puede Invoca el
control
acceder directamente a otro.
Un subprograma recibe datos de un
programa y le devuelve resultados (el
programa “llama” o “invoca” al
subprograma, este ejecuta una tarea
especifica y devuelve el “control” al Subprograma
programa que lo llamo).
Realiza procesos
Programación Modular
5. Un problema complejo se puede
dividir en pequeños subproblemas
más sencillos: “Divide y Vencerás”.
Estos subproblemas se conocen como
“Módulos” y su complementación en
un lenguaje se llama subprograma
(procedimientos y funciones).
Un subprograma realiza las mismas
acciones que un programa, sin
embargo, un subprograma lo utiliza
solamente un programa para un
propósito especifico.
La mayoría de los lenguajes de
programación permiten la
programación modular y según el
lenguaje reciben diferentes nombres:
funciones, módulos, subrutinas,
procedimientos.
Subprogramas
6. La comunicación entre los módulos se realiza por
medio de parámetros que contendrán los datos
que se desean pasar al módulo llamado.
La utilización de los subprogramas consta de tres
etapas:
◦ Declaración: Proceso en el cual se especifica
nombre del subprograma y los parámetros que
contendrá.
◦ Invocación o llamada: es proceso en el cual se
utiliza el subprograma dentro del programa.
◦ Definición: Proceso en el cual se escribe el
programa
Subprogramas
7. Declaración de los subprogramas a utilizar
incluyendo la lista de parámetros. Esto sirve para indicar al compilador los
tipos de retorno y los de los parámetros de una función, de modo que
compruebe si son del tipo correcto cada vez que se use esta función
dentro del programa. No requiere los identificadores de los parámetros,
basta con el tipo de identificador, p.e.
int Mayor (int, int);
Programa Principal dónde se invocan o llaman los
subprogramas declarados, incluyendo los valores o variables para los
parámetros, p.e.
Llamar Mayor (a, b);
Definición de cada subprograma declarado e
invocado, incluye todo el proceso del subprograma, aquí se escriben
completos los tipos e identificadores, así:
Int Mayor (int a, int b)
Inicio
Proceso;
Fin
Estructura de un programa con
Subprogramas
8. Programa principal Subprograma 1
◦ Inicio ◦ Inicio
<acciones> <acciones>
llamar a subprograma ◦ Fin y Retorna a
1 principal
<acciones>
Subprograma2
llamar a
subprograma2 ◦ Inicio
<acciones> <acciones>
◦ Fin programa_ppal ◦ Fin y Retorna
principal
Ejemplo de un programa dividido
en Subprogramas…
9. Los ámbitos pueden ser:
El ámbito de un identificador es la
parte del programa donde se conoce ◦ Globales: es un identificador
al identificador, por ejemplo: En qué declarado para el programa principal,
ámbitos son reconocidos: del cual dependen todos los
◦ Jaime Molina subprogramas. Es reconocido en
◦ Jonier Rendón cualquier parte del programa.
◦ La coordinadora del programa
◦ Ma. Eugenia Morales M. ◦ Locales: Es un identificador
◦ Héctor Londoño declarado y definido dentro de un
◦ Sergio Fajardo subprograma, por lo tanto sólo es
◦ Juan Manuel Santos reconocida dentro de ese
◦ Barack Obama subprograma.
◦ Shakira
◦ Sammy la mascota
◦ Bloque: es un identificador
que se declara antes de un conjunto
de instrucciones y sólo tiene
significado a partir de su declaración
y dentro del subprograma dónde ha
sido declarado.
Ámbitos de Identificadores
10. Son subprogramas que toman Definición de funciones:
uno o mas valores Tipo_retorno nombre_funcion (p1,
(argumentos) y devuelven un p2, …, pn)
resultado (valor de la función ◦ Inicio
Bloque de instrucciones
para los argumentos dados).
◦ Fin
Por ejemplo: F(X) = X / Donde:
(1+X2), donde: ◦ Tipo retorno: Es el tipo de dato
que devolverá la función como
◦ F : Nombre de la función resultado, por ejemplo, en C++
si no devuelve resultado se
◦ X: Es el argumento (también especifica con la palabra
conocido como parámetro reservada void.
formal) ◦ Nombre función: Es el
identificador con el cual se
Nota: las funciones pueden reconoce a la función en el
cuerpo del programa.
tener muchos argumentos, pero ◦ P1,p2,…,pn: Es el grupo de
solamente un resultado: el parámetros que define a la
valor de la función. Los función, no se pasan
parámetros se pasan los
nombres de función van paréntesis vacíos ().
asociados al proceso que
realiza.
Funciones
11. Int cubo (int);
Programa principal
Inicio
Int: x;
x = cubo (2);
Muestre “El cubo de 2 es: “,
x;
x = cubo (3);
Muestre “El cubo de 3 es: “,
x;
Fin
Int cubo (Int: z)
Inicio
z = z * z * z; //Retorne z * z *
z;
Fin
Ejemplo de una función
12. Es un subprograma que
permite realizar procesos: Ingreso_datos (string:
toma valores, realiza nom [20], prog [15]; int ed)
cálculos y devuelve varios Inicio
resultados. Por ejemplo: Muestre “Ingrese
nombre: “;
Nom_Proc (lista Lea nom;
Muestre “ingrese edad:
parámetros); de dónde: “;
Lea ed;
◦ Nom_Proc: es el nombre Muestre “ingrese
asignado al procedimiento. programa: “;
◦ Lista parámetros: son las Lea prog;
variables, constantes o
expresiones que pasan del
Fin
programa principal al
procedimiento y viceversa.
Procedimientos
13. Es la lista de Se clasifican en:
argumentos que pasan
de un subprograma a ◦ Formales: Se
otro, o del programa denominan así la lista
principal a un de parámetros
subprograma. utilizados en la
Los parámetros pueden declaración del
pasar vacíos o pasar subprograma.
variables, constantes, ◦ Actuales: Se
expresiones, valores de denominan así la lista
funciones o nombres de de parámetros
utilizados en la
funciones o
llamada o invocación
procedimientos. del subprograma.
Parámetros
14. Los parámetros pueden ser: Los parámetros se pueden
pasar:
◦ De entrada: cuando ◦ Por Valor: Los parámetros
comunican valores al formales, reciben una copia de
procedimiento;
los parámetros actuales, por lo
◦ De salida: cuando envían tanto, los cambios que se
valores desde el procedimiento
produzcan en el subprograma
al programa que llama;
no afectan el valor de los
◦ De E/S: que sirve para parámetros actuales.
ambos propósitos
◦ Por referencia: Lo que se
pasa al subprograma es la
dirección de memoria del
parámetro actual, por lo tanto
puede ser accedido y
modificado durante la
ejecución del subprograma.
Parámetros
15. //declaración de //Definición de
Procedimiento: procedimiento:
f_suma (int, int); Int f_suma (int: x,y)
//Programa principal Inicio
e invocación de la Int: z = 0; x = 5; y = 3;
función: z = x + y;
Inicio Muestre “Suma uno es: “, z;
Int a, b, c = 0; Fin
Llamar Suma (2, b); P/E:
c = a + b; Suma uno es: 8
Suma dos es: 5
Muestre “Suma dos
es: “, c;
Fin
Ejemplo: paso de parámetros por
Valor
16. Ejemplo de paso de
parámetros por //Definición de
referencia: procedimiento:
//declaración de Int f_suma (int: x,y)
Procedimiento: Inicio
f_suma (int, int);
Int: z = 0; x = 5; y = 3;
//Programa
z = x + y;
principal e
Muestre “Suma uno es: “,
invocación de la
z;
función:
Inicio Fin
Int a, b, c = 0; P/E:
Llamar Suma (a, b); Suma uno es: 8
c = a + b; Suma dos es: 8
Muestre “Suma dos
es: “, c;
Fin
Ejemplo: paso de parámetros por
Referencia
17. Ingresar un número e imprimir su potencia, leída por el usuario.
Elaborar un programa que de acuerdo a un año dado calcule si es bisiesto o
no.
Dado el lado de un cuadrado calcular e imprimir su área.
Ingresar edad de tres personas e imprimir el promedio.
Ingresar referencia, valor de un artículo y de acuerdo a la cantidad comprada,
mostrar el valor a pagar incluyendo el IVA del 16%.
Suponga que un individuo desea invertir su capital en un banco y desea saber
cuánto dinero ganara después de un mes si el banco paga a razón de 2%
mensual.
Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus
ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de
comisiones por las tres ventas que realiza en el mes y el total que recibirá en
el mes tomando en cuenta su sueldo base y comisiones.
Una tienda ofrece un descuento del 15% sobre el total de la compra y un
cliente desea saber cuanto deberá pagar finalmente por su compra.
Dada una cantidad en pesos, obtener la equivalencia en dólares.
Dada una cantidad en Euros, obtener el valor en pesos y en dólares.
Ejercicios con Subprogramas -1
18. Un alumno desea saber cuál será su calificación final en la materia de Algoritmos.
Dicha calificación se compone de los siguientes porcentajes:
50% del promedio de sus tres calificaciones parciales.
25% de la calificación del examen final.
25% de la calificación de un trabajo final.
Calcular el número de pulsaciones que una persona debe tener por cada 10
segundos de ejercicio, si la fórmula es: num. pulsaciones = (220 - edad)/10
Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su
salario anterior.
El dueño de una tienda compra un artículo a un precio determinado. Obtener el
precio en que lo debe vender para obtener una ganancia del 30%.
Una persona sale de su casa a hacer un viaje en auto, hasta una ciudad distante a
80 kilómetros y regresa después de cinco horas, ¿Cual fue su velocidad si no se
detuvo?
Se leen los catetos de un triángulo rectángulo y hallar el valor de la hipotenusa H =
(a^2 + b^2)^(1/2).
Realice un procedimiento que permita intercambiar el valor de dos variables
Leer una cantidad que represente un valor en pulgadas y hallar su equivalente en
centímetros.
Determine la media de una lista de 10 medidas leídas.
Ejercicios con subprogramas -2