SlideShare una empresa de Scribd logo
1 de 3
Práctica 1a
Funciones de listas y matemáticas en Common Lisp
Introducción
Common Lisp (List processing) es un lenguaje funcional que utiliza una notación prefija. Es un lenguaje
muy poderoso para el manejo de expresiones simbólicas. Sus elementos básicos son: átomos, listas y
cadenas de caracteres. En nuestro curso usamos un intérprete de Common Lisp que utiliza el lazo repetitivo
lee-evalúa-imprime. Common Lisp tiene interconstruidas una gran cantidad de funciones matemáticas,
lógicas, predicados, para el manejo de listas, etc. Es un lenguaje no tipado por lo que no es necesario
declarar variables ni tipos antes de usarse. Su principal inconveniente es su exagerado uso de paréntesis,
pero es algo a lo que sus fans llegan a acostumbrarse.
Objetivo
Utilizar las funciones propias de Common Lisp para la manipulación de listas y para el manejo de
operaciones matemáticas, aprendiendo el manejo de la notación prefija.
Actividades
1.- Suponiendo la siguiente definición:
(setq milista '((bush iraq) (nixon watergate) (lopez_obrador complot) (pri pemex_gate)
(pan amigos_de_fox) (ver tele) (no correo_electronico por_favor) (va mexico mundial)))
y basándose en las funciones de Clisp para la manipulación de listas, define y prueba las funciones
necesarias para generar las siguientes listas:
(setq x1 (first milista))
(setq x2 (second milista))
(setq x3 (third milista))
(setq x4 (fourth milista))
(setq x5 (fifth milista))
(setq x6 (sixth milista))
(setq x7 (seventh milista))
(setq x8 (eighth milista))
1.1.- (bush nixon lopez_obrador)
Función definida:
(setq ej1 (append(list (nth 0 x1) (nth 0 x2) (nth 0 x3 ) ) ) )
1.2.- (pemex_gate no)
Función definida:
(setq ej1 (append(list (nth 1 x4) (nth 0 x7) ) ) )
1.3.- (no ver tele por_favor)
Función definida:
(setq ej1(append(list (nth 0 x7) (nth 0 x6) (nth 1 x6) (nth 2 x7) ) ) )
1.4.- (iraq watergate complot pemex_gate amigos_de_fox)
Función definida:
(setq ej1(append (list (nth 1 x1) (nth 1 x2) (nth 1 x3) (nth 1 x4) (nth 1 x5) ) ) )
1.5.- (mexico no iraq)
Función definida:
(setq ej1 (append(list (nth 1 x8) (nth 0 x7) (nth 1 x1) ) ) )
1.6.- (correo_electronico pri pan)
Función definida:
(setq ej1 (append (list ( nth 1 x7) (nth 0 x4) (nth 0 x5) ) ) )
2.- Tomando cómo ejemplo el siguiente código que calcula el área y perímetro de un círculo:
(defun area-perimetro ()
(princ “teclea el radio, por favor: “)
(setq radio (read))
(setq perimetro (* 2 pi radio))
(setq area (* pi radio radio))
(format t “Radio: ~5F. Perimetro: ~5F. Area: ~5F” radio perimetro area)
)
2.1.- Define una función que pida los valores de a, b y c, evalúe y despliegue el resultado de la siguiente
función:
f = (b2
– 4ac)1/2
(defun ejercicio ()
(princ "Ingresa el valor de a: ")
(setq a (read))
(princ "Ingresa el valor de b: ")
(setq b (read))
(princ "Ingresa el valor de c: ")
(setq c (read))
(setq f (sqrt (- (expt b 2) (* 4 a c) ) ) )
(princ f)
)
2.2.- Prueba la función para los siguientes valores:
i) a=1, b=2, c=3 Resultado: __ 2.828 _______
ii) a=1, b=3, c=2 Resultado: ___1____________
iii) a= 10, b=20, c=5 Resultado: ___14.142_______
iv) a= 20, b=10, c=8 Resultado: ________________
3.- Un palíndromo es una secuencia de caracteres que se leen igual al derecho que al revés. La función
PALINDROMEP siguiente verifica si una lista es un palíndromo.
(defun palindromop (lst)
(equal lst (reverse lst)) )
Por ejemplo:
>(palindromop '(1 2 3 4 5 4 3 2 1))
T
>(palindromop '(a b b a))
T
>(palindromop '(1 2 3))
NIL
Escribe una versión recursiva de esta función y llámala R-PALINDROMOP sin usar la función reverse.
(Inserta aquí el código de R-PALINDROMOP)
4.- Comentarios y conclusiones
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Python workshop
Python workshopPython workshop
Python workshop
 
Gustavo medina
Gustavo medinaGustavo medina
Gustavo medina
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
 
Tarea n°2
Tarea n°2Tarea n°2
Tarea n°2
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento-
 
Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_Estructura basica de_un_programa_en_c_
Estructura basica de_un_programa_en_c_
 
String
StringString
String
 
Programación C++
Programación C++Programación C++
Programación C++
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
 
Ejemplo 1
Ejemplo 1Ejemplo 1
Ejemplo 1
 
Tarea sesion 08_gottlieb
Tarea sesion 08_gottliebTarea sesion 08_gottlieb
Tarea sesion 08_gottlieb
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
Script de Punteros a Funciones
Script de Punteros a FuncionesScript de Punteros a Funciones
Script de Punteros a Funciones
 
Pract met de la program templa
Pract met de la program templaPract met de la program templa
Pract met de la program templa
 
Punteros a Funciones en C
Punteros a Funciones en CPunteros a Funciones en C
Punteros a Funciones en C
 

Similar a Tarea2 hectorlopezmontielprac1funclistasclisp

S iy rn 2014-1 balotario de la pc1
S iy rn 2014-1 balotario de la pc1S iy rn 2014-1 balotario de la pc1
S iy rn 2014-1 balotario de la pc1jcbp_peru
 
Matlab Función Arco Tangente
Matlab Función Arco TangenteMatlab Función Arco Tangente
Matlab Función Arco TangenteCristhian Salcedo
 
Matlab Neural Network Toolbox MATLAB
Matlab Neural Network Toolbox MATLABMatlab Neural Network Toolbox MATLAB
Matlab Neural Network Toolbox MATLABESCOM
 
Funciones Básicas - EMdH
Funciones Básicas - EMdHFunciones Básicas - EMdH
Funciones Básicas - EMdHAdela M. Ramos
 
redes neuronales funciones
redes neuronales  funcionesredes neuronales  funciones
redes neuronales funcionesMarc Llanos
 
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)Ejercicios de Matemáticas 1 er. parcial (UVM-2014)
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)JAVIER SOLIS NOYOLA
 
Caso Practico Funciones Exponenciales
Caso Practico Funciones ExponencialesCaso Practico Funciones Exponenciales
Caso Practico Funciones ExponencialesJudith Tornel
 
Guia quinto 2009
Guia quinto 2009Guia quinto 2009
Guia quinto 2009gtorres3112
 
Graficar funciones ejercicios finales
Graficar funciones ejercicios finalesGraficar funciones ejercicios finales
Graficar funciones ejercicios finalesFabian Muñoz
 
Ia 2014 1 balotario de la pc1
Ia 2014 1 balotario de la pc1Ia 2014 1 balotario de la pc1
Ia 2014 1 balotario de la pc1jcbp_peru
 
Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3jcbenitezp
 
Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3jcbenitezp
 
Utp ia_sl1 funciones de rna
 Utp ia_sl1 funciones de rna Utp ia_sl1 funciones de rna
Utp ia_sl1 funciones de rnajcbenitezp
 
Guía análisis I y II (2).pdf
Guía análisis I y II (2).pdfGuía análisis I y II (2).pdf
Guía análisis I y II (2).pdfEzequielMoises1
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156RossiHeredia1
 

Similar a Tarea2 hectorlopezmontielprac1funclistasclisp (20)

S iy rn 2014-1 balotario de la pc1
S iy rn 2014-1 balotario de la pc1S iy rn 2014-1 balotario de la pc1
S iy rn 2014-1 balotario de la pc1
 
Matlab Función Arco Tangente
Matlab Función Arco TangenteMatlab Función Arco Tangente
Matlab Función Arco Tangente
 
Parte2
Parte2Parte2
Parte2
 
Actividad N°2.Primera Parte.
Actividad N°2.Primera Parte.Actividad N°2.Primera Parte.
Actividad N°2.Primera Parte.
 
Matlab Neural Network Toolbox MATLAB
Matlab Neural Network Toolbox MATLABMatlab Neural Network Toolbox MATLAB
Matlab Neural Network Toolbox MATLAB
 
Funciones Básicas - EMdH
Funciones Básicas - EMdHFunciones Básicas - EMdH
Funciones Básicas - EMdH
 
redes neuronales funciones
redes neuronales  funcionesredes neuronales  funciones
redes neuronales funciones
 
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)Ejercicios de Matemáticas 1 er. parcial (UVM-2014)
Ejercicios de Matemáticas 1 er. parcial (UVM-2014)
 
