Clase Programación 9

74
Programación Clase 9. Programación Modular Prof. Gonzalo Müller [email protected] Facultad de Ingeniería Universidad Central de Venezuela Clase 9. Programación Modular

description

Clase 9 de Programación, Prof. Gonzalo Müller [email protected], Facultad de Ingeniería, UCV

Transcript of Clase Programación 9

Page 1: Clase Programación 9

ProgramaciónClase 9. Programación Modular

Prof. Gonzalo Müller [email protected]

Facultad de IngenieríaUniversidad Central de Venezuela

ProgramaciónClase 9. Programación Modular

Page 2: Clase Programación 9

Clase Anterior

� Algunas aplicaciones numéricas:

� Métodos Secuenciales� Sucesión, Sumatoria y Productoria.

� Estadística Descriptiva: Media, Varianza, Regresión.

� Integración: Suma de Riemann.

� Métodos Iterativos

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 2

� Métodos Iterativos� Solución de una ecuación f(x) = 0: Newton

� Métodos Evolutivos� Búsqueda del Máximo o Mínimo de f(x): 1 + 1.

� Métodos Iterativos – Reducción de Intervalos� Solución de una ecuación f(x) = 0: Bisección.

� Búsqueda del Máximo o Mínimo de f(x): Sección Dorada.

Page 3: Clase Programación 9

Programación Estructurada

Técnica de programación donde:

� El algoritmo tiene un solo final.

� Toda operación realizada por el algoritmo estádefinida en un solo bloque.

� Todo el algoritmo está construido utilizando las

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 3

� Todo el algoritmo está construido utilizando lasestructuras básicas:

� Secuencial.

� Selectiva.

� Repetitiva.

Page 4: Clase Programación 9

Programación Estructurada

Ejemplo: Algoritmos estructurados:

Leer A y B

Comienzo

Sumatoria

S = 0

k = 0

Leer N

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 4

A > BFV

B = A + B Escribir A

Escribir B

Fin

Leer N

S = S + k

k = k + 1

Mientras (k ≤ N)

Escribir S

FIN

Page 5: Clase Programación 9

Programación Estructurada

En la programación estructurada se ataca el problemautilizando un solo bloque.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 5

Page 6: Clase Programación 9

Programación Modular

Técnica de programación en la cual se descompone elproceso en pequeños módulos independientes.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 6

Page 7: Clase Programación 9

Programación Modular

Técnica de programación en la cual se descompone elproceso en pequeños módulos independientes.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 7

Divide y Vencerás

Page 8: Clase Programación 9

Módulos

Conjunto de sentencias que realizan una tarea concreta.

� Cada módulo se comporta como un subprograma:el cual recibe entradas, realiza un proceso y generasalidas.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 8

salidas.

MóduloEntradas Salidas

Las entradas recibe el nombre de parámetros

Page 9: Clase Programación 9

Módulos

Conjunto de sentencias que realizan una tarea concreta.

� Cada módulo se comporta como un subprograma:el cual recibe entradas, realiza un proceso y generasalidas.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 9

salidas.

MóduloParámetros Salidas

ResultadoValor utilizado dentro

del algoritmo

Valor utilizado fuera

del algoritmo

Page 10: Clase Programación 9

Módulos

…Resultado

Valor utilizado

dentro del algoritmo

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 10

Mientras (…)

FIN

Salidas

dentro del algoritmo

Valor utilizado

fuera del algoritmo

Page 11: Clase Programación 9

Clases de Módulos

� Reciben parámetros y retorna un resultado.

MóduloParámetros

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 11

Ejemplo:

� sqrt(x): recibe un número x y devuelve el resultado

de x1/2

� pow(x, y): recibe dos número y devuelve xy

Resultado

Page 12: Clase Programación 9

Clases de Módulos

� No reciben parámetros y retorna un resultado.

Módulo

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 12

Ejemplo:

� rand(): devuelve un número aleatorio entre 0 y32767.

� random(): devuelve un número aleatorio entre 0 y 1.

Resultado

