Uživatelské nástroje

Nástroje pro tento web


pitel:izu:uloha3

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
pitel:izu:uloha3 [02. 04. 2013, 08.59:21] – file pitelpitel:izu:uloha3 [30. 12. 2022, 13.43:01] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== Úkol 3 ======
 +Vyzkoušet si práci s jazykem LISP.
  
 +<file lisp funkce.lsp>
 +;faktorial
 +
 +(defun fact (n)
 +       (cond ((= n 1) 1)
 +             (t (* n (fact (- n 1))))))
 +
 +;----------------
 +;fibonacci
 +; fib (0) = 0
 +; fib (1) = 1
 +; fib (n) = fib (n-1) + fib (n-2)
 + 
 +(defun fib (n)
 + (if (< n 2)
 +    n
 +    (+ (fib (- n 1)) (fib (- n 2)))))
 +
 + 
 +;ackermanova fce
 +;m >= 0, n >= 0
 +;ack(0, n) = n+1
 +;ack(m, 0) = ack(m-1, 1)
 +;ack(m, n) = ack(m-1, ack(m, n-1))
 +
 +(defun ack (m n)
 +  (cond
 +   ((zerop m) (1+ n))
 +   ((zerop n) (ack (1- m) 1))
 +   (t (ack (1- m) (ack m (1- n))))))
 +</file>
 +
 +<file lisp seznamy.lsp>
 +; spojeni seznamu
 +
 +(defun spoj (L1 L2) 
 +  (cond ((NULL L1) L2)
 +        (T (cons (car L1) (spoj (cdr L1) L2)))  
 +  )
 +)
 +
 +; vytvorte
 +;obraceni obecneho seznamu obratOb(seznam)
 +(defun obratOb (S)
 +   (cond ((null S) nil)
 +                ((atom (car S)) (spoj (obratOb (cdr S)) (cons (car S) nil)))
 +                (T (spoj (obratOb (cdr S)) (cons (obratOb (car S)) nil)))
 +        )
 +)
 +
 +; test zda je prvek obsazen v obecnem seznamu jePrvekOb(seznam, prvek)
 +(defun jePrvekOb (S P)
 +        (cond ((NULL S) nil)
 +                ((atom S) (= S P))
 +                (t (or (jePrvekOb (car S) P) (jePrvekOb (cdr S) P)) )
 +        )
 +)
 +
 +; prumer prvku obecneho seznamu prumerPrvkuOb(seznam)
 +(defun prumerPrvkuOb (S)
 +        (cond ((null S) ())
 +                (T (/ (soucetPrvkuOb S) (pocetPrvku S)))
 +        )
 +)
 +
 +(defun pocetPrvku (S)
 +        (cond ((null S) 0)
 +                ((atom (car S)) (+ 1 (pocetPrvku(cdr S))))
 +                (T (+ (pocetPrvku (car S)) (pocetPrvku (cdr S))))
 +        )
 +)
 +
 +; soucet prvku obecneho seznamu soucetPrvkuOb(seznam)
 +(defun soucetPrvkuOb (S)
 +        (cond ((null S) 0)
 +                ((atom (car S)) (+ (car S) (soucetPrvkuOb (cdr S))))
 +                (T (+ (soucetPrvkuOb (car S)) (soucetPrvkuOb (cdr S))))
 +        )
 +)
 +; overeni monotonnosti linearniho seznamu monotonnostLin(seznam)
 +;monotonnostLin 
 +(defun monotonnostLin (S)
 +  (or (roste S) (klesa S))
 +)
 +
 +(defun roste (S)
 +  (cond ((null S) T)
 +    ((null (cdr S)) T)
 +    (T (and (<= (car S) (car (cdr S))) (roste (cdr S))))
 +  ) 
 +)
 +
 +(defun klesa (S)
 +  (cond ((null S) T)
 +    ((null (cdr S)) T)
 +    (T (and (>= (car S) (car (cdr S))) (klesa (cdr S))))
 +  ) 
 +)
 +</file>
/var/www/wiki/data/attic/pitel/izu/uloha3.1364893161.txt.bz2 · Poslední úprava: 30. 12. 2022, 13.43:01 (upraveno mimo DokuWiki)