introalg:taller07_2
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
introalg:taller07_2 [2007/04/17 16:06] – nicolasw | introalg:taller07_2 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 223: | Línea 223: | ||
Main> digitos 123123123 | Main> digitos 123123123 | ||
[3, | [3, | ||
+ | |||
+ | |||
+ | |||
Línea 232: | Línea 235: | ||
< | < | ||
- | descuento :: (Int,Bool) -> (Float,Int,Float) | + | descuento :: (Float,Bool) -> (Float,Float,Float) |
- | -- argumento: | + | -- argumento: |
- | -- resultado: una tresupla (Float,Int,Float) que representa el monto total, | + | -- resultado: una tresupla (Float,Float,Float) que representa el monto total, |
-- restando el descuento correspondiente, | -- restando el descuento correspondiente, | ||
-- y el descuento en tickets, respectivamente. | -- y el descuento en tickets, respectivamente. | ||
- | descuento x y | x == 257 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | descuento |
- | | x == 257 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x == 257 && |
- | | x == 350 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | | x == 350 && y |
- | | x == 350 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x == 350 && |
- | | x == 489 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | | x == 489 && y |
- | | x == 489 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x == 489 && |
- | | x > 1000 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | | x > 1000 && y |
- | | x > 1000 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x > 1000 && |
- | | x == 768 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | | x == 768 && y |
- | | x == 768 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x == 768 && |
- | | x == 999 && y == True = ( x - 0.2*x , 10*x, 0.1*x) | + | | x == 999 && y |
- | | x == 573 && y == False = ( x - 0.2*x , 10*x, 0) | + | | x == 573 && |
- | | x > 500 && x <= 1000 && y == True = ( x - 0.15*x , 5*x, 0.05*x) | + | | x > 500 && x <= 1000 && y = ( x - 0.15*x , 5*x, 0.05*x) |
- | | x > 500 && x <= 1000 && y == False = ( x - 0.15*x , 5*x, 0) | + | | x > 500 && x <= 1000 && |
- | | x > 200 && x <= 500 && y == True = ( x - 0.1*x , 2*x, 0.02*x) | + | | x > 200 && x <= 500 && y = ( x - 0.1*x , 2*x, 0.02*x) |
- | | x > 200 && x <= 500 && y == False = ( x - 0.1*x , 2*x, 0) | + | | x > 200 && x <= 500 && |
- | | x <= 200 = ( x , x , 0 ) | + | | x <= 200 = ( x , x , 0) |
</ | </ | ||
Línea 260: | Línea 263: | ||
< | < | ||
- | descuento :: (Int,Bool) -> (Float,Int,Float) | + | descuento' |
- | descuento (x,y) | x == 257 || x == 350 || x == 489 || x == 768 || x == 999 || x == 573 = descuento20 (x,y) | + | descuento' |
- | | x > 1000 = descuento20 (x,y) | + | |
- | | x > 500 && x <= 1000 = descuento15 (x,y) | + | |
- | | x > 200 && x <= 500 = descuento10 (x,y) | + | |
- | | x <= 200 = descuento0 (x,y) | + | |
- | descuento20 :: (Int,Bool) -> (Float,Int,Float) | + | descuento20 :: (Float,Bool) -> (Float,Float,Float) |
descuento20 (x,y) | y == True = ( x - 0.2*x , 10*x, 0.1*x) | descuento20 (x,y) | y == True = ( x - 0.2*x , 10*x, 0.1*x) | ||
| y == False = ( x - 0.2*x , 10*x, 0) | | y == False = ( x - 0.2*x , 10*x, 0) | ||
- | descuento15 :: (Int,Bool) -> (Float,Int,Float) | + | descuento15 :: (Float,Bool) -> (Float,Float,Float) |
descuento15 (x,y) | y == True = ( x - 0.15*x , 5*x, 0.05*x) | descuento15 (x,y) | y == True = ( x - 0.15*x , 5*x, 0.05*x) | ||
| y == False = ( x - 0.15*x , 5*x, 0) | | y == False = ( x - 0.15*x , 5*x, 0) | ||
- | descuento10 :: (Int,Bool) -> (Float,Int,Float) | + | descuento10 :: (Float,Bool) -> (Float,Float,Float) |
descuento10 (x,y) | y == True = ( x - 0.1*x , 2*x, 0.02*x) | descuento10 (x,y) | y == True = ( x - 0.1*x , 2*x, 0.02*x) | ||
| y == False = ( x - 0.1*x , 2*x, 0) | | y == False = ( x - 0.1*x , 2*x, 0) | ||
- | descuento0 :: (Int,Bool) -> (Float,Int,Float) | + | descuento0 :: (Float,Bool) -> (Float,Float,Float) |
- | descuento0 (x,y) = ( x , x , 0 ) | + | descuento0 (x,y) = ( x , x , 0) |
</ | </ | ||
Línea 361: | Línea 364: | ||
* los nombres de **funciones y variables** comienzan con **minúscula** | * los nombres de **funciones y variables** comienzan con **minúscula** | ||
+ | |||
Línea 378: | Línea 382: | ||
o bien de manera equivalente e igualmente eficiente, pero mucho más comprensible: | o bien de manera equivalente e igualmente eficiente, pero mucho más comprensible: | ||
- | area base altura profundidad | + | area b a p = 2*frente + 2*lado + 2*tapa |
where | where | ||
- | frente = base * altura | + | frente = b * a |
- | lado = profundidad | + | lado = p * a |
- | tapa = base * profundidad | + | tapa = b * p |
Línea 396: | Línea 400: | ||
probar con [1,2,3], con [3,3,3] y con []. | probar con [1,2,3], con [3,3,3] y con []. | ||
- | * Definir una función // | + | * Definir una función // |
probar con [1,2,3], con [3,3,3], con [0], con [0,1] y con []. | probar con [1,2,3], con [3,3,3], con [0], con [0,1] y con []. | ||
Línea 404: | Línea 408: | ||
probar con (1,2) y [3,2,4,5], (0,0) y [], (1,2) y [2,3,4,5]. | probar con (1,2) y [3,2,4,5], (0,0) y [], (1,2) y [2,3,4,5]. | ||
- | * Definir una función // | + | * Definir una función // |
Ayuda: fíjense que el resultado siempre debe ser una lista de caracteres! | Ayuda: fíjense que el resultado siempre debe ser una lista de caracteres! | ||
introalg/taller07_2.1176825960.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)