3. Programación Modular
DIVIDE AND CONQUER
• Dividir problemas GRANDES (complejos) en problemas PEQUEÑOS (sencillos).
Optimización de las solución.
Top-dow Desing
• Diseño DESENDENTE.
DIVIDE Y VENCERAS
M
O
D
U
L
A
C
I Subproblema Subproblema Subproblema
O 1 2 3
N
4. Programación Modular
Subprogramas
• Un problema puede resolver descomponiéndolo en
subprogramas (programas mas pequeños), los cuales a su vez
pueden sucesivamente seguir desfragmentándose en
problemas más pequeños, hasta que estos sean solucionados.
DIVIDE Y VENCERAS
M
O
D
U
L
A
C
Subprograma Subprograma Subprograma
I
1 2 3
O
N
5. Programación Modular
Procedimientos
• Subprograma que realiza un tarea particular, consta de:
Cabecera, Lista de parámetros y Sección de declaración
de variables y la sección ejecutable o cuerpo del
procedimiento.
PROCEDURE nombre_procedimiento(parametros formales)
Declaracion de variales locales…..
Cuerpo del procedimiento….
FIN DEL PROCEDURE
6. Programación Modular
Funciones
• Subprograma que devuelve un único resultado o valor al programa
principal o a otro subprograma desde donde fue invocado o
llamado, tiene: cabecera, lista de parámetros, Sección de
declaración de variables y la sección ejecutable o cuerpo de la
función.
FUNCTION nombre_funcion(parametros formales)
Declaracion de variales locales…..
Cuerpo de la función….
RETORNAR VALOR
FIN DEL FUNCTION
7. Programación Modular
Para lograr la modularización de un solución se requieren de
procedimientos y/o funciones.
• Los Subprogramas (procedimientos o funciones) requieren comunicarse.
• Su via de comunicación es EL PASO DE PARAMETROS (por valor, por
referencia)
Parametros por valor
Subprograma1 Subprograma2
Parametros por referencia
8. Programación Modular
Parámetros por valor
• Son aquellos a los que luego de manipulos dentro de una función o
procedimiento, SU VALOR NO VARIA, mantiene el valor desde donde fue
llamado el subprograma.
ALGORITMO Test
Declaracion de variales locales…..
leer x
X=10
llamar Proced_A (x) X=10
escribir (x)
X=10
FIN
PROCEDURE Proced_A(E parametro X)
Declaracion de variales locales…..
X=20 X = 20
FIN DEL PROCEDURE
9. Programación Modular
Parámetros por referencia
• Son aquellos que al ser modificados dentro de una función o procedimiento,
guardan ese valor y lo mantienen continuando con la ejecución del
programa desde donde fue llamado.
ALGORITMO Test
Declaracion de variales locales…..
leer x
X=10
X=10
llamar Funct_A (x)
escribir (x)
X = 20
FIN
FUNCTION Funct_A(S parametro X)
Declaracion de variales locales…..
Conserva el valor de la X = 20 X = 20
Variable local del
Retornar
Programa principal.
FIN FUNCTION
10. Programación Modular
Variables locales
• Aquellas en las cuales su utilización será únicamente dentro del
subprograma, al finalizar el mismo, esta variable desaparecerá de la
memoria.
ALGORITMO Test
intNumero
Variable local del
intNumero <- 0
Programa principal
X=10
leer x
intNumero <- x + 1
intNumero
=11 llamar Funct_A (x)
escribir (intNumero)
intNumero
=11
FIN
FUNCTION Funct_A(S parametro X)
intNumero
intNumero <- 0
Variable local de la
Funcion
intNumero <- x * 2
Retornar
FIN FUNCTION
11. Programación Modular
Variables globales
• Su utilización podrá ser hecha en cualquier parte del programa,
sin necesidad de realizar nuevamente la declaración de ésta.
ALGORITMO Test
intNumero
Variable GLOBAL de
intNumero <- 0
TODA la solución
X=10
leer x
intNumero <- x + 1
intNumero
=11 llamar Funct_A (x)
escribir (intNumero)
intNumero
=20
FIN
FUNCTION Funct_A(S parametro X)
intNumero <- x * 2
Retornar
FIN FUNCTION
12. Programación Modular
Ejemplo programacion modular, paso de parametros por valor VS referencia, variables locales
VS globales y llamadas a pocedimientos y funciones.
Variables globales
Calculadora
ANÁLISIS Variables locales
El programa permitirá, sumar, restar, multiplicar y
dividir dos números
procedimiento sumar (E real: a, E real: b, S real: resultado)
DISEÑO var
algoritmo Calculadora real: respt
var Inicio
real: numero1, numero2, respuesta respt = a + b
inicio resultado = respt
escribir (“Deme dos numeros:”) Fin_procedimiento
leer (numero1, numero2)
llamar_a sumar(numero1, numero2, respuesta) Real : funcion sumar (E real: a, E real: b)
escribir (“La suma es:”, respuesta) var
real: respt
respuesta = 0 Inicio
respuesta = sumar (numero1, numero2) respt = a + b
escribir (“La suma es:”, respuesta) devolver (respt)
fin Fin_funcion
13. Referencias:
Bibliográficas
LUÍS, JOYANES AGUILAR. (2003): “Fundamentos de
Programación, Algoritmos, Estructuras de Datos y Objetos.”
Mc-Graw Hill. Madrid.
Fco. JAVIER, CEBALLOS S. (2003): “El lenguaje de
programación Visual Basic.NET”. Alfaomega Ra-Ma. Madrid.
Direcciones electrónicas
MSDN ONLINE: http://msdn.microsoft.com/es-
es/library/default.aspx
Otros medios
Microsoft Corporation (2008): Microsoft Document Explore
Version 8.0.50727.42, actualizado 06 de diciembre de 2007
(citado 25 de Marzo del 2009). Disponible a través de: MSDN
Library para Visual Studio 2005 (US).