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
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
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
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
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()
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
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
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
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
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
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.
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
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());
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
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.
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.
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
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?
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?
Fundamentos de Programación - Franco Guamán 20
Preguntas
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

Programacion Modular

  • 1.
    Fundamentos de Programación M.Sc. FrancoGuamá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?
  • 20.
    Fundamentos de Programación- Franco Guamán 20 Preguntas
  • 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