Laborator 4

Lab 4

Problema 1

(defun abs(x) (if(> x 0) x (- 0 x)))

(defun nott(x) (if (equal x nil) t ))

Problema 2

(defun andd(x y z) (cond ( (equal x nil) nil) ( (equal y nil) nil) ( (equal z nil) nil) (t z) ) )

(defun orr(x y z) (cond ( (not (equal x nil)) x) ( (not(equal y nil) ) y) ( (not(equal z nil) ) z) (t nil) ))

Problema 3

(defun mij (a b c) (cond ((> a b c) b) ((> b a c) a) ( (> c a b) a) ((> a c b) c) ((> b c a) c) ((> c b a) b) ) )

Problema 4

(defun myLast(lista) (car (last lista)))

(defun third(lista) (caddr lista))

Problema 5

(defun myAppend(lista1 lista2) (append lista1 lista2))

(defun palindrom(lista) (equal lista (reverse lista) ))

Problema 6

(defun delta(a b c) ( - (* b b) (* '4 a c) ))

(defun ecgrad2 (a b c)( cond ( (> (delta a b c ) 0) (list (/ (+ (- 0 b ) (sqrt (delta a b c) ) ) (* 2 a) )

(/ (- (- 0 b ) (sqrt (delta a b c) ) ) (* 2 a) )

)

)

( (= (delta a b c ) 0) (/ (- 0 b) (* 2 a) ) )

(t "Solutii complexe" ) )

)

Problema 7

(defun f(x) ( cond ( (<= x (- 0 2 ) ) (EXPT X 2) ) ( (> x 1) (sqrt(+ (expt x 2) 1) ) ) (t (+ x 2) ) ) )

Problema 8

(defun add (lista atom) ( if( member atom lista ) (member atom lista) (append lista ( list atom) ) ) )

Problema 9

(defun operatii () (format t "Introduceti primul numar: " ) (let ( (val1 (read) ))

(if (numberp val1 ) (format t "Introduceti al doilea numar: ") "eroare numar1" ) (let ( (val2 (read) ) )

(if (numberp val2 ) (format t "1-Adunare

2-Scadere

3-Inmultire

4-Impartire

Introduceti operatia dorita: ") "eroare numar2" ) (let ( (val3(read)) )

(if (numberp val3) ( cond ( (= 1 val3 ) (+ val1 val2 ) ) ( (= 2 val3) (- val1 val2) ) ( (= 3 val3) (* val1 val2) )

( (= 4 val3 ) (/ val1 val2) ) ) "eroare numar3" ) )

)

)

)

)