Códigos
Haskell
Videos
Diseño web
|
Contador de digitos impares |
Sencillo programa que cuenta los dígitos impares de un número entero
Código fuente
impares::Int->Int
impares 0 = 0
impares n |rem (mod n 10) 2==0 =impares (div n 10)
|otherwise =1 + impares (div n 10)
|
|
convertir a mayúscula |
Función que convierte una letra minúscula a mayúscula.
Código fuente
mayus::Char->Char
mayus c = toEnum (fromEnum c - fromEnum 'a' + fromEnum 'A')
|
|
Números primos |
Programa que muestra en una lista todos los números primos desde 1 hasta n.
Código fuente
divisible::Int->Int->Bool
divisible x y = (mod x y) ==0
divisibles::Int->[Int]
divisibles x = [y | y <-[1..x],divisible x y]
esPrimo::Int->Bool
esPrimo n = length (divisibles n) ==2
primos::Int->[Int]
primos n = [x | x <-[1..n],esPrimo x]
|
|
Ordenar 4 números enteros |
Dados cuatros números enteros, ordena de forma ascendente, haciendo uso de la distincion de casos.
Código fuente
ordenar::Int->Int->String
ordenar a b |a < b =show(a)++" "++show(b)
|otherwise=show(b)++" "++show(a)
ordenar3::Int->Int->Int->String
ordenar3 x y z |x<=y && x<=z = show(x)++" "++(ordenar y z)
|y<=x && y<=z = show(y)++" "++(ordenar x z)
|otherwise=show(z)++" "++(ordenar x y)
ordenar4::Int->Int->Int->Int->String
ordenar4 a b c d |a<=b&&a<=c&&a<=d=show(a)++" "++(ordenar3 b c d)
|b<=a&&b<=c&&b<=d=show(b)++" "++(ordenar3 a c d)
|c<=a&&c<=b&&c<=d=show(c)++" "++(ordenar3 a b d)
|otherwise=show(d)++" "++(ordenar3 a b c)
|
|
Dígito menor |
Este programa recibe un número entero y devuelve el dígito menor
Código fuente
mn1::Int->Int->Int
mn1 m 0 = m
mn1 m a |m < k=mn1 m (div a 10)
|True =mn1 k (div a 10)
where k=mod a 10
men::Int->Int
men n =mn1 (mod n 10) n
|
|
Cuenta repetidos |
Dados una lista y un número entero, realiza el conteo de las veces que se repite un elemento determinado de la lista.
Código fuente
repn::[Int]->Int->Int
repn [] n=0
repn (x:xs) n|x==n=1 + repn(xs) n
|otherwise=repn(xs) n
|
|
Mínimo común múltiplo |
La función principal de este sencillo programa devuelve el mínimo común múltiplo de dos números enteros.
Código fuente
m1::Integer->Integer->Integer->Integer
m1 a b x |a==b=a
|rem (a*x) b==0=(a*x)
|otherwise=m1 a b (x+1)
mcm::Integer->Integer->Integer
mcm a b = m1 a b 1
|
|
Insertar un número en una lista de listas |
El código siguiente inserta un número determinado en la fila y columna indicada de una matriz, donde la matriz solo admite nueves.
Código fuente
ing::[Int]->Int->Int->Int->[Int]
ing [] _ _ _=[]
ing (x:xs) n c cont|c==cont=n:xs
|otherwise=x:(ing xs n c (cont + 1))
lis::[[Int]]->Int->Int->Int->Int->[[Int]]
lis [] _ _ _ _=[]
lis (x:xs) n f c cont|f==cont=k:xs
|otherwise=x:(lis xs n f c (cont + 1))
where k=ing x n c 1
nueve::[Int]->Bool
nueve []=True
nueve (x:xs)|x==9=nueve xs
|otherwise=False
nuev::[[Int]]->Bool
nuev []=True
nuev (x:xs)|k==True=nuev xs
|otherwise=False
where k=nueve x
prin::[[Int]]->Int->Int->Int->[[Int]]
prin (x:xs) n f c|p==True=lis (x:xs) n f c 1
|otherwise=error "todos los numeros deben ser 9"
where p=nuev (x:xs)
|
|
|
Nuevo |
Publicado el:
22 - Agosto - 2009
Códigos Pascal
Triangulo
Este programa determina si los catetos e hipotenusa introducidos, forman o no un triángulo, si es asi muestra que tipo de triángulo es, ya sea triángulo equilátero, isóceles, rectángulo o escaleno. |
Nuevo |
Publicado el:
22 - Agosto - 2009
Haskell
Serie Fibonacci
Lista de la serie de fibonacci
Programa que dada una lista de números enteros, devuelve solo aquellos numeros que pertenecen a la serie de fibonacci.
|
Nuevo |
Publicado el:
21 - Agosto - 2009
Haskell
Suma diagonal principal
Dada una lista de listas o matriz de números enteros, realiza la suma de la diagonal principal. |
|