Sencillos
      Series      
      Listas      
Lista de listas
      Tuplas      
      Otros      
 
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.