-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEjercicio2.lisp
88 lines (71 loc) · 1.65 KB
/
Ejercicio2.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
; *******************
; ** funcion menor **
; *******************
(defun min_value
; parametros y descripcion
(arr) "funcion que devuelve el valor menor de un array"
; definir variable menor = arr[0]
(setq menor (car arr))
; iterar lista
(dolist (i arr)
; if ( i < menor ) then
(if (< i menor)
; menor = i
(setq menor i)
)
)
;The return value of the function is the value returned by the last executed form of the body.
menor
)
; *******************
; ** funcion mayor **
; *******************
(defun max_value
(arr) "funcion que devuelve el valor mayor de un array"
(setq max (car arr))
(dolist (i arr)
(if (> i max)
(setq max i)
)
)
max
)
; **********************
; ** funcion promedio **
; **********************
(defun prom
(arr) "funcion que devuelve el promedio de un array"
(setq sum 0)
(setq cant 0)
(dolist (i arr)
(setq sum (+ sum i))
(setq cant (+ cant 1))
)
(setq prom (/ sum cant))
)
;crear lista numerica
(setf v1
(list 8 5 2 7 3 9 1 4 6 ))
(print "Sea el array")
(write v1)
(print "Sin funciones nativas:")
; ejecutar funciones
(setq result (max_value v1))
(print "El mayor es:")
(write result)
(setq result (min_value v1))
(print "El menor es:")
(write result)
(setq result (prom v1))
(print "El promedio de elementos es:")
(write result)
(print "Con funciones nativas:")
(setq result (apply 'max v1))
(print "El mayor es:")
(write result)
(setq result (apply 'min v1))
(print "El menor es:")
(write result)
(setq result (prom v1))
(print "El mayor es:")
(write result)