ejercicios de lisp

Páginas: 7 (1683 palabras) Publicado: 11 de mayo de 2013
Ejercicios B´ sicos de Lisp
a
Ingenier´a en Inform´ tica
ı
a

1.

Enunciados
1. Escribir la funcion rotar que rota los elementos de una lista hacia la derecha o hacia la izquierda
>
>
>
>

(rotar-derecha ’(1 2 3 4))
(4 1 2 3)
(rotar-izquierda ’(1 2 3 4))
(2 3 4 1)

2. Escribir la funci´ n calcula-cuadrados que recibe una lista de n´ meros y devuelve otra lista con el cuadraou
do de cada elemento
> (calcula-cuadrados ’(1 2 3 4))
> (1 4 9 16)
3. Escribir la funci´ n cuenta-pares que recibe una lista y devuelve cuantos n´ meros pares tiene
o
u
> (cuenta-pares ’(1 2 3 4))
> 2
4. Escribir la funci´ n resta-listas que devuelve una lista con los elmentos de la primera lista que no aparecen
o
en la segunda
> (resta-listas ’(1 2 3 4) ’(2 3))
> (1 4)
5. Escribirla funci´ n suma-listas que devuelve una lista con los elementos de la primera lista y los de la
o
segunda que no aparecen en la primera
> (suma-listas ’(1 2 3 4) ’(2 3 5))
> (1 2 3 4 5)
´
6. Escribir la funci´ n get-posicion que determina la posici´ n de un atomo en la lista
o
o
> (get-posicion ’c ’(a b c d))
> 3
7. Escribir el predicado es-primo-p que indica si un n´ mero es primo ono
u
>
>
>
>

(es-primo-p 10)
nil
(es-primo-p 5)
t
1

8. Escribir la funci´ n invertir que invierte el contenido de una lista
o
> (invertir ’(1 2 3 4))
> (4 3 2 1)
9. Escribir la funci´ n get-numeros que extrae todos los n´ meros que aparecen en una lista
o
u
> (get-numeros ’((1 (2)) a (((5 c 7))) 4))
> (1 2 5 7 4)
10. Escribir la funci´ n get-profundidad que obtiene el n´mero m´ ximo de listas anidadas que aparecen en
o
u
a
una lista
> (get-profundidad ’((1 (2)) (((5 7))) 4))
> 3
11. Escribir una funci´ n que reciba una lista de n´ meros y retorne una lista de n´ meros sum´ ndole su posio
u
u
a
ci´ n a cada numero de la lista.
o
> (suma-posicion ’(1 3 7 -2))
> (2 5 10 2)
12. Escribir la funci´ n calcula-diferencia que recibe una lista de n´ meros ydevuelve otra lista con la difero
u
´
encia entre un n´ mero y su sucesor en la lista. (El ultimo elemento no cuenta)
u
> (calcula-diferencia ’(10 6 2 5 -4))
> (4 4 -3 9)
13. Escribir la funci´ n separa-parimpar que recibe una lista de n´ meros y retorna una lista con una sublista
o
u
de los pares y otra sublista con los impares.
> (separa-parimpar ’(1 2 3 5 6 8 9 11 12))
> ((12 8 6 2)(11 9 5 3 1))
14. Escribir la funci´ n cambia-notacion que transforme una expresi´ n con operaciones matem´ ticas escritas
o
o
a
en notaci´ n funcional de LISP a su notaci´ n infija correspondiente.
o
o
> (cambia-notacion ’(+ (* 7 4) (* 5 3) (- (/ 30 (* 2 3)) 1)))
> ((7 * 4) + (5 * 3) + ((30 / (2 * 3)) - 1))
15. Escribir una funci´ n que a partir de los elementos de una lista cree unconjunto de todos los posibles
o
pares ordenados
> (pares-ordenados ’(a b c ))
> ((A . B) (A . C) (B . A) (B . C) (C . A) (C . B))
16. Dada la siguiente estructura
(defstruct punto
(valx 0)
(valy 0))
17. Escribir una funci´ n que reciba como par´ metros 2 puntos y calcule la distancia eucl´dea entre ellos.
o
a
ı
2

> (distancia-puntos (make-punto :valx 8 :valy 6) (make-punto))
> 1018. Escribir una funci´ n que convierta una lista de n´ meros en un vector de n´ meros con los mismos eleo
u
u
mentos.
>(array-to-vector ’(1 2 3 4 6 7))
> #(1 2 3 4 6 7)
19. Escribir una funci´ n que determine si una lista de n´ meros esta ordenada o no.
o
u
>(is-ordenada ’(1 3 5 7 10))
> T
>(is-ordenada ’(1 3 15 5 7))
> NIL
>(is-ordenada ’(15 11 3))
> T
20. Escribir la funci´ n quedivida una lista en 2 partes iguales y retorne una lista con las 2 nuevas sublistas
o
(Si la cantidad de elementos es impar la primera sublista deber´ tener un elemento m´ s).
a
a
>
>
>
>

(dividir-lista ’(a b c d e))
((a b c) (d e))
(dividir-lista ’(1 2 3 4 5 6))
((1 2 3) (4 5 6))

21. Escribir una funci´ n que a partir de una lista copie en un fichero “inversa.txt” la lista y la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ejercicio Lisp
  • Ejercicios LISP
  • Ejercicios De Lecoq-Lispa
  • Lisp
  • lisp
  • lisp
  • Lisp
  • lisp dicertacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS