Vous êtes sur la page 1sur 74

Informática

Prof. Gonzalo Müller


gmullerb@mail.com
Facultad de Ingeniería
Universidad Central de Venezuela
Clase Anterior
 Funciones Matemáticas en VBScript.
 Tradicionales: seno, coseno,…
 Números Aleatorios.
 Metodología para creación de un programa.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 2


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
estructuras básicas:
 Secuencial.
 Selectiva.
 Repetitiva.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 3


Programación Estructurada
Ejemplo: Algoritmos estructurados:
Sumatoria
Comienzo
S=0
k=0 Leer A y B

Leer N V F
A>B
S=S+k
B=A+B Escribir A
k=k+1
Mientras (k ≤ N) Escribir B

Escribir S
Fin
FIN
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 4
Programación Estructurada
En la programación estructurada se ataca el problema
utilizando un solo bloque.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 5


Programación Modular
Técnica de programación en la cual se descompone el
proceso en pequeños módulos independientes.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 6


Programación Modular
Técnica de programación en la cual se descompone el
proceso en pequeños módulos independientes.

Divide y Vencerás
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 7
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 genera
salidas.

Módulo
Entradas Salidas

Las entradas recibe el nombre de parámetros


Informática – Prof. Gonzalo Müller – Clase 8 – GM - 8
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 genera
salidas.

Módulo
Parámetros Salidas
Valor utilizado fuera
del algoritmo

Resultado
Valor utilizado dentro
del algoritmo
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 9
Módulos



Resultado
Valor utilizado …
dentro del algoritmo

Mientras (…)
Valor utilizado
Salidas
… fuera del algoritmo

FIN

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 10


Clases de Módulos
 Reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Parámetros Salidas

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 11


Clases de Módulos
 Reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Parámetros Salidas

Ejemplo:
Genera Salida
 write(texto): Escribe un texto en salida.
