Advertisement
Guest User

Untitled

a guest
Jan 11th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. (defun read-input(p)
  4. (cond
  5.    ((null p) nil)
  6.    (T (cons p (read-input (read nil nil))))
  7. )
  8. )
  9.  
  10. (defun readinput(i)
  11.     (cdr (read-input 1))
  12. )
  13.  
  14.  
  15. (defun dep (lista d maxd)       ;maksimalna dlabocina
  16.     (cond
  17.         ((null lista) maxd)
  18.         ((atom (car lista)) (dep (cdr lista) d maxd))
  19.         (T (dep (cdr lista) d (dep (car lista) (+ 1 d) (max (+ 1 d) maxd))))
  20.         )
  21.     )
  22.  
  23.  
  24. (defun elemsDep (lista tmpdep dep)    ;lista od elementite na edno nivo
  25.     (cond
  26.         ((null lista) nil)
  27.         ((and (atom (car lista)) (eq tmpdep dep))
  28.             (cons (car lista) (elemsDep (cdr lista) tmpdep dep)))
  29.         ((listp (car lista))
  30.             (append (elemsDep (car lista) (+ 1 tmpdep) dep) (elemsDep (cdr lista) tmpdep dep)))
  31.         (T (elemsDep (cdr lista) tmpdep dep))
  32.         )
  33.     )
  34.  
  35. (defun suma (lista)   ;suma od elementite na edno nivo
  36.     (cond
  37.         ((null lista) 0)
  38.         (T (+ (car lista) (suma (cdr lista))))
  39.         )
  40.     )
  41.  
  42. (defun prosek (lista)
  43.     (cond
  44.         ((null lista) 0)
  45.         (T (float(/ (suma lista) (length lista ))))
  46.         )
  47.     )
  48.  
  49. (defun istaDlabocina (lista maxdep)
  50.     (cond
  51.         ((eq maxdep -1) nil)
  52.         (T (append (list(elemsDep lista 0 maxdep)) (istaDlabocina lista (- maxdep 1))))
  53.         )
  54.     )
  55.  
  56. (defun najgolemProsek (lista maxprosek pom)
  57.     (cond
  58.         ((null lista) pom)
  59.         ( (> (prosek (car lista)) maxprosek)
  60.              (najgolemProsek (cdr lista) (prosek (car lista)) (car lista)))
  61.         (T (najgolemProsek (cdr lista) maxprosek pom))
  62.         )
  63.     )
  64.  
  65.  
  66.  
  67.  
  68. (setq maxdep (dep '(1 5 (3 (8) 6 (7 (9)) )(4 (11 (20 ((2))) 13)) (7 ((1) (5)))) 0 0))
  69. (setq novalista (reverse(istaDlabocina '(1 5 (3 (8) 6 (7 (9)) )(4 (11 (20 ((2))) 13)) (7 ((1) (5)))) maxdep)))
  70. (print (reverse(istaDlabocina '(1 5 (3 (8) 6 (7 (9)) )(4 (11 (20 ((2))) 13)) (7 ((1) (5)))) maxdep)))
  71. (print (najgolemProsek novalista 0 nil))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement