esepro
(prog1 (print "funzioni matematiche con LISP") (print "-----------------------------")(terpri) (prin1 "radice quadrata......")(prin1( sqrt 100))(terpri) (prin1 "logaritmo naturale...")(prin1(log 100))(terpri) (prin1 "quadrato.............")(prin1(expt 10 2))(terpri) (prin1 "logaritmo decimale...")(prin1(log 100 10))(terpri) (prin1 "esponenziale.........")(prin1(exp 3))(terpri) (prin1 "Massimo Comun Div....")(prin1(GCD 100 50 20))(terpri) (prin1 "Minimo Comune Mul....")(prin1(LCM 100 50 20))(terpri) (prin1 "somma ...............")(prin1(+ 1 2 3))(terpri) (prin1 "differenza...........")(prin1(- 100 50 40))(terpri) (prin1 "prodotto.............")(prin1(* 10 5 2))(terpri) (prin1 "quoziente............")(prin1(/ 100 5 2))(terpri) (prin1 "reciproco............")(prin1(/ 5))(terpri) (prin1 "------------------------------------------")(terpri) (setq x 1) (prin1 "seno.................")(prin1(sin x))(terpri) (prin1 "coseno...............")(prin1(cos x))(terpri) (prin1 "tan..................")(prin1(tan x))(terpri) (prin1 "arcoseno.............")(prin1(asin x))(terpri) (prin1 "arcocoseno...........")(prin1(acos x))(terpri) (prin1 "arcotangente.........")(prin1(atan x))(terpri) (prin1 "senoiperbolico.......")(prin1(sinh x))(terpri) (prin1 "cosenoiperbolico.....")(prin1(cosh x))(terpri) (prin1 "tangente iperbolica..")(prin1(tanh x))(terpri) (prin1 "arcoseno iper........")(prin1(asinh x))(terpri) (prin1 "arcocoseno iper......")(prin1(acosh x))(terpri) (prin1 "arcotangente iper....")(prin1(atanh 5))(terpri) (print "==========================================") )
(prog1
(defun cubo(x) (setq y(* x x x)) (prin1 "cubo :")(prin1 y)(terpri))
(defun MCD(a b c) (setq massimo(GCD a b c)) (prin1 "massimo comun divisore ")(prin1 massimo)(terpri))
(terpri) (cubo 2) (MCD 100 50 20) (cubo 3) (cubo 5) (MCD 2 6 16) (print "--------------------") (print "fine") )
(prog1 (defun chiede(inizio volte) (let((a 0)(b 0)(x 0)(c 0)) (do((conta inizio(+ conta 1)) (totale "fine prova")) ((= conta volte)totale) (setq x(read))(setq a x) (setq b(+ b a)) (terpri) (prin1 "somma progressiva:") (print b) (terpri) (setq c(sqrt a)) (prin1 "radice quadrata:") (print c) (terpri) (write-line"------------"))))
(defun esegue(x y) (setq somma(+ x y)) (print somma))
;INIZIO PROGRAMMA PRINCIPALE con chiamata a funzioni precedenti
(print "scrivere 5 numeri seguiti sempre da return") (terpri) (chiede 1 5) (terpri) (print "somma due numeri assegnati") (esegue 8 9) (terpri) (print "esegue somma di 100 e 200") (esegue 100 200) (terpri) (print "scrivere altri 3 numeri seguiti da return") (terpri) (chiede 1 4) (terpri) (print "fine programma") )
(prog1 (defvar x 100) (setq radice(sqrt x)) (setq quadrato (expt x 2)) (setq ln (log x)) (setq log10(log x 10)) (setq esponenziale(exp 3)) (prin1 "numero.....")(prin1 x)(terpri) (prin1 "quadrato...")(prin1 quadrato)(terpri) (prin1 "neperiano..")(prin1 ln)(terpri) (prin1 "decimale...")(prin1 log10)(terpri) (prin1 "esponenz...")(prin1 esponenziale)(terpri) (prin1 "radice q...")(prin1 radice)(terpri) (terpri) (print " fine") )
(prog1 ;formato numeri interi (print #2R1101) (print #25R-7H) (print #B1101) (print #2R1101) (print #O325) (print #8R325) (print #XD5) (print #16RD5) (print #B-1101) ;formato numeri razionali (terpri) (print 22/7) (print -1/3) (print (/ 2 3)) (print (* 5/2 -4/5)) ;formato numeri decimali (print 3.142) (print 6.02E+23) (print 60.2E+22) (print 602E+21) (print -272.8) ;----------------------- (print "fine") )