write(‘C++ #1’)

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 12


Clases de Módulos
 Reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Parámetros Salidas

Ejemplo:
Genera Salida
 write(texto): Escribe un texto en salida. Salida
write(‘C++ #1’) C++ #1

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 13


Clases de Módulos
 Reciben parámetros y no retorna resultado, pero
cumplen un propósito.

Módulo
Parámetros

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 14


Clases de Módulos
 Reciben parámetros y no retorna resultado, pero
cumplen un propósito.

Módulo
Parámetros

Ejemplo:
No Genera Salida
 randomize(semilla): semilla de generador.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 15


Clases de Módulos
 No reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Salidas

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 16


Clases de Módulos
 No reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Salidas

Ejemplo:
Genera Salida
 version(): datos sobre versión.
version()

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 17


Clases de Módulos
 No reciben parámetros y no retorna resultado, pero
generan salidas.

Módulo
Salidas

Ejemplo:
Genera Salida
 version(): datos sobre versión. Salida
COLARA
version() versión 1.101

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 18


Clases de Módulos
 No reciben parámetros y no retorna resultado, pero
cumplen un propósito.

Módulo

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 19


Clases de Módulos
 No reciben parámetros y no retorna resultado, pero
cumplen un propósito.

Módulo

Ejemplo:
No Genera Salida
 randomize(): semilla aleatoria de generador.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 20


Clases de Módulos
 Reciben parámetros y retorna un resultado.

Módulo
Parámetros

Resultado
Ejemplo:
 sqr(x): recibe un número x y devuelve el resultado de
x1/2

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 21


Clases de Módulos
 No reciben parámetros y retorna un resultado.

Módulo

Resultado

Ejemplo:
 rnd(): devuelve un número aleatorio entre 0 y 1.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 22


Tipos de Módulos
 Se agrupan en:
 Funciones: realiza una operación y retorna el
resultado de la misma.
Ejemplo: rnd(), sqr(x), etc.
 Subrutinas o procedimientos: realiza una tarea y
regresa a la instrucción siguiente a su llamada, es
decir, no generan un resultado.
Ejemplo: write(), version(), randomize(…), etc.

Ambos pueden o no recibir parámetros.


Informática – Prof. Gonzalo Müller – Clase 8 – GM - 23
Programación Modular
Algoritmo
 Existe un bloque principal en el cual se encuentran
las llamadas a los módulos.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 24


Programación Modular
Algoritmo
 Existe un bloque principal en el cual se encuentran
las llamadas a los módulos.
 El algoritmo estará construido con:
 Estructuras:
 Secuenciales.
 Selectivas.
 Repetitivas.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 25


Programación Modular
Algoritmo
 Existe un bloque principal en el cual se encuentran
las llamadas a los módulos.
 El algoritmo estará construido con:
 Estructuras:
 Secuenciales.
 Selectivas.
 Repetitivas.
 Dentro de las estructuras existirán:
 Llamadas a módulos previamente definidos.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 26
Programación Modular

Nombre
… Estructuras
Bloque Principal … Secuenciales,
Mientras (…) Selectivas, Repetitivas
… y Llamadas a módulos.
FIN

Ni el bloque principal ni los módulos debe


ocupar más de 20 líneas

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 27


Representación de Algoritmos Modulares
 Definición de una subrutina
DF
 Con parámetros:
Nombre(parámetro1, parámetro2, …)

Fin

 Sin parámetros:
Nombre()

Fin
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 28
Representación de Algoritmos Modulares
DRE
 Con parámetros:

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

Fin
 Sin parámetros:
Nombre()

Fin
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 29
Representación de Algoritmos Modulares
Ejemplo: Construir una subrutina para presentar en la
salida el mayor de dos números.
Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 30


Representación de Algoritmos Modulares
 Definición de una función
DF
 Con parámetros:
Nombre(parámetro1, parámetro2, …)

retorna Valor

 Sin parámetros:
Nombre()

retorna Valor
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 31
Representación de Algoritmos Modulares
DRE
 Con parámetros:

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

retorna Valor
 Sin parámetros:

Nombre()

retorna Valor
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 32
Representación de Algoritmos Modulares
Ejemplo: Construir una función para calcular el mayor
de dos números.
Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 33


Representación de Algoritmos Modulares
 Llamada a una subrutina
DF
 Con argumentos:

Nombre(argumento1, argumento2, …)

 Sin argumentos:
Nombre()

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 34


Representación de Algoritmos Modulares
DRE
 Con argumentos:

Nombre(argumento1,argumento2,…)

 Sin argumentos:

Nombre()

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 35


Representación de Algoritmos Modulares
 Llamada a una función
DF
 Con argumentos:
Escribir Nombre(argumento1, argumento2, …)

 Sin argumentos:
Variable = Nombre()

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 36


Representación de Algoritmos Modulares
DRE
 Con argumentos:

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

 Sin argumentos:

Variable = Nombre()

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 37


Representación de Algoritmos Modulares
Ejemplo: Construir dos algoritmos para calcular el
mayor de dos números que utilicen los módulos
desarrollados previamente.
Fase 1: Diseño y Análisis: DES, DRE ó DF y LV
del Bloque Principal.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 38


Corrida en frío de Algoritmo Principal

Dato Dato Módulo1 MóduloZ Condición Condición


… … … Salida
1 N (…) (…) 1 M

… … … … … … … … …

Variables Llamadas Condiciones

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 39


Corrida en frío de Subrutinas

Parámetro Parámetro Dato Dato Condición Condición


… … … Salida
1 W 1 N 1 M

… … … … … … … … … …

Parámetros Variables Condiciones

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 40


Corrida en frío de Funciones

Parámetro Parámetro Dato Dato Condición Condición


… … … Retorno
1 W 1 N 1 M

… … … … … … … … … …

Parámetros Variables Condiciones

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 41


Corrida en frío de Módulos
Ejemplo: Realizar una corrida en frío para el algoritmo
principal y módulos del ejemplo anterior.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 42


Programación Modular


Nombre(argumento1,argumento2,…) Llamada

Nombre(parámetro1, parámetro2, …) Definición



Fin

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 43


Programación Modular


Nombre(argumento1,argumento2,…) Llamada
1 …
Asigna el argumento al
parámetro antes de
continuar la ejecución:
parametro1 = argumento1

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

Fin

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 44


Programación Modular


Nombre(argumento1,argumento2,…)

2
Continua la ejecución el
módulo correspondiente

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

Fin

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 45


Programación Modular


Nombre(argumento1,argumento2,…)

3
Nombre(parámetro1, parámetro2, …)
Ejecuta todas las
… sentencias del módulo

Fin

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 46


Programación Modular


Nombre(argumento1,argumento2,…)
4 …

Regresa y continua la
ejecución el algoritmo
principal

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

Fin

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 47


Metodología de la Programación Modular
 Diseño Modular del algoritmo
 Estructurar la resolución del problema por
módulos.
 Cada módulo se encarga de resolver una parcialidad
del problema.
 Cada módulo debe realizar una función especifica y
debe ser sencillo e independiente.

Divide y Vencerás

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 48


Metodología de la Programación Modular
 Se debe realizar una descomposición jerárquica,
utilizando el diseño top-down o diagramas de
estructuras.
 Diagramas Top-Down: Son una representación
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.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 49


Metodología de la Programación Modular
 Los módulos debe ser organizados de tal manera
que la secuencia de ejecución de los mismo sea de
izquierda a derecha.

1. Se desarrolla un bosquejo inicial.


Módulo No Primitivo
Programa Módulo Primitivo

Inicialización Entrada Proceso Salida

Secuencia de Ejecución
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 50
Metodología de la Programación Modular
 Cuando la descripción de la tarea realizada por un
módulo no es lo suficientemente sencilla se debe
subdividir en varios módulos.
 Se debe subdividir en al menos dos módulos.
2. Se refina paso a paso de forma de enriquecer la
jerarquía inicial con niveles adicionales.

Programa

Inicialización Entrada Proceso Salida

Lectura Validación Tarea 1 Tarea 2


Informática – Prof. Gonzalo Müller – Clase 8 – GM - 51
Metodología de la Programación Modular
Ejemplo: Se requiere un programa para obtener las
raíces de una ecuación cuadrática. Realizar el diseño,
utilizando una descomposición jerárquica.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 52


Metodología de la Programación Modular
 Luego de realizar el diagrama Top-Down, se continua
con la construcción del algoritmo el cual se
complementa con dos nuevos pasos muy importantes:
 Definición de módulos: se desarrolla el algoritmo
que define a la subrutina.
 Cada módulo dispone de su propio diagrama.
 Llamada a los módulos: Se pone en ejecución el
modulo previamente definida donde sea necesario.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 53


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.

 Los módulos se caracterizan por su:


 Acoplamiento.
 Cohesión.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 54


Acoplamiento
Describe la dependencia de un módulo respecto de
otro.
 Acoplamiento de zonas: Los módulos manejan los
datos de entradas y de salida a través de variables
comunes, llamadas variables globales.

Módulo A Módulo B
Acoplamiento
de Alto Nivel Datos
(Variables Diagrama de
Globales)
acoplamiento

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 55


Acoplamiento
 Acoplamiento de datos: Los módulos manejan los
datos de entradas y de salida haciendo uso de
parámetros.

Acoplamiento Módulo A Módulo B


de Bajo Nivel Datos Datos
(Parámetros) (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.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 56
Cohesión
Establece como se interrelacionan el conjunto de
sentencias y datos que forman al módulo.

Cohesión  Cohesión funcional: Todas las sentencias se destinan


de Alto
Nivel 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.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 57


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
Cohesión
de Bajo varias tareas a partir de datos de control. Por
Nivel ejemplo: Módulo de selección de un menú.
 Cohesión coincidental: Las sentencias realizan varias
tareas sin relación alguna.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 58


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
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.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 59


Acoplamiento de datos básico
El bloque principal se construye solo con los bloques
terminales del diagrama Top-Down y módulos solo
deben poseer parámetros de entrada.
Bloque Principal
Programa

Inicialización Entrada Proceso Salida

Lectura Validación Tarea 1 Tarea 2

Bloques Terminales

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 60


Acoplamiento de datos básico
El bloque principal se construye solo con los bloques
terminales del diagrama Top-Down y módulos solo
deben poseer parámetros de entrada.
Bloque Principal
Programa

Inicialización Salida

Lectura Validación Tarea 1 Tarea 2

Bloques Terminales

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 61


Acoplamiento de datos básico
 Subrutinas: …

 Pueden recibir Valores o Parámetros de Entrada.


 No retorna resultado, pero realizar una operación
dada.
 Utilizadas usualmente para presentación de datos en
pantalla.
 Funciones: … 1

 Pueden recibir Valores o Parámetros de Entrada.


 Retorna 1 resultado.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 62
Acoplamiento de datos básico
Ejemplo: Construir el algoritmo modular con
acoplamiento de datos básico para obtener las raíces
de una ecuación cuadrática.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 63


Metodología de la Programación Modular
 Tabla de Módulos: Una vez desarrollados los
algoritmos de todos los módulos es de utilidad para la
posterior implementación en el lenguaje construir una
tabla donde se listen todos los módulos, sus tipos y
parámetros.

Modulo Parámetros Retorno Tipo


Nombre del Lista de Valor Subrutina o
módulo parámetros retornado Función

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 64


Metodología de la Programación Modular
Ejemplo: Construir la tabla de módulos del algoritmo
anterior.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 65


Programación Modular
 Reutilización: Separa en un módulos los procesos que
se repita más de una vez el programa.
 Disminuye el tamaño del programa.
Ejemplo: La lectura de un punto (X, Y)

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 66


Programación Modular
 Reutilización: Separa en un módulos los procesos que
se 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
comprueba o modifica de forma individual cada uno
de los módulos.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 67


Programación Modular
 Reutilización: Separa en un módulos los procesos que
se 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
comprueba o modifica de forma individual cada uno
de los módulos.
 Reduce el tiempo de desarrollo: Se reparte la
construcción de los módulos entre diferentes equipos
de trabajo.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 68
Ejercicios

a) Definir un módulo para:


1) Establecer el menor de dos valores.
2) Determinar la distancia entre 2 maquinas.
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 y
CF del Módulo y TM.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 69


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.
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 y
CF del Bloque Principal.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 70
Ejercicios
c) Construir un algoritmo modular para:
1) Calcular el factorial de N números.
2) Dado un conjunto de N números, establecer
cuales son números compuestos.
3) Promediar los pares y promediar los impares de
los números entre A y B.
4) Dado N intervalos, calcular la sumatoria de los
números que contiene cada intervalo.
Fase 1: Diseño y Análisis: DTD
DES, DRE ó DF y LV de Módulos y TM.
DES, DRE ó DF, LV y CF del Bloque Principal.
Informática – Prof. Gonzalo Müller – Clase 8 – 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 solución para f(x) = 0.
7) Encontrar 1 Mínimo de f(x) por 1+1.
Fase 1: Diseño y Análisis: DTD
DES, DRE ó DF y LV de Módulos y TM.
DES, DRE ó DF, LV y CF del Bloque Principal.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 72


Resumen
 Programación estructurada.
 Programación modular.
 Algoritmo: Bloque principal, llamadas, 20 líneas.
 Módulos.
 Clases.
 Tipos: Subrutinas y Funciones.
 Representación de Algoritmos Modulares
 Definición: subrutinas, funciones.
 Llamada: subrutinas, funciones.

Informática – Prof. Gonzalo Müller – Clase 8 – GM - 73


Resumen
 Metodología de la Programación Modular
 Diseño Modular: Diagrama Top-Down.
 DRE, DF y CF.
 Tabla de Módulos.
 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.
Informática – Prof. Gonzalo Müller – Clase 8 – GM - 74