Herramientas de usuario

Herramientas del sitio


introalg:rincon

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

introalg:rincon [2006/07/27 14:56] 200.82.93.149introalg:rincon [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 244: Línea 244:
           | (unmil x) == 7 || (centena x) == 7 || (decena x) == 7 || (unidad x) ==7  =  True           | (unmil x) == 7 || (centena x) == 7 || (decena x) == 7 || (unidad x) ==7  =  True
           | otherwise  = False           | otherwise  = False
 +
  
 ==== Ejercicio 7 ==== ==== Ejercicio 7 ====
Línea 273: Línea 274:
 >> (PabloZ) Hay que validar la información y en caso que sea un valor no valido hay que darle al usuario un mensaje de error que pueda entender. >> (PabloZ) Hay que validar la información y en caso que sea un valor no valido hay que darle al usuario un mensaje de error que pueda entender.
   cabeza :: [a] -> a   cabeza :: [a] -> a
-  cabeza a | length a == 0 = error "La lista no puede estar vacia."+  cabeza [] = error "La lista no puede estar vacia."
   cabeza (x:xs) = x   cabeza (x:xs) = x
  
Línea 394: Línea 395:
  
   int2Float :: Int -> Float   int2Float :: Int -> Float
-  int2Float fromInteger (toInteger n)+  int2Float = fromIntegral
  
 Entonces, podemos usar, cada vez que necesitemos la longitud de una lista (pero como un Float):  Entonces, podemos usar, cada vez que necesitemos la longitud de una lista (pero como un Float): 
Línea 486: Línea 487:
  
 José Neder José Neder
 +
 +
 +
  
 ==== Ejercicio 16 ==== ==== Ejercicio 16 ====
Línea 506: Línea 510:
 >>> De peluche, mejorale la "indentación" asi quedan bien encolumnadas las guardas y las definiciones >>> De peluche, mejorale la "indentación" asi quedan bien encolumnadas las guardas y las definiciones
  
-desdehasta :: Int -> Int -> [Int] +  desdehasta :: Int -> Int -> [Int] 
-desdehasta a b |a<b = [a..b]              +  desdehasta a b |a<b = [a..b]              
-               |a==b = [a] +                 |a==b = [a] 
-        |a>b = reversa [b..a]+                 |a>b = reversa [b..a
 + 
 +> Tambien lo hice yo desde esta forma. (PATRICK R.) 
 + 
 +  desde :: Int -> Int -> [Int] 
 +  desde x y 
 + |x > y = x:desde (x-1) y 
 + |x < y = x:desde (x+1) y 
 + |otherwise = [y]
  
 ==== Ejercicio 17 ==== ==== Ejercicio 17 ====
Línea 564: Línea 576:
       ceroOUno x = x==0 || x==1       ceroOUno x = x==0 || x==1
 > no es necesario dividir en el caso base y el inductivo, esto ya lo hace ''paraTodo''. > no es necesario dividir en el caso base y el inductivo, esto ya lo hace ''paraTodo''.
 +
 +  listabin :: [Int] -> Bool
 +  listabin [] = False
 +  listabin [x] |x==1 || x==0 = True
 +               |otherwise = False
 +  listabin (x:xs) |(x==1 || x==0) && listabin xs = True
 +                  |otherwise = False
  
  ======  ======
Línea 735: Línea 754:
 Ahora tambien sabemos que si no tiene divisores hasta la raiz, es primo por lo que defini esta otra, un poco mas complicada, gracias a la funcion definida por "" y utilizando dos funciones de Haskell (//sqrt// y //round//): Ahora tambien sabemos que si no tiene divisores hasta la raiz, es primo por lo que defini esta otra, un poco mas complicada, gracias a la funcion definida por "" y utilizando dos funciones de Haskell (//sqrt// y //round//):
  
- 
-  int2Float :: Int -> Float 
-  int2Float n = fromInteger (toInteger n) 
  
   primo5 :: Int -> Bool   primo5 :: Int -> Bool
   primo5 1 = False   primo5 1 = False
-  primo5 x = (filtro (multiplo x) (desdeHasta 1 (round (sqrt (int2Float x)))))==[1]+  primo5 x = (filtro (multiplo x) (desdeHasta 1 (round (sqrt (fromIntegral x)))))==[1]
  
 ----- -----
Línea 770: Línea 786:
  
   int2float :: Int -> Float   int2float :: Int -> Float
-  int2float fromInteger (toInteger n)+  int2float = fromIntegral
  
   float2int :: Float -> Int   float2int :: Float -> Int
-  float2int fromInteger (toInteger (round n))+  float2int = round
  
  
Línea 1141: Línea 1157:
 dosalan3 :: Float -> Float dosalan3 :: Float -> Float
 dosalan3 n = 2 //aca van 2 estellitas// n dosalan3 n = 2 //aca van 2 estellitas// n
 +
  
  
Línea 1254: Línea 1271:
 De nuevo, tenemos **lo mejor de dos mundos**, claridad y velocidad, el ingrediente clave fue la utilización de definiciones locales que hacen que el cómputo del triángulo anterior y de la fila anterior solo se hagan 1 vez y se //comparta// en la fila De nuevo, tenemos **lo mejor de dos mundos**, claridad y velocidad, el ingrediente clave fue la utilización de definiciones locales que hacen que el cómputo del triángulo anterior y de la fila anterior solo se hagan 1 vez y se //comparta// en la fila
 superior. superior.
-harian el favor de colocar en la compu con el proyector que da al pisarron, por fa agranden la letra que no se ve nada. 
- 
  
 >(José Neder)Utilizando la idea de definirlo con **definiciones locales** redefino la funcion asi: >(José Neder)Utilizando la idea de definirlo con **definiciones locales** redefino la funcion asi:
introalg/rincon.1154012199.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)