Page 13: Clase Programación 9

Clases de Módulos

� Reciben parámetros y no retorna resultado, pero cumplen un propósito(puede generar salidas).

MóduloParámetros Salidas

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 13

Page 14: Clase Programación 9

Clases de Módulos

� Reciben parámetros y no retorna resultado, pero cumplen un propósito(puede generar salidas).

MóduloParámetros Salidas

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 14

Ejemplo:

� write(texto): Escribe un texto en salida.

write(‘C++ #1’)

C++ #1

Salida

Page 15: Clase Programación 9

Clases de Módulos

� No reciben parámetros y no retorna resultado, pero cumplen un propósito(puede generar salidas).

MóduloSalidas

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 15

Page 16: Clase Programación 9

Clases de Módulos

� No reciben parámetros y no retorna resultado, pero cumplen un propósito(puede generar salidas).

MóduloSalidas

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 16

Ejemplo:

� version(): datos sobre versión de programa.

version()

COLARA

versión 1.101

Salida

Page 17: Clase Programación 9

Tipos de Módulos

� Se agrupan en:

� Funciones: realiza una operación y retorna elresultado de la misma.

Ejemplo: rand(), sqrt(x), etc.

� Subrutinas o procedimientos: realiza una tarea y

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 17

� Subrutinas o procedimientos: realiza una tarea yregresa a la instrucción siguiente a su llamada, esdecir, no generan un resultado.

Ejemplo: write(), version(), etc.

Ambos pueden o no recibir parámetros.

Page 18: Clase Programación 9

Programación Modular

Algoritmo

� Existe un bloque principal en el cual se encuentranlas llamadas a los módulos.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 18

Page 19: Clase Programación 9

Programación Modular

Algoritmo

� Existe un bloque principal en el cual se encuentranlas llamadas a los módulos.

� El algoritmo estará construido con:

� Estructuras:

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 19

� Estructuras:

� Secuenciales.

� Selectivas.

� Repetitivas.

Page 20: Clase Programación 9

Programación Modular

Algoritmo

� Existe un bloque principal en el cual se encuentranlas llamadas a los módulos.

� El algoritmo estará construido con:

� Estructuras:

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 20

� Estructuras:

� Secuenciales.

� Selectivas.

� Repetitivas.

� Dentro de las estructuras existirán:

� Llamadas a módulos previamente definidos.

Page 21: Clase Programación 9

Programación Modular

Estructuras

Secuenciales, Bloque Principal

Nombre

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 21

Secuenciales,

Selectivas, Repetitivas

y Llamadas a módulos.

Bloque Principal …

Mientras (…)

FIN

Ni el bloque principal ni los módulos debe

ocupar más de 20 líneas

Page 22: Clase Programación 9

Representación de Algoritmos Modulares

� Definición de una subrutina.

PC

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

{

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 22

}

� Sin parámetros:

Nombre()

{

}

Page 23: Clase Programación 9

Representación de Algoritmos Modulares

� Definición de una subrutina.

PC

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

{

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 23

}

� Sin parámetros:

Nombre()

{

}

← Los paréntesis permiten

diferenciar un módulo del

bloque principal

Page 24: Clase Programación 9

Representación de Algoritmos Modulares

DRE

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 24

� Sin parámetros:

Fin

Nombre()

Fin

Page 25: Clase Programación 9

Representación de Algoritmos Modulares

DF

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 25

� Sin parámetros:Fin

Nombre()

Fin

Page 26: Clase Programación 9

Representación de Algoritmos Modulares

Ejemplo: Construir una subrutina para presentar en lasalida el máximo de dos números.

Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 26

Page 27: Clase Programación 9

Representación de Algoritmos Modulares

� Definición de una función.

PC

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

{

retorna valor

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 27

retorna valor

}

� Sin parámetros:

Nombre()

{

retorna valor

}

Page 28: Clase Programación 9

Representación de Algoritmos Modulares

DRE

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 28

� Sin parámetros:

retorna valor

Nombre()

retorna valor

Page 29: Clase Programación 9

Representación de Algoritmos Modulares

DF

� Con parámetros:

Nombre(parámetro1, parámetro2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 29

� Sin parámetros:retorna valor

Nombre()

retorna valor

Page 30: Clase Programación 9

Representación de Algoritmos Modulares

Ejemplo: Construir una función para calcular elmáximo de dos números.

Fase 1: Diseño y Análisis: DES, DRE ó DF, LV.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 30

Page 31: Clase Programación 9

Representación de Algoritmos Modulares

� Llamada a una subrutina.

PC

� Con argumentos:

Nombre(argumento1, argumento2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 31

Nombre(argumento1, argumento2, …)

� Sin argumentos:

Nombre()

Page 32: Clase Programación 9

Representación de Algoritmos Modulares

DRE

� Con argumentos:

Nombre(argumento1,argumento2,…)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 32

� Sin argumentos:

Nombre(argumento1,argumento2,…)

Nombre()

Page 33: Clase Programación 9

Representación de Algoritmos Modulares

DF

� Con argumentos:

Nombre(argumento1, argumento2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 33

� Sin argumentos:

Nombre(argumento1, argumento2, …)

Nombre()

Page 34: Clase Programación 9

Representación de Algoritmos Modulares

� Llamada a una función.

PC

� Con argumentos:

variable = Nombre(argumento1, argumento2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 34

variable = Nombre(argumento1, argumento2, …)

� Sin argumentos:

Escribir Nombre()

Page 35: Clase Programación 9

Representación de Algoritmos Modulares

DRE

� Con argumentos:

Mientras (Nombre(argumento1, …) ==…)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 35

� Sin argumentos:

Variable = Nombre()

Mientras (Nombre(argumento1, …) ==…)

Page 36: Clase Programación 9

Representación de Algoritmos Modulares

DF

� Con argumentos:

Escribir Nombre(argumento1, argumento2, …)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 36

� Sin argumentos:

variable = Nombre()

Page 37: Clase Programación 9

Representación de Algoritmos Modulares

Ejemplo: Construir dos algoritmos para calcular elmáximo de dos números que utilicen los módulosdesarrollados previamente.

Fase 1: Diseño y Análisis: DES, DRE ó DF y LVdel Bloque Principal.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 37

Page 38: Clase Programación 9

Corrida en frío de Algoritmo Principal

Dato

1…

Dato

N

Módulo1

(…)…

MóduloZ

(…)

Condición

1…

Condición

MSalida

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 38

… … … … … … … … …

Variables Llamadas Condiciones

Page 39: Clase Programación 9

Corrida en frío de Subrutinas

Parámetro

1…

Parámetro

W

Dato

1…

Dato

N

Condición

1…

Condición

MSalida

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 39

… … … … … … … … … …

Parámetros Variables Condiciones

Page 40: Clase Programación 9

Corrida en frío de Funciones

Parámetro

1…

Parámetro

W

Dato

1…

Dato

N

Condición

1…

Condición

MRetorno

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 40

… … … … … … … … … …

Parámetros Variables Condiciones

Page 41: Clase Programación 9

Corrida en frío de Módulos

Ejemplo: Realizar una corrida en frío para el algoritmoprincipal y módulos del ejemplo anterior.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 41

Page 42: Clase Programación 9

Programación Modular

Llamada

Nombre(argumento1,argumento2,…)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 42

DefiniciónNombre(parámetro1, parámetro2, …)

Fin

Page 43: Clase Programación 9

Programación Modular

Llamada

Asigna el argumento al parámetro antes de continuar la ejecución:

1

Nombre(argumento1,argumento2,…)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 43

continuar la ejecución:

parametro1 = argumento1

Nombre(parámetro1, parámetro2, …)

Fin

Page 44: Clase Programación 9

Programación Modular

Nombre(argumento1,argumento2,…)

Continua la ejecución el

2

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 44

Nombre(parámetro1, parámetro2, …)

Fin

Continua la ejecución el

módulo correspondiente

Page 45: Clase Programación 9

Programación Modular

Nombre(argumento1,argumento2,…)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 45

Nombre(parámetro1, parámetro2, …)

Fin

Ejecuta todas las

sentencias del módulo

3

Page 46: Clase Programación 9

Programación Modular

Nombre(argumento1,argumento2,…)

Regresa y continua la

4

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 46

Nombre(parámetro1, parámetro2, …)

Fin

Regresa y continua la

ejecución el algoritmo

principal

Page 47: Clase Programación 9

Metodología de la Programación Modular

� Diseño Modular del algoritmo

� Estructurar la resolución del problema pormódulos.

� Cada módulo se encarga de resolver una parcialidaddel problema.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 47

del problema.

� Cada módulo debe realizar una función especifica ydebe ser sencillo e independiente.

Divide y Vencerás

Page 48: Clase Programación 9

Metodología de la Programación Modular

� Se debe realizar una descomposición jerárquica,utilizando el diseño top-down o diagramas deestructuras.

� Diagramas Top-Down: Son una representacióngráfica de la jerarquía existente entre los módulos.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 48

gráfica de la jerarquía existente entre los módulos.

� Cada módulo se representa con un rectángulo.

� Existen dos tipos de módulos:

� Primitivos o Terminales: Es independiente.

� No Primitivos: Requiere de otros módulos.

Page 49: Clase Programación 9

Metodología de la Programación Modular

� Los módulos debe ser organizados de tal maneraque la secuencia de ejecución de los mismo sea deizquierda a derecha.

1. Se desarrolla un bosquejo inicial.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 49

1. Se desarrolla un bosquejo inicial.

Programa

Inicialización Entrada Proceso Salida

Secuencia de Ejecución

Módulo Primitivo

Módulo No Primitivo

Page 50: Clase Programación 9

Metodología de la Programación Modular

� Cuando la descripción de la tarea realizada por unmódulo no es lo suficientemente sencilla se debesubdividir en varios módulos.

� Se debe subdividir en al menos dos módulos.

2. Se refina paso a paso de forma de enriquecer la

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 50

2. Se refina paso a paso de forma de enriquecer lajerarquía inicial con niveles adicionales.

Programa

Inicialización Entrada Proceso Salida

Validación Tarea 1Lectura Tarea 2

Page 51: Clase Programación 9

Metodología de la Programación Modular

Programa

Inicialización Entrada Proceso Salida

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 51

Bottom-Up

Validación Tarea 1Lectura Tarea 2

Page 52: Clase Programación 9

Metodología de la Programación Modular

Ejemplo: Se requiere un programa para obtener lasraíces de una ecuación cuadrática. Realizar el diseño,utilizando una descomposición jerárquica.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 52

Page 53: Clase Programación 9

Metodología de la Programación Modular

� Luego de realizar el diagrama Top-Down, se continuacon la construcción del algoritmo el cual secomplementa con dos nuevos pasos muy importantes:

� Definición de módulos: se desarrolla el algoritmoque define a la subrutina.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 53

que define a la subrutina.

� Cada módulo dispone de su propio diagrama.

� Llamada a los módulos: Se pone en ejecución elmodulo previamente definida donde sea necesario.

Page 54: Clase Programación 9

Programación Modular

� Algunos módulos clásicos son:

� Módulos de entrada de datos.

� Módulos de proceso.

� Módulos de presentación de resultados.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 54

� Los módulos se caracterizan por su:

� Acoplamiento.

� Cohesión.

Page 55: Clase Programación 9

Acoplamiento

Describe la dependencia de un módulo respecto de otro.

� Acoplamiento de zonas: Los módulos manejan losdatos de entradas y de salida a través de variablescomunes, llamadas variables globales.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 55

Datos

(Variables

Globales)

Acoplamiento

de Alto Nivel

Módulo A Módulo B

comunes, llamadas variables globales.

Diagrama de

acoplamientoEfecto Colateral

Page 56: Clase Programación 9

Acoplamiento

� Acoplamiento de datos: Los módulos manejan losdatos de entradas y de salida haciendo uso deparámetros.

Acoplamiento Módulo A Módulo B

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 56

de Bajo NivelMódulo A Módulo B

Datos(Parámetros)

Datos(Parámetros)

Un buen programa contiene módulos con

acoplamiento de bajo nivel, ya que al

realizar modificaciones no es necesario

preocuparse por el impacto en los otros

módulos.

Page 57: Clase Programación 9

Cohesión

Establece como se interrelacionan el conjunto de sentencias y datos que forman al módulo.

� Cohesión funcional: Todas las sentencias se destinan

a llevar a cabo una y solo una sola tarea.

Cohesión de Alto Nivel

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 57

a llevar a cabo una y solo una sola tarea.

� Cohesión secuencial: Los resultados generados por

una sentencia son utilizados en la siguiente.

� Cohesión en datos: Las sentencias realizan varias

tareas a las vez utilizando los mismo datos.

Nivel

Page 58: Clase Programación 9

Cohesión

� Cohesión temporal: Las sentencias realizan varias

tareas sin importar el orden con distintos datos cuyo

significado es el mismo. Por ejemplo: Módulo de

inicialización.

� Cohesión lógica: Las sentencias realizan una de

varias tareas a partir de datos de control. PorCohesión

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 58

varias tareas a partir de datos de control. Por

ejemplo: Módulo de selección de un menú.

� Cohesión coincidental: Las sentencias realizan varias

tareas sin relación alguna.

Cohesión de Bajo Nivel

Page 59: Clase Programación 9

Programación Modular

Un buen programa contiene módulos con cohesión de

alto nivel, donde sus sentencias y datos se interrelaciona

fuertemente entre sí y no depende de otros módulos, ya

que es más sencillo realizar modificaciones cuando éstos

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 59

que es más sencillo realizar modificaciones cuando éstos

se destina a realizar funciones especifica.

Un módulo debe tener una o pocas responsabilidades de

lo contrario debería dividirse en varios para facilitar una

fuerte cohesión.

Page 60: Clase Programación 9

Acoplamiento de datos básico

El bloque principal se construye solo con los bloquesterminales del diagrama Top-Down y módulos solodeben poseer parámetros de entrada.

ProgramaBloque Principal

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 60

Inicialización Entrada Proceso Salida

Validación Tarea 1Lectura Tarea 2

Bloques Terminales

Page 61: Clase Programación 9

Acoplamiento de datos básico

El bloque principal se construye solo con los bloquesterminales del diagrama Top-Down y módulos solodeben poseer parámetros de entrada.

ProgramaBloque Principal

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 61

Inicialización Salida

Validación Tarea 1Lectura Tarea 2

Bloques Terminales

Page 62: Clase Programación 9

Acoplamiento de datos básico

� Subrutinas:

� Pueden recibir Valores o Parámetros de Entrada.

� No retorna resultado, pero realizar una operacióndada.

� Utilizadas usualmente para presentación de datos en

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 62

� Utilizadas usualmente para presentación de datos en

pantalla.

� Funciones:

� Pueden recibir Valores o Parámetros de Entrada.

� Retorna 1 resultado.

1

Page 63: Clase Programación 9

Acoplamiento de datos básico

Ejemplo: Construir el algoritmo modular conacoplamiento de datos básico para obtener las raícesde una ecuación cuadrática.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 63

Page 64: Clase Programación 9

Metodología de la Programación Modular

� Tabla de Módulos: Una vez desarrollados losalgoritmos de todos los módulos es de utilidad para laposterior implementación en el lenguaje construir unatabla donde se listen todos los módulos, sus tipos yparámetros.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 64

Modulo Parámetros Retorno Tipo

Nombre del

módulo

Lista de

parámetros

Valor

retornado

Subrutina o

Función

Page 65: Clase Programación 9

Metodología de la Programación Modular

Ejemplo: Construir la tabla de módulos del algoritmoanterior.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 65

Page 66: Clase Programación 9

Programación Modular

� Reutilización: Separa en un módulos los procesos quese repita más de una vez el programa.

� Disminuye el tamaño del programa.

Ejemplo: La lectura de un punto (X, Y)

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 66

Page 67: Clase Programación 9

Programación Modular

� Reutilización: Separa en un módulos los procesos quese repita más de una vez el programa.

� Disminuye el tamaño del programa.

Ejemplo: La lectura de un punto (X, Y)

� Facilita las modificaciones y localización de errores: Se

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 67

� Facilita las modificaciones y localización de errores: Secomprueba o modifica de forma individual cada unode los módulos.

Page 68: Clase Programación 9

Programación Modular

� Reutilización: Separa en un módulos los procesos quese repita más de una vez el programa.

� Disminuye el tamaño del programa.

Ejemplo: La lectura de un punto (X, Y)

� Facilita las modificaciones y localización de errores: Se

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 68

� Facilita las modificaciones y localización de errores: Se comprueba o modifica de forma individual cada uno de los módulos.

� Reduce el tiempo de desarrollo: Se reparte laconstrucción de los módulos entre diferentes equiposde trabajo.

Page 69: Clase Programación 9

Ejercicios

a) Definir un módulo para:

1) Establecer el mínimo de dos valores.

2) Determinar la distancia entre 2 maquinas.

3) Calcular f(x) = sen(2*x)+x4.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 69

3) Calcular f(x) = sen(2*x)+x4.