Caso Practico Funciones Exponenciales
Caso Practico Funciones ExponencialesCaso Practico Funciones Exponenciales
Caso Practico Funciones Exponenciales
 
Guia quinto 2009
Guia quinto 2009Guia quinto 2009
Guia quinto 2009
 
Guia quinto 2009
Guia quinto 2009Guia quinto 2009
Guia quinto 2009
 
Graficar funciones ejercicios finales
Graficar funciones ejercicios finalesGraficar funciones ejercicios finales
Graficar funciones ejercicios finales
 
Ia 2014 1 balotario de la pc1
Ia 2014 1 balotario de la pc1Ia 2014 1 balotario de la pc1
Ia 2014 1 balotario de la pc1
 
Pf con scala
Pf con scalaPf con scala
Pf con scala
 
Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3
 
Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3Utp sirn l1_funciones 2013-3
Utp sirn l1_funciones 2013-3
 
Utp ia_sl1 funciones de rna
 Utp ia_sl1 funciones de rna Utp ia_sl1 funciones de rna
Utp ia_sl1 funciones de rna
 
Explicaciones 1.pdf
Explicaciones 1.pdfExplicaciones 1.pdf
Explicaciones 1.pdf
 
Guía análisis I y II (2).pdf
Guía análisis I y II (2).pdfGuía análisis I y II (2).pdf
Guía análisis I y II (2).pdf
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 

