Está en la página 1de 10

Hoy vamos a aprender varias cosas tiles. Primero vamos a abrir el laboratorio 1 para ver el segundo ejercicio.

Lo leemos
detenidamente :) es el de la frutera.
De nuevo aplicamos los 3 pasos fundamentales:

1er paso: identificar las variables del problema


Como constantes tendramos:
Valor del Kilo = 4200 (llammosla valorKilo)
Y los valores constantes de la tabla:
0a2=0
2,01 a 5 = 0.10
5,01 a 10 = 0.15
10.01 en adelante = 0.20

Como variables tendramos:


Cantidad de kilos que compra el cliente. (Llammosla kilosComprados)
Cantidad de dinero a pagar por esos kilos comprados. (Llammosla pagar)

Antes de seguir moachos. Los valores constantes de la tabla (y en general a todos los valores constantes de un
programa) no es obligatorio asignarles identificadores (nombres de variable) aunque si se puede (y se debe), luego se
puede trabajar con esos identificadores en lugar de sus valores, pero eso alarga aqu el trabajo un poco, por eso para
fines prcticos es mejor utilizar los valores directamente (valores de la tabla). Para aclararlo mejor voy a usar el ejercicio
de ayer. Veamos la siguiente captura:

1
Se puede usar cualquiera de las dos y ambas tendrn el mismo efecto. Pero la segunda no se debe usar, pues si otro
programador la ve, no va a saber que significa 0.02 y 60. Ahora, imaginmonos que ms adelante en el programa van a
haber muchas ms operaciones usando 0.02 y 60 para calcular otros valores, y 0.02 y 60 los escribimos directamente en
todos lados. Ahora imaginemos que hay un cambio y se nos exige que la tasa de inters ya no va a ser 0.02 sino 0.05 y
los meses van a ser ahora 30. Eso nos obligara a cambiar valor por valor en todo el programa. En cambio s hubiramos
usado los identificadores para 0.02 y 60 (inters y meses), solo bastara cambiar los valores a 0.05 y 30 en su
inicializacin y el efecto se extendera a todo el programa o expresiones que usen esos identificadores meses e inters.
Entonces para nuestro problema de la frutera vamos a usar solamente los valores de la tabla directamente (que son
todos constantes). Para ahorrarnos tiempo y esfuerzo. Ms adelante veremos cmo va. Por ahora sigamos con el
procedimiento normal.
Una vez identificadas nuestras variables podemos proceder al segundo paso fundamental:

2do paso: crear el algoritmo


Este algoritmo lo vamos a hacer un poquito ms refinado y tcnico. Vamos a utilizar la palabra entrada para indicar una
entrada desde el exterior (equivalente a la figura lectura) y la palabra salida para indicar una salida hacia el exterior o
mensaje (equivalente a la figura salida). Tambin los pasos van a ser ms especficos.
Hay que aclarar antes que un algoritmo dado, no es la nica solucin a un problema, cada programador puede tener su
lgica diferente y llegar al mismo resultado. Lo importante es llegar a eso, el mismo resultado y que este sea correcto.
Desde luego, entre menor cantidad de pasos mejor, pues el algoritmo ser ms eficiente.

Entonces el algoritmo que yo propongo podra ir como sigue (les mando la captura para mejor visualizacin):
1.
2.
3.
4.
5.

Inicio
Salida Ingrese la cantidad de kilos a comprar:
Entrada kilosComprados.
subtotal = valorKilo * kilosComprados.
Si (kilosComprados >= 0) Y (kilosComprados <=2)
descuento = subtotal *0
Sino
Si (kilosComprados >= 2.01) Y (kilosComprados <= 5)
descuento = subtotal *0.10
Sino
Si (kilosComprados >= 5.01) Y (kilosComprados <= 10)
descuento = subtotal *0.15
Sino
Si (kilosComprados > 10.01)
descuento = subtotal * 0.20
Sino
descuento = 0
6. pagar = subtotal - descuento.
7. Salida La compra de , kilosComprados, kilos tiene un valor de $, subtotal, pero usted tiene un descuento
por valor de $, descuento, por lo tanto el valor a pagar es $, pagar.
8. Fin.
2
La anterior es la forma correcta de escribir un algoritmo. En lugar de las palabras Entrada y salida se pueden usar Input y
Output, y en lugar de si y sino se pueden usar If y Else. Ahora vamos a explicar bien punto por punto del algoritmo
antes de pasar a nuestro siguiente paso fundamental, (notar que hay dos variables de las que no hemos dicho nada,
descuento y subtotal):
1.
2.
3.
4.