4) Determinar si un número entero es par.

5) Establecer el signo de un valor (-1, 0, 1).

Fase 1: Diseño y Análisis: DES, DRE ó DF, LV yCF del Módulo.

Page 70: Clase Programación 9

Ejercicios

b) Partiendo de los módulos creados

anteriormente construir un algoritmo modular para:

1) Establecer el menor de 3 valores.

2) Determinar las distancias entre 3 maquinas.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 70

2) Determinar las distancias entre 3 maquinas.

3) Calcular f(x) = sen(2*x)+x4 para N puntos.

4) Contar la cantidad de números pares de N datos.

5) Establecer si 2 valores tienen el mismo signo.

Fase 1: Diseño y Análisis: DES, DRE ó DF, LV yCF del Bloque Principal.

Page 71: Clase Programación 9

Ejercicios

c) Construir un algoritmo modular para:

1) Calcular el factorial de N números.

2) Dado un conjunto de N números, establecercuales son números compuestos.

3) Promediar los pares y promediar los impares delos números entre A y B.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 71

los números entre A y B.

4) Dado N intervalos, calcular la sumatoria de losnúmeros que contiene cada intervalo.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM.

DRE ó DF, LV y CF del Bloque Principal.

Page 72: Clase Programación 9

Ejercicios

c) Construir un algoritmo modular para:

5) Dado un conjunto de puntos en R2 por el usuariodeterminar cuales se encuentra por encima, pordebajo y sobre una recta dada por el usuario.

6) Encontrar por Newton 1 solución para f(x) = 0.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 72

7) Encontrar 1 Mínimo de f(x) por 1+1.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM.

DRE ó DF, LV y CF del Bloque Principal.

Page 73: Clase Programación 9

Resumen

� Programación estructurada.

� Programación modular.

� Algoritmo: Bloque principal, llamadas, 20 líneas.

� Módulos.

� Clases.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 73

� Clases.

� Tipos: Subrutinas y Funciones.

� Representación de Algoritmos Modulares

� Definición: subrutinas, funciones.

� Llamada: subrutinas, funciones.

Page 74: Clase Programación 9

Resumen

� Metodología de la Programación Modular

� Diseño Modular: Diagrama Top-Down.

� DRE, DF, PC y CF.

� Tabla de Módulos.

� Características: Acoplamiento y Cohesión.

Programación – Prof. Gonzalo Müller – Clase 9 – GM - 74

� Características: Acoplamiento y Cohesión.

� Acoplamiento de datos básico.

� Solo bloques terminales del DTD.

� Subrutinas: No generan resultado.

� Funciones: Generan 1 resultado.

� Beneficios: reutilización, cambios, errores y tiempo.