Introduccion a la computacion

download Introduccion a la computacion

of 9

description

Curso libre de introduccion a la computacion escrita avanzada

Transcript of Introduccion a la computacion

  • 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