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 13:06] – nicolasw | introalg:taller07_2 [2025/11/15 13:47] (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: (editor externo)
