Está en la página 1de 9

Curso: Introduccin a la Computacin

Profesor: Csar Aguilera

Horario: 114-119

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

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

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
descuento cliente

Calcular monto con


descuento fidelidad

NIVEL 1

Calcular monto final

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.

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera
Nombre de modulo

Calcular monto descuento cliente

Tipo de mdulo

Funcin

Parmetros

MontoMes, DescCliente

Horario: 114-119

(datos de entrada del mdulo)


Valor de retorno

MontoDescuentoCliente

(dato de salida del mdulo)


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

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

Solucin (Forma 2)
a) Anlisis
Completar [No cambian las frmulas]
Diagrama de mdulos

Tiene cinco mdulos y dos niveles.

Calcular Meta de
Compra

Leer datos

Calcular monto
descuento cliente

Calcular monto con


descuento fidelidad

NIVEL 1

Calcular monto final

NIVEL 2

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]

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

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.

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

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

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

(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

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

(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
DescFidelidad)

CalcularMontoDescuentoFidelidad(MontoDescuentoCliente,

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
PONTIFICIA UNIVERSIDAD CATLICA DEL PER

Curso: Introduccin a la Computacin


Profesor: Csar Aguilera

Horario: 114-119

Diagrama de mdulo (Forma 3). Es parte de anlisis.


Calcular Meta de
Compra

Leer datos

Calcular monto
descuento cliente

CalcularMonto
Descuento

NIVEL 1

Calcular
monto final

Calcular monto con


descuento fidelidad

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

NIVEL 2

NIVEL 3

También podría gustarte