Inicia la ejecucin del programa.


Se le muestra un mensaje al usuario pidindole un valor.
Se permite ingresar el valor y se guarda en la variable kilosComprados.
Se calcula el subtotal, que sera el precio a pagar sin ningn tipo de descuento y ese valor se le asigna a una
variable (subtotal).
5. Aqu es donde empieza la lgica y el programa toma decisiones basndose en el valor de la variable
kilosComprados respecto a los valores en la tabla de descuentos. Veamos. El flujo comienza en el Si rojo,
entonces sucede que si se cumple la condicin, el descuento se hace igual al subtotal * 0, o lo que es lo mismo,
descuento = 0 y se pasa a continuacin al punto 6. Pero, si la condicin no se cumple se pasa al sino rojo, el cual
empieza por el Si verde. Ahora, este S verde tiene su propia condicin, si esta es verdadera entonces se hace un
descuento del 10% sobre el subtotal y se pasa luego al punto 6. Pero, si no se cumple la condicin, el flujo pasa
al Si azul, el cual tiene su propia condicin; de nuevo, si la condicin se cumple el descuento ser del 15% del
subtotal y se pasa al punto 6; pero si no se cumple la condicin, se pasa al sino azul en el cual hay un Si morado,
si su condicin se cumple el descuento es de un 20%, pero si no, finalmente no va a haber ningn descuento
pues no se cumpli ninguna de las condiciones, por eso el descuento = 0 y ya les explico porque es 0.

Aqu hay que ser extremadamente exactos y minuciosos muchachos, detalles como estos les pueden costar la
vida o el trabajo. Miremos bien la tabla de descuentos:

3
Notemos que entre el intervalo 2 y 2,01 puede haber infinitos valores como 2.001, 2.009, 2.0098, etc. Estos
valores no satisfacen ninguna de las condiciones segn la tabla, por tanto el descuento a aplicar no existe. (El
que la hizo se le olvido ese detallito), lo mismo sucede con valores como 5.0098 o 10.0057. Imagnense que el
programa fuera para un banco, inmediatamente iramos a la crcel por regalar el dinero del banco. En esos casos
yo puse que el descuento fuera de 0 para mostrarles la situacin. La siguiente es la representacin grfica:
4

Cabe resaltar que las condiciones de los Si-sino pueden ser tan complejas como queramos, recordemos que las
relaciones pueden ser verdaderas o falsas, y con esos resultados que son de carcter booleano (ver algebra de
Boole) podemos jugar con los operadores lgicos Y/O para obtener condiciones tan complejas como
necesitemos.
6. Como el punto 5 del algoritmo ya nos calcul el descuento, solo queda saber cunto ser el total a pagar. Eso se
hace simplemente restando del subtotal el descuento y asignndoselo a la variable pagar.
7. Se le muestra el mensaje final al usuario mostrndole toda la informacin solicitada. Aqu es donde nos damos
cuenta que mientras desarrollbamos el algoritmo, fue necesario crear las variables descuento y subtotal que no
habamos contemplado en nuestro primer paso fundamental. Esa es la ventaja de hacer un algoritmo, que nos
muestra variables que vamos a tener que utilizar y que no conocamos. Ahorrndonos trabajo de codificacin.
8. Fin del programa.
Ahora ya podemos pasar a nuestro tercer paso fundamental:

3er paso: codificar el algoritmo

