Códigos
Haskell
Videos
Diseño web
|
Suma diagonal principal |
Dada una lista de listas o matriz de números enteros, realiza la suma de la diagonal principal
Código fuente
dph::Int->[Int]->Int
dph b as=as!!b
dip::Int->[[Int]]->Int
dip _ []=0
dip k (x:xs)=dph k (x)+dip (k+1) xs
dp::[[Int]]->Int
dp (xs)=dip 0 (xs)
|
|
Vocales y consonantes |
Este programa selecciona las consonantes y vocales de una lista para mostrarlas en dos listas de una lista de listas.
Código fuente
cst::String->String
cst ""=""
cst n|k=="a"||k=="e"||k=="i"||k=="o"||k=="u"=""++(cst (tail n))
|otherwise=k++(cst (tail n))
where k=take 1 n
voc::String->String
voc ""=""
voc n|k=="a"||k=="e"||k=="i"||k=="o"||k=="u"=k++(voc (tail n))
|otherwise=""++(voc (tail n))
where k=take 1 n
vc::[String]->[String]
vc []=[]
vc (x:xs)=(voc x):(vc xs)
cs::[String]->[String]
cs []=[]
cs (x:xs)=(cst x):(cs xs)
vc_cs::[String]->[[String]]
vc_cs (ns)=(cs ns):(vc ns):[]
|
|
Suma dos columnas |
Este programa realiza la suma de los elemendos de dos columnas de una matriz.
Código fuente
se::Int->Int->Int->[Int]->Int
se _ _ _ []=0
se c d e (a:as)|c==e=a+(se c d (e+1) (as))
|d==e=a+(se c d (e+1) (as))
|True=se c d (e+1) (as)
sc::Int->Int->[[Int]]->[Int]
sc _ _ []=[]
sc h i (x:xs)=(se h i 0 (x)):sc h i (xs)
|
|
Suma de matrices |
Sencillo programa que realiza la suma de dos matrices de números enteros.
Código fuente
smt::[Int]->[Int]->[Int]
smt [] []=[]
smt (a:as) (b:bs)=(a+b):(smt as bs)
sm::[[Int]]->[[Int]]->[[Int]]
sm [] []=[]
sm (x:xs) (y:ys)=(smt (x)(y)) :(sm (xs) (ys))
|
|
Ordenar Lista de listas |
Este sencillo programa ordena una lista de listas.
Código fuente
men::[Int]->Int->Int
men [] m=m
men (x:xs) m|x < m=men xs x
|otherwise=men xs m
elirep::Int->[Int]->[Int]
elirep _ []=[]
elirep a (x:xs)|a==x=xs
|otherwise=x:elirep a xs
ord::[Int]->[Int]
ord []=[]
ord (x:xs)=k:ord m
where k=men (x:xs) x
m=elirep k (x:xs)
prin::[[Int]]->[Int]->[[Int]]
prin [] _=[]
prin (x:xss) (yss)=k:(prin xss (drop d yss))
where d=length x
k=take d (yss)
ordenar::[[Int]]->[[Int]]
ordenar xss=prin xss p
where d=concat xss
p=ord d
|
|
Tramos ordenados |
Dada una lista de número enteros, muestra en una lista de listas los tramos ordenados.
Código fuente
or1::Int->[Int]->[Int]
or1 a []=[a]
or1 a (x:xs)|a < x=a:or1 x xs
|otherwise=[a]
tord::[Int]->[[Int]]
tord []=[]
tord (x:xs)=k:tord (drop p (x:xs))
where k=or1 x xs
p=length k
|
|
Suma de fila columna, diagonal principal, diagonal secundaria |
Dada una matriz de números enteros además de la fila y la columna, este programa realiza la suma de los elementos de la fila,columna,diagonal principal y diagonal secundaria.
Código fuente
smf::[[Int]]->Int->Int
smf xss f=sum (xss!!(f-1) )
smc::[[Int]]->Int->Int
smc [] _=0
smc (x:xss) c=(x!!(c-1))+smc xss c
smdp::[[Int]]->Int->Int
smdp [] c=0
smdp (x:xss) c|c>0&&(c<=length x)=(x!!(c-1))+smdp (xss) (c+1)
|True= smdp (xss) (c+1)
smds::[[Int]]->Int->Int
smds [] c=0
smds (x:xss) c|length (x)>=c&&c>0=(x!!(c-1))+smds xss (c-1)
|True=smds xss (c-1)
sprin::[[Int]]->Int->Int->Int
sprin (xss) f c=fi+co+dp+ds-3*r
where fi=smf xss f
co=smc xss c
dp=smdp xss (1+c-f)
ds=smds xss (c+f-1)
r=(xss!!(f-1))!!(c-1)
|
|
Multiplicación de matrices |
Dadas dos matrices de n x n, devuelve en una lista de listas la multiplicación de ambas matrices.
Código fuente
md::[Int]->[Int]->Int
md [] []=0
md (x:xs) (y:ys)|k==m=x*y+md xs ys
|otherwise=0
where k=length (x:xs)
m=length (y:ys)
sep::[[Int]]->Int->[Int]
sep [] _=[]
sep (a:ass) e=(a!!(e-1)):sep ass e
mul::[Int]->[[Int]]->Int->[Int]
mul [] _ _=[]
mul (xs) (y:yss) a|a<=length y=d:mul (xs) (y:yss) (a+1)
|otherwise=[]
where k=sep (y:yss) a
d=md xs k
mulmat::[[Int]]->[[Int]]->[[Int]]
mulmat [] qss=[]
mulmat (p:pss) qss|length p==length qss=m:mulmat pss qss
|otherwise=error "el numero de columnas debe ser igual al numero de filas"
where m=mul p (qss) 1
|
|
|
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. |
|