Tarea2 hectorlopezmontielprac1funclistasclisp

  • 1. Práctica 1a Funciones de listas y matemáticas en Common Lisp Introducción Common Lisp (List processing) es un lenguaje funcional que utiliza una notación prefija. Es un lenguaje muy poderoso para el manejo de expresiones simbólicas. Sus elementos básicos son: átomos, listas y cadenas de caracteres. En nuestro curso usamos un intérprete de Common Lisp que utiliza el lazo repetitivo lee-evalúa-imprime. Common Lisp tiene interconstruidas una gran cantidad de funciones matemáticas, lógicas, predicados, para el manejo de listas, etc. Es un lenguaje no tipado por lo que no es necesario declarar variables ni tipos antes de usarse. Su principal inconveniente es su exagerado uso de paréntesis, pero es algo a lo que sus fans llegan a acostumbrarse. Objetivo Utilizar las funciones propias de Common Lisp para la manipulación de listas y para el manejo de operaciones matemáticas, aprendiendo el manejo de la notación prefija. Actividades 1.- Suponiendo la siguiente definición: (setq milista '((bush iraq) (nixon watergate) (lopez_obrador complot) (pri pemex_gate) (pan amigos_de_fox) (ver tele) (no correo_electronico por_favor) (va mexico mundial))) y basándose en las funciones de Clisp para la manipulación de listas, define y prueba las funciones necesarias para generar las siguientes listas: (setq x1 (first milista)) (setq x2 (second milista)) (setq x3 (third milista)) (setq x4 (fourth milista)) (setq x5 (fifth milista)) (setq x6 (sixth milista)) (setq x7 (seventh milista)) (setq x8 (eighth milista)) 1.1.- (bush nixon lopez_obrador) Función definida: (setq ej1 (append(list (nth 0 x1) (nth 0 x2) (nth 0 x3 ) ) ) ) 1.2.- (pemex_gate no) Función definida: (setq ej1 (append(list (nth 1 x4) (nth 0 x7) ) ) ) 1.3.- (no ver tele por_favor) Función definida: (setq ej1(append(list (nth 0 x7) (nth 0 x6) (nth 1 x6) (nth 2 x7) ) ) ) 1.4.- (iraq watergate complot pemex_gate amigos_de_fox) Función definida: (setq ej1(append (list (nth 1 x1) (nth 1 x2) (nth 1 x3) (nth 1 x4) (nth 1 x5) ) ) ) 1.5.- (mexico no iraq) Función definida: (setq ej1 (append(list (nth 1 x8) (nth 0 x7) (nth 1 x1) ) ) ) 1.6.- (correo_electronico pri pan)
  • 2. Función definida: (setq ej1 (append (list ( nth 1 x7) (nth 0 x4) (nth 0 x5) ) ) ) 2.- Tomando cómo ejemplo el siguiente código que calcula el área y perímetro de un círculo: (defun area-perimetro () (princ “teclea el radio, por favor: “) (setq radio (read)) (setq perimetro (* 2 pi radio)) (setq area (* pi radio radio)) (format t “Radio: ~5F. Perimetro: ~5F. Area: ~5F” radio perimetro area) ) 2.1.- Define una función que pida los valores de a, b y c, evalúe y despliegue el resultado de la siguiente función: f = (b2 – 4ac)1/2 (defun ejercicio () (princ "Ingresa el valor de a: ") (setq a (read)) (princ "Ingresa el valor de b: ") (setq b (read)) (princ "Ingresa el valor de c: ") (setq c (read)) (setq f (sqrt (- (expt b 2) (* 4 a c) ) ) ) (princ f) ) 2.2.- Prueba la función para los siguientes valores: i) a=1, b=2, c=3 Resultado: __ 2.828 _______ ii) a=1, b=3, c=2 Resultado: ___1____________ iii) a= 10, b=20, c=5 Resultado: ___14.142_______ iv) a= 20, b=10, c=8 Resultado: ________________ 3.- Un palíndromo es una secuencia de caracteres que se leen igual al derecho que al revés. La función PALINDROMEP siguiente verifica si una lista es un palíndromo. (defun palindromop (lst) (equal lst (reverse lst)) ) Por ejemplo: >(palindromop '(1 2 3 4 5 4 3 2 1)) T >(palindromop '(a b b a)) T >(palindromop '(1 2 3)) NIL Escribe una versión recursiva de esta función y llámala R-PALINDROMOP sin usar la función reverse. (Inserta aquí el código de R-PALINDROMOP)
  • 3. 4.- Comentarios y conclusiones _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________