Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 1. feladat
- Készítsen függvényt atomok néven, ami egy listát vesz át paraméterként és
- készítsen bel®le egy olyan listát, melyben az eredeti lista atomjai (és csak az atomok)
- szerepelnek fordított sorrendben!
- (defun atomok (l)
- (let ((ered nil))
- (dolist (x l)
- (if (atom x)
- (setq ered (cons x ered))
- )
- )
- ered
- )
- )
- (print (atomok '(a (b c) d e)))
- -- 2. feladat
- Készítsen függvényt csere néven, három paramétert vesz át, egy listát és két
- értéket (a,b). A függvény cserélje fel a lista adott helyen álló elemeit!
- (defun csere (l i j)
- (rotatef (nth i l) (nth j l))
- (print l)
- )
- //0tol indul az index
- (csere '(1 5 7 6) 1 2)
- -- 3. feladat
- Készítsen rekurzív függvényt negyossz néven, ami pozitív (ellen®rizze) számot vesz át paraméterként, és kiszámolja ezen paraméterig a számok négyzetösszegét!
- (defun negyossz (n)
- (if (> n 0)
- (
- let ((ered 0))
- (loop for i from 1 to n do
- (setq szorzat (* i i))
- (setq ered (+ szorzat ered))
- )
- ered
- )
- "BadInput"
- )
- )
- (print (negyossz -1) )
- -- 4. feladat
- Deniáljon a minmax függvényt, mely egy számokból álló listát vesz át paraméterként és meghatározza a listában szerepl® számok minimumát ill. maximumát.
- (Természetesen a min és a max függvény nem használható.)
- (defun minmax (lista)
- (setq min 1000)
- (setq max 0)
- (setq i 0)
- (loop for i in lista do
- (
- if (< i min)(setq min i)
- )
- )
- (loop for i in lista do
- (
- if (> i max)(setq max i)
- )
- )
- (print 'Min)
- (print min)
- (print 'Max)
- (print max)
- )
- (minmax '(1 2 3 4 5))
- -- 5. feladat
- Deniáljon a prex függvényt, mely egy lista n elem¶ prexét adja eredményül.
- (defun prefix (n lista)
- (subseq lista 0 n)
- )
- (print (prefix 4 '(C G A T T A G)))
- -- 6. feladat
- Készítsen rekurzív függvényt fejfabejar néven, amely egy listát kap paraméterként és bejárja azt a fát, amit a fej-farok gráf reprezentál!
- (defun print-tree (tree)
- (dolist (child (cdr tree))
- (format t "~&~a > ~a" (car tree) (if (consp child)
- (car child)
- child)))
- (dolist (child (cdr tree))
- (if (consp child)
- (print-tree child))))
- (print-tree '(A (B (C 1 2 3) 4)))
- A > B
- B > C
- B > 4
- C > 1
- C > 2
- C > 3
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- (defun fejfabejar (l)
- (or
- (and (null l) (print '_nil))
- (and (atom l) (print l))
- (and (let ((fej nil)
- (farok nil)
- (ered nil)) (print l)
- (setq fej (car l))
- (setq farok (cdr l))
- (fejfabejar fej)
- (fejfabejar farok)
- 'vege
- ))
- )
- )
- (print (fejfabejar '((a b) (c d)) ))
- -- 7. feladat
- Készítsen függvényt terker néven, amely az étvett háromszögre vonatkozó
- három oldalhosszúságból kiszámítja annak területét és kerületét. Szintén ellen®rizzük,
- hogy az oldalhosszúságokból szerkeszthet®-e háromszög!
- (defun haromszog (a b c)
- (cond
- ((not (and (numberp a)
- (numberp b)
- (numberp c)
- )
- ) 'nem_szam)
- ((and (< a (+ b c))
- (< b (+ a c))
- (< c (+ a b))
- )
- 'Szerkesztheto)
- (T 'Nem)
- )
- (print "Kerulet")
- (setq kerulet (+ a b c))
- (print kerulet)
- (print "Terulet")
- (setq terulet
- (* (/ kerulet 2)
- (- (/ kerulet 2) a)
- (- (/ kerulet 2) b)
- (- (/ kerulet 2) c)
- )
- )
- (setq terulet (sqrt terulet))
- )
- (print(haromszog 3 6 5))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement