1. Fundamentos de
Programación
M.Sc. Franco Guamán B.
Universidad Técnica Particular de Loja
Departamento de Ciencias de la Computación y
Electrónica
PROGRAMACIÓN MODULAR
2. Contenidos
Ventajas
Propósito
Características generales
Subprogramas (funciones y procedimientos)
Funciones
Procedimientos (Subrutinas)
Ámbito de variables
Paso de parámetros
Fundamentos de Programación - Franco Guamán 2
3. Fundamentos de Programación - Franco Guamán 3
Ventajas
• Mayor claridad para el desarrollo de algoritmos
• Desarrollo de programas con mayor complejidad
• Utilización de herramientas adicionales
• Nuevos enfoque como la Programación Orientada a
Objetos (OOP)
Programación Modular
4. Fundamentos de Programación - Franco Guamán 4
Propósito
• Facilitar la comprensión del diseño modular para lograr
el desarrollo de programas complejos de manera
sencilla permitiendo la reutilización de fragmentos de un
programa.
Programación Modular
5. Fundamentos de Programación - Franco Guamán 5
Características generales
• Divide y vencerás
• Diseño descendente (Top-down)
• Partes son independientes entre si
Programación Modular
Main Program
Subprogram3()Subprogram1() Subprogram2()
6. Fundamentos de Programación - Franco Guamán 6
Subprogramas (funciones/procedimientos)
• Pueden realizar las mismas acciones de un programa.
o Aceptar datos
o Realizar cálculos (ejecutar instrucciones)
o Devolver resultados
• Son utilizados para un propósito específico
• Es llamado o invocado desde un programa principal, ejecuta
una tarea y devuelve el control al lugar desde donde fue
llamado.
• Un subprograma puede a su vez llamar a sus propios
subprogramas.
Programación Modular
7. Fundamentos de Programación - Franco Guamán 7
Programación Modular
Inicio
instrucción 1
instrucción 2
subprograma1()
instrucción 3
subprograma1()
instrucción 4
subprograma2()
instrucción 5
Fin
Inicio
instrucción 1
instrucción 2
instrucción 3
Fin
Programa principal
Subprograma1
Pueden ser llamadas desde el
programa principal, para luego
devolver el control al lugar
desde donde fue invocado
8. Fundamentos de Programación - Franco Guamán 8
Programación Modular
Inicio
instrucción 1
instrucción 2
subprograma1()
instrucción 3
subprograma1()
instrucción 4
subprograma2()
instrucción 5
Fin
Programa principal
Inicio
instrucción 1
instrucción 2
instrucción 3
Fin
Subprograma1
Pueden ser solicitados
varias veces durante la
ejecución de un
programa
9. Fundamentos de Programación - Franco Guamán 9
Programación Modular
Inicio
instrucción 1
instrucción 2
subprograma1()
instrucción 3
subprograma1()
instrucción 4
subprograma2()
instrucción 5
Fin
Programa principal Inicio
instrucción 1
subprograma 2.1()
instrucción 3
Fin
Subprograma2
Inicio
instrucción 1
instrucción 2
instrucción 3
Fin
Subprograma 2.1
Un subprograma a
su vez puede
solicitar el servicio
de otros
subprogramas
10. Fundamentos de Programación - Franco Guamán 10
Programación Modular
Inicio
instrucción 1
instrucción 2
subprograma1()
instrucción 3
subprograma1()
instrucción 4
subprograma2()
instrucción 5
Fin
Programa principal Inicio
instrucción 1
subprograma 2.1()
instrucción 3
Fin
Subprograma2
11. Fundamentos de Programación - Franco Guamán 11
Programación Modular
FUNCIONES
• Reciben uno a más parámetros, los procesan y
devuelven un único resultado.
TIPOS:
Internas. Incorporadas al
sistema.
Externas. Creadas por el
usuario.
12. Fundamentos de Programación - Franco Guamán 12
Programación Modular
DECLARACIÓN DE FUNCIONES
<tipo_de_resultado> funcion <nombre> (lista de parámetros)
[declaraciones locales]
Inicio
<acciones> //cuerpo de la función
Devolver (<expresion>)
Fin_funcion
int suma (int num1, int num2){
int resp;
resp = num1 + num2;
return resp:
}
Declaración de
variables
Tipo de resultado Lista de
parámetros
cabecera
Valor
devuelto
13. Fundamentos de Programación - Franco Guamán 13
Programación Modular
INVOCACIÓN DE FUNCIONES
Dado que una función necesariamente debe devolver un valor, debe
ser invocado desde un lugar en donde tal valor pueda ser evaluado o
almacenado ej:
• Asignación a una variable:
a = nombre_funcion();
• Como parte de una sentencia de control:
If (nombre_funcion() == ?){
Instrucciones
}
• Como parte de una expresión:
printf(‘Resultado igual a : ’+ nombre_funcion());
14. Fundamentos de Programación - Franco Guamán 14
Programación Modular
PROCEDIMIENTOS (SUBRUTINAS)
• Pueden o no devolver valores.
• Ejecutan un proceso específico.
• Su invocación se realiza directamente, ej:
nombre_procedimiento();
• Declaración:
procedimiento <nombre> ([lista de parámetros])
Inicio
<acciones>
Fin_procedimiento
15. Fundamentos de Programación - Franco Guamán 15
Programación Modular
ÁMBITO DE LAS VARIABLES
LOCALES:
• Declaradas o definidas dentro de un subprograma.
• Es distinta a las variables con el mismo nombre declaradas en
cualquier parte del programa principal u otro subprograma.
• El espacio de memoria vinculado a ellas es liberado al terminar la
ejecución del subprograma y devolver el control al programa que lo
solicitó.
• Su área de acción es solamente dentro del subprograma que la
creo.
• No es accesible desde ningún otro subprograma.
16. Fundamentos de Programación - Franco Guamán 16
Programación Modular
ÁMBITO DE LAS VARIABLES
GLOBALES:
• Declaradas o definidas en el programa principal, del que dependen
todos los subprogramas.
• Pueden compartir información de diferentes subprogramas.
• Su área de acción es en todo el programa.
• Pueden ser accesibles desde los subprogramas.
• El espacio de memoria vinculado a ellas solamente se libera
cuando terminamos la ejecución del programa.
17. Fundamentos de Programación - Franco Guamán 17
Programación Modular
ÁMBITO DE LAS VARIABLES
Programa DEMO
tipo X, X1, …
Procedimiento A
tipo Y, Y1, …
.
.
.
.
Procedimiento C
tipo W, W1, …
.
.
.
.
Procedimiento B
tipo Z, Z1, …
.
.
.
Ámbito de X
Ámbito de Y
Ámbito de WÁmbito de Z
Ámbito de variables
18. Fundamentos de Programación - Franco Guamán 18
Programación Modular
PASO DE PARÁMETROS
Paso por valor: Si éstos parámetros son modificados
dentro de un subprograma, al terminar el mismo aún
mantendrá el valor original con el que llegó.
Inicio
Entero S
S 0
Presentar suma(s)
presentar s
fin
Leer numero1
Leer numero2
S numero1 + numero2
Devolver S
Fin_función
principal función suma(entero S)entero
5
8
¿Cuál será el valor de S al momento de presentarlo?
19. Fundamentos de Programación - Franco Guamán 19
Programación Modular
PASO DE PARÁMETROS
Paso por referencia: Si éstos parámetros son modificados
en un subprograma, al terminar, éste adoptará el nuevo
valor asignado a él.
Inicio
Entero S
S 0
Presentar suma(s)
presentar s
fin
Leer numero1
Leer numero2
S numero1 + numero2
Devolver S
Fin_función
principal función suma(entero var S)entero
5
8
¿Cuál será el valor de S al momento de presentarlo?
21. Fundamentos de Programación - Franco Guamán 21
Referencias
Joyanes A. L. (01-may-2008). «Fundamentos de Programación. Algoritmos, estructuras
de datos y objetos». Cuarta Edición. México. Mc Graw Hill.
Celdo. A. (02-feb-2013). «Funciones y Procedimientos». Recuperado el 12 de junio de
2015, de Slideshare: http://es.slideshare.net/andersonceldo/funciones-y-
procedimientos-16315275?qid=71c4930f-3890-4f11-9568-
b9b9ed086a7c&v=default&b=&from_search=7