Advertisement
Guest User

Untitled

a guest
May 7th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 3.96 KB | None | 0 0
  1. -- 1. feladat
  2. Készítsen függvényt atomok néven, ami egy listát vesz át paraméterként és
  3. készítsen bel®le egy olyan listát, melyben az eredeti lista atomjai (és csak az atomok)
  4. szerepelnek fordított sorrendben!
  5.  
  6. (defun atomok (l)
  7.     (let ((ered nil))
  8.         (dolist (x l)
  9.             (if (atom x)
  10.                 (setq ered (cons x ered))
  11.             )
  12.         )
  13.         ered
  14.     )
  15. )
  16.  
  17. (print (atomok '(a (b c) d e)))
  18.  
  19. -- 2. feladat
  20. Készítsen függvényt csere néven, három paramétert vesz át, egy listát és két
  21. értéket (a,b). A függvény cserélje fel a lista adott helyen álló elemeit!
  22.  
  23. (defun csere (l i j)
  24.     (rotatef (nth i l) (nth j l))
  25.     (print l)
  26. )
  27.  
  28. //0tol indul az index
  29.  
  30. (csere '(1 5 7 6) 1 2)
  31.  
  32. -- 3. feladat
  33. 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!
  34.  
  35. (defun negyossz (n)
  36.  
  37.     (if (> n 0)
  38.         (
  39.          let ((ered 0))
  40.                       (loop for i from 1 to n do
  41.                           (setq szorzat (* i i))      
  42.                           (setq ered (+ szorzat ered))
  43.                      )
  44.                  ered
  45.         )
  46.         "BadInput"
  47.     )
  48. )
  49.  
  50. (print (negyossz -1) )
  51.  
  52. -- 4. feladat
  53. 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.
  54. (Természetesen a min és a max függvény nem használható.)
  55.  
  56. (defun minmax (lista)
  57.     (setq min 1000)
  58.     (setq max 0)
  59.     (setq i 0)
  60.     (loop for i in lista do
  61.          (
  62.              if (< i min)(setq min i)    
  63.          )
  64.     )
  65.     (loop for i in lista do
  66.          (
  67.              if (> i max)(setq max i)    
  68.          )
  69.     )
  70.     (print 'Min)
  71.     (print min)
  72.     (print 'Max)
  73.     (print max)
  74. )
  75.  
  76. (minmax '(1 2 3 4 5))
  77.  
  78. -- 5. feladat
  79. Deniáljon a prex függvényt, mely egy lista n elem¶ prexét adja eredményül.
  80.  
  81. (defun prefix (n lista)
  82.    (subseq lista 0 n)
  83. )
  84.  
  85. (print (prefix 4 '(C G A T T A G)))
  86.  
  87. -- 6. feladat
  88. 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!
  89.  
  90.  
  91. (defun print-tree (tree)
  92.   (dolist (child (cdr tree))
  93.     (format t "~&~a > ~a" (car tree) (if (consp child)
  94.                                          (car child)
  95.                                        child)))
  96.   (dolist (child (cdr tree))
  97.     (if (consp child)
  98.         (print-tree child))))
  99.  
  100.  
  101. (print-tree '(A (B (C 1 2 3) 4)))
  102. A > B
  103. B > C
  104. B > 4
  105. C > 1
  106. C > 2
  107. C > 3
  108.  
  109. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  110.  
  111. (defun fejfabejar (l)
  112.     (or
  113.         (and (null l) (print '_nil))
  114.         (and (atom l)  (print l))
  115.         (and (let ((fej nil)
  116.             (farok nil)
  117.             (ered nil)) (print l)
  118.             (setq fej (car l))
  119.             (setq farok (cdr l))
  120.             (fejfabejar fej)
  121.             (fejfabejar farok)
  122.             'vege
  123.         ))
  124.     )
  125. )
  126.  
  127. (print (fejfabejar '((a b) (c d))   ))
  128.  
  129. -- 7. feladat
  130. Készítsen függvényt terker néven, amely az étvett háromszögre vonatkozó
  131. három oldalhosszúságból kiszámítja annak területét és kerületét. Szintén ellen®rizzük,
  132. hogy az oldalhosszúságokból szerkeszthet®-e háromszög!
  133.  
  134. (defun haromszog (a b c)
  135.      (cond
  136.        ((not (and (numberp a)
  137.                   (numberp b)
  138.                   (numberp c)
  139.               )
  140.          ) 'nem_szam)
  141.        ((and (< a (+ b c))
  142.              (< b (+ a c))
  143.              (< c (+ a b))
  144.          )
  145.          'Szerkesztheto)
  146.         (T 'Nem)
  147.      )
  148.     (print "Kerulet")
  149.     (setq kerulet (+ a b c))
  150.     (print kerulet)
  151.     (print "Terulet")
  152.     (setq terulet
  153.         (* (/ kerulet 2)
  154.         (- (/ kerulet 2) a)
  155.         (- (/ kerulet 2) b)
  156.         (- (/ kerulet 2) c)
  157.         )
  158.     )
  159.     (setq terulet (sqrt terulet))
  160. )
  161.  
  162. (print(haromszog 3 6 5))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement