Académique Documents
Professionnel Documents
Culture Documents
Clase Anterior
Algunas aplicaciones numricas: Mtodos Secuenciales
Sucesin, Sumatoria y Productoria. Estadstica Descriptiva: Media, Varianza, Regresin. Integracin: Suma de Riemann.
Mtodos Iterativos
Solucin de una ecuacin f(x) = 0: Newton
Mtodos Evolutivos
Bsqueda del Mximo o Mnimo de f(x): 1 + 1.
Programacin Estructurada
Tcnica de programacin donde: El algoritmo tiene un solo final. Toda operacin realizada por el algoritmo est definida en un solo bloque. Todo el algoritmo est construido utilizando las estructuras bsicas:
Secuencial. Selectiva. Repetitiva.
Programacin Estructurada
Ejemplo: Algoritmos estructurados:
Sumatoria S=0 k=0 Leer N S=S+k k=k+1 Mientras (k N) Escribir S
Fin V Comienzo
Leer A y B A>B
F
B=A+B Escribir B
Escribir A
FIN
Programacin Prof. Gonzalo Mller Clase 9 GM - 4
Programacin Estructurada
En la programacin estructurada se ataca el problema utilizando un solo bloque.
Programacin Modular
Tcnica de programacin en la cual se descompone el proceso en pequeos mdulos independientes.
Programacin Modular
Tcnica de programacin en la cual se descompone el proceso en pequeos mdulos independientes.
Divide y Vencers
Programacin Prof. Gonzalo Mller Clase 9 GM - 7
Mdulos
Conjunto de sentencias que realizan una tarea concreta. Cada mdulo se comporta como un subprograma: el cual recibe entradas, realiza un proceso y genera salidas.
Entradas
Mdulo
Salidas
Mdulos
Conjunto de sentencias que realizan una tarea concreta. Cada mdulo se comporta como un subprograma: el cual recibe entradas, realiza un proceso y genera salidas.
Parmetros
Mdulo
Salidas
Valor utilizado fuera del algoritmo
Resultado
Valor utilizado dentro del algoritmo
Programacin Prof. Gonzalo Mller Clase 9 GM - 9
Mdulos
Resultado
Valor utilizado dentro del algoritmo
Mientras ()
Salidas
FIN
Clases de Mdulos
Reciben parmetros y retorna un resultado.
Mdulo
Parmetros
Resultado
Ejemplo:
sqrt(x): recibe un nmero x y devuelve el resultado de x1/2 pow(x, y): recibe dos nmero y devuelve xy
Programacin Prof. Gonzalo Mller Clase 9 GM - 11
Clases de Mdulos
No reciben parmetros y retorna un resultado.
Mdulo
Resultado
Ejemplo:
rand(): devuelve un nmero aleatorio entre 0 y 32767. random(): devuelve un nmero aleatorio entre 0 y 1.
Programacin Prof. Gonzalo Mller Clase 9 GM - 12
Clases de Mdulos
Reciben parmetros y no retorna resultado, pero cumplen un propsito(puede generar salidas).
Parmetros Mdulo Salidas
Clases de Mdulos
Reciben parmetros y no retorna resultado, pero cumplen un propsito(puede generar salidas).
Parmetros Mdulo Salidas
Ejemplo:
write(texto): Escribe un texto en salida.
Salida C++ #1
write(C++
#1)
Programacin Prof. Gonzalo Mller Clase 9 GM - 14
Clases de Mdulos
No reciben parmetros y no retorna resultado, pero cumplen un propsito(puede generar salidas).
Mdulo Salidas
Clases de Mdulos
No reciben parmetros y no retorna resultado, pero cumplen un propsito(puede generar salidas).
Mdulo Salidas
Ejemplo:
version(): datos sobre versin de programa.
Salida COLARA versin 1.101
version()
Tipos de Mdulos
Se agrupan en: Funciones: realiza una operacin y retorna el resultado de la misma.
Ejemplo: rand(), sqrt(x), etc.
Subrutinas o procedimientos: realiza una tarea y regresa a la instruccin siguiente a su llamada, es decir, no generan un resultado.
Ejemplo: write(), version(), etc.
Programacin Modular
Algoritmo Existe un bloque principal en el cual se encuentran las llamadas a los mdulos.
Programacin Modular
Algoritmo Existe un bloque principal en el cual se encuentran las llamadas a los mdulos. El algoritmo estar construido con:
Estructuras:
Secuenciales. Selectivas. Repetitivas.
Programacin Modular
Algoritmo Existe un bloque principal en el cual se encuentran las llamadas a los mdulos. El algoritmo estar construido con:
Estructuras:
Secuenciales. Selectivas. Repetitivas.
Programacin Modular
Nombre
Bloque Principal
Mientras () FIN
Sin parmetros:
Nombre() { }
Programacin Prof. Gonzalo Mller Clase 9 GM - 22
Sin parmetros:
Nombre() Los parntesis permiten diferenciar un mdulo del { bloque principal }
Programacin Prof. Gonzalo Mller Clase 9 GM - 23
Sin parmetros:
Nombre() Fin
Programacin Prof. Gonzalo Mller Clase 9 GM - 24
Fin
Sin parmetros:
Nombre()
Fin
Programacin Prof. Gonzalo Mller Clase 9 GM - 25
Sin parmetros:
Nombre() { retorna valor }
Programacin Prof. Gonzalo Mller Clase 9 GM - 27
Sin parmetros:
Nombre() retorna valor
Programacin Prof. Gonzalo Mller Clase 9 GM - 28
retorna valor
Sin parmetros:
Nombre()
retorna valor
Programacin Prof. Gonzalo Mller Clase 9 GM - 29
Sin argumentos:
Nombre()
Programacin Prof. Gonzalo Mller Clase 9 GM - 31
Nombre(argumento1,argumento2,)
Sin argumentos:
Nombre()
Programacin Prof. Gonzalo Mller Clase 9 GM - 32
Nombre(argumento1, argumento2, )
Sin argumentos:
Nombre()
Sin argumentos:
Escribir Nombre()
Programacin Prof. Gonzalo Mller Clase 9 GM - 34
Sin argumentos:
Variable = Nombre()
Programacin Prof. Gonzalo Mller Clase 9 GM - 35
Sin argumentos:
variable = Nombre()
Dato 1
Dato N
Mdulo1 ()
MduloZ ()
Condicin
Condicin
Salida
Variables
Llamadas
Programacin Prof. Gonzalo Mller Clase 9 GM - 38
Condiciones
Parmetro
Parmetro
Dato 1
Dato N
Condicin
Condicin
Salida
Parmetros
Variables
Programacin Prof. Gonzalo Mller Clase 9 GM - 39
Condiciones
Parmetro
Parmetro
Dato 1
Dato N
Condicin
Condicin
Retorno
Parmetros
Variables
Programacin Prof. Gonzalo Mller Clase 9 GM - 40
Condiciones
Programacin Modular
Nombre(argumento1,argumento2,) Llamada
Definicin
Programacin Modular
Nombre(argumento1,argumento2,)
1
Llamada
Programacin Modular
Nombre(argumento1,argumento2,)
2
Continua la ejecucin el mdulo correspondiente
Programacin Modular
Nombre(argumento1,argumento2,)
Programacin Modular
Nombre(argumento1,argumento2,)
4
Mdulo Primitivo
Salida
Secuencia de Ejecucin
Programacin Prof. Gonzalo Mller Clase 9 GM - 49
2. Se refina paso a paso de forma de enriquecer la jerarqua inicial con niveles adicionales.
Programa Inicializacin Lectura Entrada Proceso Tarea 2 Salida
Validacin
Tarea 1
Validacin
Tarea 1
Bottom-Up
Llamada a los mdulos: Se pone en ejecucin el modulo previamente definida donde sea necesario.
Programacin Modular
Algunos mdulos clsicos son:
Mdulos de entrada de datos. Mdulos de proceso. Mdulos de presentacin de resultados.
Acoplamiento
Describe la dependencia de un mdulo respecto de otro. Acoplamiento de zonas: Los mdulos manejan los datos de entradas y de salida a travs de variables comunes, llamadas variables globales.
Mdulo A Mdulo B
Datos (Variables Globales)
Diagrama de acoplamiento
Acoplamiento
Acoplamiento de datos: Los mdulos manejan los datos de entradas y de salida haciendo uso de parmetros.
Acoplamiento de Bajo Nivel Mdulo A
Datos (Parmetros)
Mdulo B
Datos (Parmetros)
Un buen programa contiene mdulos con acoplamiento de bajo nivel, ya que al realizar modificaciones no es necesario preocuparse por el impacto en los otros mdulos.
Programacin Prof. Gonzalo Mller Clase 9 GM - 56
Cohesin
Establece como se interrelacionan el conjunto de sentencias y datos que forman al mdulo.
Cohesin de Alto Nivel
Cohesin funcional: Todas las sentencias se destinan a llevar a cabo una y solo una sola tarea. Cohesin secuencial: Los resultados generados por una sentencia son utilizados en la siguiente. Cohesin en datos: Las sentencias realizan varias tareas a las vez utilizando los mismo datos.
Cohesin
Cohesin temporal: Las sentencias realizan varias tareas sin importar el orden con distintos datos cuyo significado es el mismo. Por ejemplo: Mdulo de inicializacin.
Cohesin de Bajo Nivel
Cohesin lgica: Las sentencias realizan una de varias tareas a partir de datos de control. Por ejemplo: Mdulo de seleccin de un men. Cohesin coincidental: Las sentencias realizan varias tareas sin relacin alguna.
Programacin Modular
Un buen programa contiene mdulos con cohesin de alto nivel, donde sus sentencias y datos se interrelaciona fuertemente entre s y no depende de otros mdulos, ya que es ms sencillo realizar modificaciones cuando stos se destina a realizar funciones especifica. Un mdulo debe tener una o pocas responsabilidades de lo contrario debera dividirse en varios para facilitar una fuerte cohesin.
Validacin
Bloques Terminales
Bloques Terminales
Pueden recibir Valores o Parmetros de Entrada. No retorna resultado, pero realizar una operacin dada.
Utilizadas usualmente para presentacin de datos en pantalla.
Programacin Modular
Reutilizacin: Separa en un mdulos los procesos que se repita ms de una vez el programa. Disminuye el tamao del programa. Ejemplo: La lectura de un punto (X, Y)
Programacin Modular
Reutilizacin: Separa en un mdulos los procesos que se repita ms de una vez el programa. Disminuye el tamao del programa. Ejemplo: La lectura de un punto (X, Y) Facilita las modificaciones y localizacin de errores: Se comprueba o modifica de forma individual cada uno de los mdulos.
Programacin Modular
Reutilizacin: Separa en un mdulos los procesos que se repita ms de una vez el programa. Disminuye el tamao del programa. Ejemplo: La lectura de un punto (X, Y) Facilita las modificaciones y localizacin de errores: Se comprueba o modifica de forma individual cada uno de los mdulos. Reduce el tiempo de desarrollo: Se reparte la construccin de los mdulos entre diferentes equipos de trabajo.
Programacin Prof. Gonzalo Mller Clase 9 GM - 68
Ejercicios
a) Definir un mdulo para: 1) Establecer el mnimo de dos valores. 2) Determinar la distancia entre 2 maquinas. 3) Calcular f(x) = sen(2*x)+x4. 4) Determinar si un nmero entero es par. 5) Establecer el signo de un valor (-1, 0, 1). Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF del Mdulo.
Programacin Prof. Gonzalo Mller Clase 9 GM - 69
Ejercicios
b) Partiendo de los mdulos creados anteriormente construir un algoritmo modular para: 1) Establecer el menor de 3 valores. 2) Determinar las distancias entre 3 maquinas. 3) Calcular f(x) = sen(2*x)+x4 para N puntos. 4) Contar la cantidad de nmeros pares de N datos. 5) Establecer si 2 valores tienen el mismo signo. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF del Bloque Principal.
Programacin Prof. Gonzalo Mller Clase 9 GM - 70
Ejercicios
c) Construir un algoritmo modular para: 1) Calcular el factorial de N nmeros. 2) Dado un conjunto de N nmeros, establecer cuales son nmeros compuestos. 3) Promediar los pares y promediar los impares de los nmeros entre A y B. 4) Dado N intervalos, calcular la sumatoria de los nmeros que contiene cada intervalo. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF del Bloque Principal.
Programacin Prof. Gonzalo Mller Clase 9 GM - 71
Ejercicios
c) Construir un algoritmo modular para: 5) Dado un conjunto de puntos en R2 por el usuario determinar cuales se encuentra por encima, por debajo y sobre una recta dada por el usuario. 6) Encontrar por Newton 1 solucin para f(x) = 0. 7) Encontrar 1 Mnimo de f(x) por 1+1. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF del Bloque Principal.
Programacin Prof. Gonzalo Mller Clase 9 GM - 72
Resumen
Programacin estructurada. Programacin modular. Algoritmo: Bloque principal, llamadas, 20 lneas. Mdulos. Clases. Tipos: Subrutinas y Funciones. Representacin de Algoritmos Modulares Definicin: subrutinas, funciones. Llamada: subrutinas, funciones.
Programacin Prof. Gonzalo Mller Clase 9 GM - 73
Resumen
Metodologa de la Programacin Modular Diseo Modular: Diagrama Top-Down. DRE, DF, PC y CF. Tabla de Mdulos. Caractersticas: Acoplamiento y Cohesin. Acoplamiento de datos bsico. Solo bloques terminales del DTD. Subrutinas: No generan resultado. Funciones: Generan 1 resultado. Beneficios: reutilizacin, cambios, errores y tiempo.
Programacin Prof. Gonzalo Mller Clase 9 GM - 74