Ya sabemos que en este caso vamos a volverlo cdigo DFD. Abrimos entonces nuestro DFD.
Los puntos 1 y 8 ya estn listos (Inicio y Fin) En la figura inicio podemos agregar una descripcin del programa
(recomendado).
Ahora, antes de pasar al punto 2 vamos a hacer algo bien interesante. Sucede que en el ejercicio 1 bamos declarando
variables a medida que las bamos necesitando, eso es vlido, sin embargo no es recomendable, ya que las mismas
quedaran esparcidas por todo el programa y sera un problema ubicarlas despus para otra persona que necesite verlas
y hasta para nosotros mismos. Entonces como buen principio de programacin se suelen declarar las variables a utilizar
antes de empezar con los pasos del algoritmo. Estas variables ya las conocemos gracias al primer paso fundamental y a
nuestro algoritmo. Entonces a continuacin de la figura inicio agregamos 2 figuras asignacin para crear las variables
y constantes:

Agregamos cuantas figuras asignacin necesitemos para crear las variables necesarias. En este punto entonces el
programa ya conoce que variables se van a utilizar. Las constantes van inicializadas a su valor correspondiente (valorKilo)
y las variables van inicializadas a cero, o si son cadenas van as: eso debido a la regla que les coment ayer: toda
variable declarada, debe ser inicializada, lo que aplica para la gran mayora de lenguajes de programacin y DFD no es
la excepcin.
Ahora que DFD ya conoce nuestras variables y constantes vamos a proceder con el paso 2 del algoritmo (ver el
algoritmo).
Dice el punto 2 que debemos mostrar un mensaje al usuario. Por lo tanto agregamos una figura salida y en sus
propiedades escribimos el mensaje a mostrar entre comillas dobles:

Fin del punto 2. Ahora el punto 3 indica que debemos permitirle al usuario ingresar el valor y guardarlo en la variable
kilosComprados (la cual ya tenemos declarada e inicializada a 0). Agregamos entonces una figura Lectura y ponemos el
nombre de la variable donde queremos guardar el valor del usuario:

Lo que sucede en este punto si se ejecuta el programa es que se sobrescribe el valor de la variable kilosComprados (que
era 0) con el valor nuevo que ingresa el usuario (de ah el nombre de variable, ya que se puede cambiar su valor en
cualquier momento despus de declarada). Fin del punto 3.
Ahora en el punto 4 se calcula el valor que tendran los kilos de manzana si no tuvieran ningn descuento, para ello
multiplicamos el valor/kilo por la cantidad de kilos que compro el usuario, lo hacemos mediante una figura
asignacin. Fin del punto 4.

8
En el punto 5 la misin es calcular el descuento, para ello se usan estructuras condicionales anidadas con condiciones
relacionales y lgicas que utilizan los valores constantes de la tabla. Como les coment antes, esos valores podran ser
identificadores previamente declarados e inicializados con los valores de la tabla en lugar de poner los valores
directamente. As se hace en la prctica (por lo menos los buenos programadores lo hacen as), pero aqu lo vamos a
omitir por cuestiones prcticas. Las 4 estructuras condicionales y las asignaciones de descuentos segn nuestro
algoritmo iran as:

9
Como pueden evidenciar, para usar las operaciones lgicas Y/O se usan las palabras claves AND/OR y cada relacin se
cierra entre parntesis. Recordar que las relaciones devuelven valores booleanos, por eso las podemos operar con Y/O.
Finalizado entonces el punto 5.
En el punto 6 lo que hacemos es calcular el total a pagar. Como ya conocemos el descuento gracias al punto 5, ahora
solo restamos ese valor del subtotal que calculamos con anterioridad y se lo asignamos a la variable pagar, mediante
una figura asignacin:

10
Una vez terminado nuestro punto 6, finalmente pasamos al 7 que le muestra los resultados al usuario, para ello
agregamos una figura salida:

11
Hemos terminado la codificacin de nuestro algoritmo muchachos, pueden ejecutar el cdigo y testearlo con los valores
que quieran.

También podría gustarte