ithoran

VI_Lab_2

Nov 8th, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 15.17 KB | None | 0 0
  1. 1. a)   (defun izmesaj (levo desno rel) (cond                                          
  2.                                          ((null levo) desno)                                          
  3.                                          ((null desno) levo)                                        
  4.                                          ((apply rel (list (car levo) (car desno))) (cons (car levo) (izmesaj (cdr levo) desno rel)))                                        
  5.                                          (t(cons (car desno) (izmesaj levo (cdr desno) rel)))                                        
  6.                                               ))
  7.  
  8. b.)     (defun ost (l1 l2) (cond                                
  9.                                 ((null l1) '())                                
  10.                                 ((null l2) (list l1))                                
  11.                                 ((atom l1) (if (equal l1 (car l2)) '() (ost l1 (cdr l2))))                                
  12.                                 (t(append (ost (car l1) l2) (ost (cdr l1) l2)))                              
  13.                                  
  14.                                      ))
  15.  
  16. 2. a)   (defun list+ (l1 l2) (cond
  17.                                   ((null l1) l2)
  18.                                   ((null l2) l1)
  19.                                   (t(append (list (+ (car l1) (car l2))) (list+ (cdr l1) (cdr l2))))
  20.                                   ))
  21.  
  22.   b)    (defun broj_pojavljivanja (el l) (cond                                                
  23.                                                ((null l) '0)                                              
  24.                                                ((equal el (car l)) (+ 1 (broj_pojavljivanja el (cdr l))))                                              
  25.                                                ((listp (car l)) (+ (broj_pojavljivanja el (car l)) (broj_pojavljivanja el (cdr l))))                                              
  26.                                                (t(broj_pojavljivanja el (cdr l)))                                              
  27.                                                     ))
  28.  
  29. 3. a)   (defun pribavi (n m lista) (cond                                          
  30.                                           ((= 0 (+ n m)) (cond
  31.                                                           ((atom (car lista)) (car lista))
  32.                                                           (t(car (car lista)))
  33.                                                           ))                                          
  34.                                           ((= 0 n) (cond
  35.                                                           ((atom (car lista)) (pribavi n (- m 1) (cdr lista)))
  36.                                                           (t(pribavi n m (car lista)))
  37.                                                           ))                                          
  38.                                           (t(pribavi (- n 1) m (cdr lista)))                                          
  39.                                           ))
  40.  
  41. b.)     (defun brdugih (br lista) (cond                                        
  42.                                        ((null lista) '0)                                      
  43.                                        ((atom (car lista)) (+ 0 (brdugih br (cdr lista))))
  44.                                        ((> br (length (car lista))) (+ 0 (brdugih br (car lista)) (brdugih br (cdr lista))))                                      
  45.                                        (t(+ 1 (brdugih br (car lista)) (brdugih br (cdr lista)) ))                                      
  46.                                             ))
  47.  
  48. 4. a)   (defun pronadji (kljuc alista) (cond                                              
  49.                                              ((null alista) '())                                            
  50.                                              ((equal kljuc (caar alista)) (cadr (car alista)))                                            
  51.                                              (t(pronadji kljuc (cdr alista)))                                            
  52.                                              ))
  53.  
  54. b)  (defun umetni (e1 e2 lista) (cond                                          
  55.                                          ((null lista) '())                                        
  56.                                          ((equal e2 (car lista)) (append (list e1) (list (car lista)) (umetni e1 e2 (cdr lista)) ))                                        
  57.                                          ((atom (car lista)) (append (list (car lista)) (umetni e1 e2 (cdr lista))))                                        
  58.                                          (t(append (list (umetni e1 e2 (car lista))) (umetni e1 e2 (cdr lista)) ))                                        
  59.                                               ))
  60.  
  61. 5. a)   (defun kljucevi (alista) (cond
  62.                                        ((null alista) '())
  63.                                        (t(cons (caar alista) (kljucevi (cdr alista))))
  64.                                        ))
  65.  
  66. b.) (defun clan-p (el lista) (cond                                      
  67.                                        ((null lista) '())                                      
  68.                                        ((equal el (car lista)) t)                                      
  69.                                        ((listp (car lista)) (or (clan-p el (car lista)) (clan-p el (cdr lista))))                                      
  70.                                        (t(clan-p el (cdr lista)))                                        
  71.                                        ))
  72.  
  73. 6. a)   (defun brpon (pom lista) (cond                                        
  74.                                        ((null lista) '())                                      
  75.                                        ((equal (car lista) (cadr lista)) (brpon (1+ pom) (cdr lista)))                                      
  76.                                        (t(append (list (+ 1 pom)) (brpon 0 (cdr lista)) ))                                      
  77.                                             ))
  78.  
  79.  
  80. b)  (defun gldiag (lista) (cond                                    
  81.                                     ((null lista) '())                                    
  82.                                     (t(append (list(nth (- (length lista) 1) (reverse (car lista)))) (gldiag (cdr lista))))            
  83.                                     ))
  84.  
  85. 7. a)   (defun skupi (lista) (cond                                    
  86.                                    ((= 1 (length lista)) '())
  87.                                    (t(append (list (+ (car lista) (cadr lista))) (skupi (cdr lista))))
  88.                                    ))
  89.  
  90. b)  (defun skup-p (lista) (cond                                    
  91.                                     ((= (length lista) 1) t)
  92.                                     ((> (length lista) 1) (if(equal (car lista) (cadr lista)) '() (skup-p (cons (car lista) (cddr lista)))))
  93.                                     (t(and (skup-p (cdr lista)) t))                                    
  94.                                          ))
  95.  
  96.  
  97. 8. a)   (defun podeli (d deljenik) (cond                                          
  98.                                          ((= (length deljenik) 1) (list (/ (- (car deljenik) (mod (car deljenik) d)) d)))
  99.                                          
  100.                                          ((< (car deljenik) d) (cons '0 (podeli d (cons (+ (* (car deljenik) 10) (cadr deljenik)) (cddr deljenik)))))
  101.                                          
  102.                                          (t(cons (/ (- (car deljenik) (mod (car deljenik) d)) d) (podeli d (cons (+ (* (mod (car deljenik) d) 10)(cadr deljenik)) (cddr deljenik)))))
  103.                                          
  104.                                               ))
  105.  
  106. b. )    (defun unija (l1 l2) (cond                                    
  107.                                    ((null l1) l2)
  108.                                    ((null l2) (list l1))                                  
  109.                                    ((atom l1) (if(equal l1 (car l2)) '() (unija l1 (cdr l2))))                                  
  110.                                    (t(append (unija (car l1) l2) (unija (cdr l1) l2)))                                  
  111.                                         ))
  112.  
  113. 9. a)   (defun uporedi (alista) (cond                                      
  114.                                       ((null alista) '0)                                      
  115.                                       ((> (caar alista) (cadr (car alista))) (+ 1 (uporedi (cdr alista))))                                      
  116.                                       (t(+ 0 (uporedi (cdr alista))))                                      
  117.                                            ))
  118.  
  119.  
  120.  
  121. b)  (defun uvecaj (pom lista) (cond
  122.                                        
  123.                                         ((null lista) '())
  124.                                        
  125.                                         ((atom (car lista)) (append (list (+ (car lista) pom)) (uvecaj pom (cdr lista))))
  126.                                        
  127.                                         (t(cons (uvecaj (+ 1 pom) (car lista)) (uvecaj pom (cdr lista))))
  128.                                        
  129.                                         ))
  130.  
  131. 10. a)  (defun napravi (lk lv) (cond                                    
  132.                                     ((null lk) '())                                    
  133.                                     ((null lv) (append (list (list (car lk))) (napravi (cdr lk) lv)))                                    
  134.                                     (t(append (list (append (list (car lk)) (list (car lv)))) (napravi (cdr lk) (cdr lv))))                                    
  135.                                     ))
  136.  
  137. b)  (defun maks (lista) (cond                                  
  138.                                   ((= (length lista) 1) (car lista))                                  
  139.                                   ((listp (car lista)) (maks (cons (maks (car lista)) (cdr lista))))                                  
  140.                                   ((> (car lista) (cadr lista)) (maks (cons (car lista) (cddr lista))))                                  
  141.                                   (t(maks (cdr lista)))))
  142.  
  143. 11. a)  (defun palindrom (lista)  (cond
  144. ((null (cdr lista)) (list (car lista)))
  145.                     (t (append (list (car lista)) (palindrom (cdr lista)) (list (car lista))))))
  146.                                        
  147. b)  (defun brojevip (lista) (cond                                      
  148.                                      ((null lista) t)                                    
  149.                                      ((numberp (car lista)) (and t (brojevip (cdr lista))))                                    
  150.                                      ((listp (car lista)) (and (brojevip (car lista)) (brojevip (cdr lista))))                                    
  151.                                      (t '())                                    
  152.                                      ))
  153.  
  154. 12. a)  (defun razlika (v1 v2) (cond
  155.                                      ((null v1) '())
  156.                                      (t(append (list (- (car v1) (car v2))) (razlika (cdr v1) (cdr v2))))
  157.                                      ))
  158.  
  159.  
  160.  
  161. b.) (defun obrisi (pom ind lista) (cond                                        
  162.                                         ((null lista) '())                                        
  163.                                         ((= pom ind) (obrisi (+ 1 pom) ind (cdr lista)))
  164.                                         ((listp (car lista)) (append (list (obrisi '0 ind (car lista))) (obrisi (+ 1 pom) ind (cdr lista))))                                            
  165.                                             (t(append (list (car lista)) (obrisi (+ 1 pom) ind (cdr lista))))                                        
  166.                                              ))
  167.  
  168.  
  169. 13. a)  (defun polinom (x koef) (cond                                      
  170.                                       ((null koef) '0)                                      
  171.                                       (t(+ (car koef) (* (polinom x (cdr koef)) x)))                                      
  172.                                            ))
  173.  
  174. b)  (defun proizvod (lista) (cond                                      
  175.                                       ((null lista) '1)                                      
  176.                                       ((atom (car lista)) (* (car lista) (proizvod (cdr lista))))
  177.                                       (t(* (proizvod (car lista)) (proizvod (cdr lista))))
  178.                                       ))
  179.  
  180.  
  181. 14.
  182. a)  (defun intenzitet (lista) (cond
  183. ((null lista) '0)
  184.  (t(+ (expt (car lista) 2) (intenzitet (cdr lista))))))
  185. b)  (defun postavi (el n m mat) (cond                                          
  186.                                          ((and (= (+ n m) 0) (listp (car mat))) (append (list (cons el (cdr (car mat)))) (cdr mat)))
  187.                                          ((and (= (+ n m) 0) (atom (car mat))) (cons el (cdr mat)))                                          
  188.                                          ((and (= n 0) (listp (car mat))) (append (list (postavi el n m (car mat))) (cdr mat)))                                          
  189.                                          ((and (= n 0) (atom (car mat))) (cons (car mat) (postavi el n (- m 1) (cdr mat))))                                          
  190.                                          (t(cons (car mat) (postavi el (- n 1) m (cdr mat))))                                    
  191.                                               ))
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. 15. a)  (defun simetrican (levo desno) (cond
  199.                                            ((and (= (mod (+ (length levo) (length desno)) 2) 1) (> (length levo) (length desno)))  (equal (cdr levo) desno))
  200.  ((and (= (mod (+ (length levo) (length desno)) 2) 0) (= (length levo) (length desno)))  (equal levo desno))
  201.                                            (t(simetrican (cons (car desno) levo) (cdr desno)))
  202.                                            ))
  203.  
  204.  
  205.  (defun postavi (br n m mat) (cond
  206.                                           ((and (= (+ n m) 0) (atom (car mat))) (append (list br) (cdr mat)))
  207.                                           ((and (= (+ n m) 0) (listp (car mat))) (append (list (append (list br) (cdr (car mat)))) (cdr mat)))
  208.                                           ((= n 0) (append () (postavi br n (- m 1) (append (list (cdr (car mat))) (cdr mat))) ))
  209.                                           (t(append (car mat) (postavi br (- n 1) m (cdr mat))))))
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  (defun podeli (deli delj) (cond
  217.                                         ((null lista) '())
  218.                                          ((> deli (car delj)) (append (list '0) (podeli deli (append (list (+ (* (car delj) 10) (cadr delj))) (caddr delj)))))
  219.                                         (t(append (list ((x y) (/ (- x (mod x y)) y)))) ()))
Add Comment
Please, Sign In to add comment