SlideShare a Scribd company logo
1 of 21
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

More Related Content

What's hot

Algoritmos y pseudocodigo
Algoritmos y pseudocodigoAlgoritmos y pseudocodigo
Algoritmos y pseudocodigomatteo_ibarguen
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)José Antonio Sandoval Acosta
 
Fundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadFundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadJosé Antonio Sandoval Acosta
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaJesús Navarro
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoGermán Robles Tandazo
 
Mapa conceptual 3 unidad calculo integral
Mapa conceptual 3 unidad calculo integralMapa conceptual 3 unidad calculo integral
Mapa conceptual 3 unidad calculo integralJose Miguel Andrade
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modularShadai Black
 
Mapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje CMapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje CCésar Ojeda
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Jorge Rodriguez
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Kiim Kerrigan
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigoBrivé Soluciones
 

What's hot (20)

Algoritmos y pseudocodigo
Algoritmos y pseudocodigoAlgoritmos y pseudocodigo
Algoritmos y pseudocodigo
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
Librerias de C++
Librerias de C++Librerias de C++
Librerias de C++
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
 
Fundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadFundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: Modularidad
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objeto
 
Mapa conceptual 3 unidad calculo integral
Mapa conceptual 3 unidad calculo integralMapa conceptual 3 unidad calculo integral
Mapa conceptual 3 unidad calculo integral
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modular
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Poo manual de ejercicios
Poo manual de ejercicios Poo manual de ejercicios
Poo manual de ejercicios
 
Mapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje CMapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje C
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
ESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADASESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADAS
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 

Similar to Programacion Modular

Guia programacion modular
Guia programacion modularGuia programacion modular
Guia programacion modularSol Hernández
 
Fundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFranco Guamán
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfEDWINERNESTOMADRIDME
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoMarilugosale
 
Apun9algol
Apun9algolApun9algol
Apun9algolpabesacv
 
Presentación programaciónestructurada
Presentación programaciónestructuradaPresentación programaciónestructurada
Presentación programaciónestructuradaAaronVega18
 
2.2. algoritmos definicion - metodología - ejemplos ing comp
2.2. algoritmos  definicion - metodología - ejemplos ing comp2.2. algoritmos  definicion - metodología - ejemplos ing comp
2.2. algoritmos definicion - metodología - ejemplos ing compMaría Sofía Molina Molina
 
Parametrizacion de bloques de funcion y funciones.pdf
Parametrizacion de bloques de funcion y funciones.pdfParametrizacion de bloques de funcion y funciones.pdf
Parametrizacion de bloques de funcion y funciones.pdfEradHernandez
 
Guia practica 1.0 2011
Guia practica 1.0  2011Guia practica 1.0  2011
Guia practica 1.0 2011puchichin666
 
Entornos de desarrollo: Desarrollo de Software
Entornos de desarrollo: Desarrollo de SoftwareEntornos de desarrollo: Desarrollo de Software
Entornos de desarrollo: Desarrollo de SoftwareIsabel Gómez
 

Similar to Programacion Modular (20)

Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Guia programacion modular
Guia programacion modularGuia programacion modular
Guia programacion modular
 
Tema5.pdf
Tema5.pdfTema5.pdf
Tema5.pdf
 
Fundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad I
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Apun9algol
Apun9algolApun9algol
Apun9algol
 
Presentación programaciónestructurada
Presentación programaciónestructuradaPresentación programaciónestructurada
Presentación programaciónestructurada
 
2.2. algoritmos definicion - metodología - ejemplos ing comp
2.2. algoritmos  definicion - metodología - ejemplos ing comp2.2. algoritmos  definicion - metodología - ejemplos ing comp
2.2. algoritmos definicion - metodología - ejemplos ing comp
 
Parametrizacion de bloques de funcion y funciones.pdf
Parametrizacion de bloques de funcion y funciones.pdfParametrizacion de bloques de funcion y funciones.pdf
Parametrizacion de bloques de funcion y funciones.pdf
 
Dpss u3 a2_alds
Dpss u3 a2_aldsDpss u3 a2_alds
Dpss u3 a2_alds
 
Java y conceptos de apoyo
Java y conceptos de apoyoJava y conceptos de apoyo
Java y conceptos de apoyo
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
 
Programación
ProgramaciónProgramación
Programación
 
Guia practica 1.0 2011
Guia practica 1.0  2011Guia practica 1.0  2011
Guia practica 1.0 2011
 
Entornos de desarrollo: Desarrollo de Software
Entornos de desarrollo: Desarrollo de SoftwareEntornos de desarrollo: Desarrollo de Software
Entornos de desarrollo: Desarrollo de Software
 
PROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADORPROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADOR
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 

More from Franco Guamán

Estructuras de datos grafos
Estructuras de datos grafosEstructuras de datos grafos
Estructuras de datos grafosFranco Guamán
 
Abb diferencias entre c++ y java
Abb diferencias entre c++ y javaAbb diferencias entre c++ y java
Abb diferencias entre c++ y javaFranco Guamán
 
Arbol binario de busqueda java
Arbol binario de busqueda   javaArbol binario de busqueda   java
Arbol binario de busqueda javaFranco Guamán
 
03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 dFranco Guamán
 
02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglosFranco Guamán
 
01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las edFranco Guamán
 
Uni4 estructuras-selectivas
Uni4 estructuras-selectivasUni4 estructuras-selectivas
Uni4 estructuras-selectivasFranco Guamán
 
Uni5 estructuras-repetitivas
Uni5 estructuras-repetitivasUni5 estructuras-repetitivas
Uni5 estructuras-repetitivasFranco Guamán
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contFranco Guamán
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un ProgramaFranco Guamán
 

More from Franco Guamán (11)

Estructuras de datos grafos
Estructuras de datos grafosEstructuras de datos grafos
Estructuras de datos grafos
 
Abb diferencias entre c++ y java
Abb diferencias entre c++ y javaAbb diferencias entre c++ y java
Abb diferencias entre c++ y java
 
Arbol binario de busqueda java
Arbol binario de busqueda   javaArbol binario de busqueda   java
Arbol binario de busqueda java
 
03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d
 
02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos
 
01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed
 
Uni6 a series
Uni6 a seriesUni6 a series
Uni6 a series
 
Uni4 estructuras-selectivas
Uni4 estructuras-selectivasUni4 estructuras-selectivas
Uni4 estructuras-selectivas
 
Uni5 estructuras-repetitivas
Uni5 estructuras-repetitivasUni5 estructuras-repetitivas
Uni5 estructuras-repetitivas
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-cont
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
 

Programacion Modular

  • 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?
  • 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