Programacion Modular

21

Click here to load reader

Transcript of Programacion Modular

Page 1: Programacion Modular

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

Page 2: Programacion 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

Page 3: Programacion Modular

Fundamentos de Programación - Franco Guamán

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

Page 4: Programacion Modular

Fundamentos de Programación - Franco Guamán

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

Page 5: Programacion Modular

Fundamentos de Programación - Franco Guamán

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()

Page 6: Programacion Modular

Fundamentos de Programación - Franco Guamán

Subprogramas (funciones/procedimientos)• Pueden realizar las mismas acciones de un programa.

o Aceptar datoso 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

Page 7: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

Inicioinstrucción 1instrucción 2subprograma1()instrucción 3subprograma1()instrucción 4subprograma2()instrucción 5

Fin

Inicioinstrucción 1instrucción 2instrucción 3

Fin

Programa principal

Subprograma1

Pueden ser llamadas desde el programa principal, para luego devolver el control al lugar desde donde fue invocado

Page 8: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

Inicioinstrucción 1instrucción 2subprograma1()instrucción 3subprograma1()instrucción 4subprograma2()instrucción 5

Fin

Programa principal

Inicioinstrucción 1instrucción 2instrucción 3

Fin

Subprograma1

Pueden ser solicitados varias veces durante la ejecución de un programa

Page 9: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

Inicioinstrucción 1instrucción 2subprograma1()instrucción 3subprograma1()instrucción 4subprograma2()instrucción 5

Fin

Programa principal Inicioinstrucción 1subprograma 2.1()instrucción 3

Fin

Subprograma2

Inicioinstrucción 1instrucción 2instrucción 3

Fin

Subprograma 2.1Un subprograma a su vez puede solicitar el servicio de otros subprogramas

Page 10: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

Inicioinstrucción 1instrucción 2subprograma1()instrucción 3subprograma1()instrucción 4subprograma2()instrucción 5

Fin

Programa principal Inicioinstrucción 1subprograma 2.1()instrucción 3

Fin

Subprograma2

Page 11: Programacion Modular

Fundamentos de Programación - Franco Guamán

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.

Page 12: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

DECLARACIÓN DE FUNCIONES<tipo_de_resultado> funcion <nombre> (lista de parámetros)[declaraciones locales]Inicio

<acciones> //cuerpo de la funciónDevolver (<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

Page 13: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

INVOCACIÓN DE FUNCIONESDado 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());

Page 14: Programacion Modular

Fundamentos de Programación - Franco Guamán

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

Page 15: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

ÁMBITO DE LAS VARIABLESLOCALES:• 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.

Page 16: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

ÁMBITO DE LAS VARIABLESGLOBALES:• 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.

Page 17: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

ÁMBITO DE LAS VARIABLESPrograma DEMO

tipo X, X1, …

Procedimiento Atipo Y, Y1, …

.

.

.

.

Procedimiento Ctipo W, W1, …

.

.

.

.

Procedimiento Btipo Z, Z1, …

.

.

.

Ámbito de X

Ámbito de Y

Ámbito de W

Ámbito de Z

Ámbito de variables

Page 18: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

PASO DE PARÁMETROSPaso 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 SS 0Presentar suma(s)presentar s

fin

Leer numero1Leer numero2S numero1 + numero2Devolver S

Fin_función

principal función suma(entero S)entero 58

¿Cuál será el valor de S al momento de presentarlo?

Page 19: Programacion Modular

Fundamentos de Programación - Franco Guamán

Programación Modular

PASO DE PARÁMETROSPaso por referencia: Si éstos parámetros son modificados en un subprograma, al terminar, éste adoptará el nuevo valor asignado a él.

InicioEntero SS 0Presentar suma(s)presentar s

fin

Leer numero1Leer numero2S numero1 + numero2Devolver 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?

Page 20: Programacion Modular

Fundamentos de Programación - Franco Guamán

Preguntas

Page 21: Programacion Modular

Fundamentos de Programación - Franco Guamán

ReferenciasJoyanes 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