Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 1
CLASE 4 (09/04/2015) Habilidades esperadas a desarrollar en clase
Conocer las etapas que conforman a resolucin de problemas
Conocer las partes que componen el anlisis de un problema y como encontrarlas
Realizar el Anlisis, Diseo y Codificacin de un problema utilizando un diagrama de mdulos de 2 niveles con mdulos que retornan un valor
Conocer la sintaxis del lenguaje de programacin VBA utilizado en la codificacin
Conocer la diferencia entre los dos posibles subprogramas: una funcin y un procedimiento
Ejercicio 1
Se le pide:
Plantear el anlisis del problema usando al menos 4 mdulos (incluyendo al mdulo
principal).
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 2
Solucin (Forma 1)
a) Paso1: Anlisis
Identificar requerimientos: Calcular el monto de compra con descuento
(MontoDescuentoFidelidad) y el monto de compra final (MontoFinal) descontando el bono.
Datos de Entrada: nombre del cliente (cliente), monto de compra mes pasado (MontoMes),
descuento por tipo de cliente (DescCliente), descuento por fidelidad (DescFidelidad) y bono
(Bono).
Datos de Salida: MontoconDescuento y MontoFinal
Frmulas (procesamiento):
MontoDescuentoCliente= MontoMes * (1 DescCliente/100)
MontoconDescuento = MontoDescuentoCliente* (1 DescFidelidad/100)
MontoFinal = MontoconDescuento - Bono
Diagrama de mdulos
Tiene cuatro mdulos y dos niveles.
Calcular Meta de Compra
Calcular monto con descuento fidelidad
Calcular monto finalCalcular monto
descuento cliente
NIVEL 1
NIVEL 2
b) Paso 2: Diseo
Nombre de mdulo Calcular Meta de Compra
Tipo de mdulo Procedimiento
Parmetros --- [el principal no tiene parmetros]
Descripcin El mdulo realizar lo siguiente:
Leer los datos de entrada de la hoja de Excel (MontoMes, DescCliente,
DescFidelidad y Bono). Luego utilizar los mdulos
CalcularMontoDescuentoCliente, CalcularMontoDescuentoFidelidad y
CalcularMontoFinal.
Finalmente mostrar los datos de salida (MontoconDescuento y
MontoFinal) obtenidos.
* Los tipos de mdulo procedimiento no tienen valor de retorno.
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 3
Nombre de modulo Calcular monto descuento cliente
Tipo de mdulo Funcin
Parmetros
(datos de entrada del mdulo)
MontoMes, DescCliente
Valor de retorno
(dato de salida del mdulo)
MontoDescuentoCliente
Descripcin En base a los datos de entrada recibidos a travs de los
parmetros, esta funcin calcular el monto con descuento
cliente. Para este trabajo usar las siguientes frmulas:
MontoDescuentoCliente= MontoMes * (1 DescCliente/100)
Nombre de modulo Calcular monto descuento fidelidad
Tipo de mdulo Funcin
parmetros MontoDescuentoCliente, DescFidelidad
Valor de retorno MontoDescuentoFidelidad
Descripcin El mdulo hallar el monto despus que se aplica el descuento por fidelidad.
MontoDescuentoFidelidad=MontoDescuentoCliente*(1DescFidelidad/100)
Nombre de mdulo Calcular monto final
Tipo de mdulo Funcin
Parmetros MontoDescuentoFidelidad, Bono
Valor de retorno MontoFinal
Descripcin Este mdulo obtendr el valor del monto con descuento (ambos descuentos)
menos el bono. Segn la siguiente frmula:
MontoFinal = MontoDescuentoFidelidad - Bono
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 4
Solucin (Forma 2)
a) Anlisis Completar [No cambian las frmulas]
Diagrama de mdulos
Tiene cinco mdulos y dos niveles.
Calcular Meta de Compra
Calcular monto con descuento fidelidad
Calcular monto finalCalcular monto
descuento cliente
NIVEL 1
NIVEL 2Leer datos
b) Diseo Se modifica el mdulo Principal. Ahora utiliza un mdulo para leer los datos.
Nombre de mdulo Calcular Meta de Compra
Tipo de mdulo Procedimiento
Parmetros --- [el principal no tiene parmetros]
Descripcin El mdulo realizar lo siguiente:
Utilizar los mdulos LeerDatos, CalcularMontoDescuentoCliente,
CalcularMontoDescuentoFidelidad y CalcularMontoFinal.
Finalmente mostrar los datos de salida (MontoconDescuento y
MontoFinal) obtenidos.
Se agrega un nuevo mdulo.
Nombre de mdulo Leer datos
Tipo de mdulo Procedimiento [recuerde lo mencionado en clase]
Parmetros MontoMes, DescCliente, DescFidelidad y Bono.
Descripcin Leer los datos de entrada de la hoja de Excel (MontoMes, DescCliente,
DescFidelidad y Bono).
. [Los mismos mdulos]
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 5
Observaciones:
Los datos de entrada se obtienen de la hoja de Excel y sern las celdas sombreadas que
contengan los datos que necesitamos para efectuar clculos.
Los datos de salida se identifican de la hoja de Excel y sern las celdas que no estn sombreadas
y que contengan los datos que queremos calcular.
Para nombrar los datos de entrada y datos de salida utilizaremos nombres descriptivos. Evitar el
uso de siglas o letras que dificulten la interpretacin.
Las constantes NO forman parte del Anlisis. Las constantes NO aparecen en la hoja de Excel,
aparecen en el texto del problema.
Las frmulas son opcionales pero identificarlas nos ser de gran ayuda para el desarrollo de las
siguientes fases.
El diagrama de mdulos est basado en la tcnica de diseo descendente que se basa en el
principio Divide y Vencers, el cual consiste en dividir el problema en partes ms pequeas de
modo que sea ms fcil su resolucin.
El diagrama de mdulos estar conformado por unidades llamadas mdulos las cuales se
encargaran de realizar algunas acciones (instrucciones). El diagrama de mdulos estar
conformado por el mdulo principal, mdulos de 2do nivel y mdulos de tercer nivel.
Un problema puede ser resuelto de diferentes maneras, cada persona puede determinar una
manera diferente de resolverlo, por ello pueden haber muchas soluciones posibles.
Todo diagrama de mdulos tendr un mdulo principal. Este mdulo es como un administrador
que se encarga de controlar la resolucin del problema.
El nombre del mdulo principal puede ser una descripcin general del problema.
El nombre del mdulo (no el principal) debe explicar la tarea que va a realizar. Debe empezar
con un verbo infinitivo que indique una accin.
Una manera (no es la nica) de determinar los mdulos que tendr mi diagrama de mdulos es
utilizando las frmulas identificadas.
Los mdulos Leer Datos y Mostrar Datos son mdulos comodines. No es obligatorio
utilizarlos. Se recomienda utilizarlos cuando ya se han identificado los mdulos y necesita un
mdulo adicional para tener la cantidad mnima de mdulos requerida.
Fuente: Profesora Nancy Espinoza ciclo 20142.
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 6
c) Implementacin (Forma 1)
Sub CalcularinformacionCliente()
'leer datos de la hoja Excel con la instruccin range(celda). No es mdulo.
MontoMes = Range("b3")
DescTipoCliente = Range("c3")
DescFidelidad = Range("d3")
Bono = Range("e3")
'vamos a llamar a la funcin
MontoDescuentoCliente = CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
MontoconDescuento = CalcularMontoDescuentoFidelidad(MontoDescuentoCliente,
DescFidelidad)
'vamos a llamar a la otra funcin
MontoFinal = CalcularMontoFinal(MontoconDescuento, Bono)
'mostrar datos en la hoja de Excel, utilizamos range.
No es mdulo son instrucciones
Range("f3") = MontoconDescuento
Range("g3") = MontoFinal
End Sub
Function CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
CalcularMontoDescuentoCliente = MontoMes * (1 - (DescTipoCliente / 100))
End Function
Function CalcularMontoDescuentoFidelidad(MontoDescuentoCliente, DescFidelidad)
'al descuento cliente le aadimos el descuento por fidelidad
CalcularMontoDescuentoFidelidad = MontoDescuentoCliente * (1 - (DescFidelidad / 100))
End Function
Function CalcularMontoFinal(MontoconDescuento, Bono)
'obtener el monto final CalcularMontoFinal = MontoconDescuento - Bono
End Function
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 7
(Forma 2)
Sub CalcularinformacionCliente()
'leer con el mdulo leer datos
Call Leerdatos(MontoMes, DescTipoCliente, DescFidelidad, Bono)
'Ahora vamos a llamar a la funcin
MontoDescuentoCliente = CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
'Ahora vamos a llamar a la otrafuncin
MontoconDescuento=CalcularMontoDescuentoFidelidad(MontoDescuentoCliente, DescFidelidad)
'vamos a llamar a la funcin final
MontoFinal = CalcularMontoFinal(MontoconDescuento, Bono)
'mostrar datos en la hoja de Excel, utilizamos range.
No es mdulo son instrucciones de escritura
Range("f3") = MontoconDescuento
Range("g3") = MontoFinal
End Sub
Sub Leerdatos(MontoMes, DescTipoCliente, DescFidelidad, Bono)
'leer datos de la hoja Excel con la instruccin range(celda)
MontoMes = Range("b3")
DescTipoCliente = Range("c3")
DescFidelidad = Range("d3")
Bono = Range("e3")
End Sub
Function CalcularMontoDescuentoFidelidad(MontoDescuentoCliente, DescFidelidad)
'al descuento cliente le aadimos el descuento por fidelidad
CalcularMontoDescuentoFidelidad = MontoDescuentoCliente * (1 - (DescFidelidad / 100))
End Function
Function CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
CalcularMontoDescuentoCliente = MontoMes * (1 - (DescTipoCliente / 100))
End Function
Function CalcularMontoFinal(MontoconDescuento, Bono)
CalcularMontoFinal = MontoconDescuento - Bono
End Function
Link:
https://www.youtube.com/watch?v=Gkc0GNeRddM
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 8
(Forma 3). Mdulo de tres niveles
Sub CalcularinformacionCliente()
'leer con el mdulo leer datos
Call Leerdatos(MontoMes, DescTipoCliente, DescFidelidad, Bono)
'Ahora vamos a llamar a la funcin
MontoconDescuento = CalcularMontoDescuento(MontoMes, DescTipoCliente, DescFidelidad)
'vamos a llamar a la funcin final
MontoFinal = CalcularMontoFinal(MontoconDescuento, Bono)
'mostrar datos en la hoja de Excel, utilizamos range.
No es mdulo son instrucciones
Range("f3") = MontoconDescuento
Range("g3") = MontoFinal
End Sub
Sub Leerdatos(MontoMes, DescTipoCliente, DescFidelidad, Bono)
'leer datos de la hoja Excel con la instruccin range(celda)
MontoMes = Range("b3")
DescTipoCliente = Range("c3")
DescFidelidad = Range("d3")
Bono = Range("e3")
End Sub
Function CalcularMontoDescuento(MontoMes, DescTipoCliente, DescFidelidad)
'obtener el monto con descuento total. En dos pasos
'Se utilizan dos subprogramas. Verificar que la cantidad de parmetros cambia.
tengo tres parmetros. Utilizo la combinacin de dos parmetros para cada mdulo.
MontoDescuentoCliente = CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
CalcularMontoDescuento = CalcularMontoDescuentoFidelidad(MontoDescuentoCliente,
DescFidelidad)
End Function
Function CalcularMontoDescuentoFidelidad(MontoDescuentoCliente, DescFidelidad)
'al descuento cliente le aadimos el descuento por fidelidad
CalcularMontoDescuentoFidelidad = MontoDescuentoCliente * (1 - (DescFidelidad / 100))
End Function
Function CalcularMontoDescuentoCliente(MontoMes, DescTipoCliente)
CalcularMontoDescuentoCliente = MontoMes * (1 - (DescTipoCliente / 100))
End Function
Function CalcularMontoFinal(MontoconDescuento, Bono)
CalcularMontoFinal = MontoconDescuento - Bono
End Function
Curso: Introduccin a la Computacin Profesor: Csar Aguilera Horario: 114-119
PONTIFICIA UNIVERSIDAD CATLICA DEL PER 9
Diagrama de mdulo (Forma 3). Es parte de anlisis.
Calcular Meta de Compra
Calcular monto con descuento fidelidad
Calcular monto final
Calcular monto descuento cliente
NIVEL 1
NIVEL 2Leer datosCalcularMonto
Descuento
NIVEL 3
Top Related