Česky
Kamil Dudka

Tiny programs (C, C++, C#, ...)

File detail

Name:Downloadseznamy.lsp [Download]
Location: tiny > IZU > lisp
Size:1.7 KB
Last modification:2022-09-09 13:06

Source code

; spojeni seznamu
(defun spoj (L1 L2)
  (cond ((null L1) L2)
        (t (cons (car L1) (spoj (cdr L1) L2)))  
  )
)
 
;obraceni obecneho seznamu
(defun obrat_ob (L)
  (cond ((null L) ())
        ((atom (car L)) (spoj (obrat_ob (cdr L)) (cons (car L) ())))
        (t (spoj (obrat_ob (cdr L)) (cons (obrat_ob (car L)) ())))
  )
)
 
; test zda je prvek obsazen v obecnem seznamu
(defun je_prvek_ob (E L)
  (cond ((null L) ())
        ((atom (car L)) (or (= E (car L)) (je_prvek_ob E (cdr L))))
        (t (or (je_prvek_ob E (car L)) (je_prvek_ob E (cdr L))))
  )
)
 
; prumer prvku obecneho seznamu
(defun prumer_prvku_ob (L)
  (cond ((null L) ())
        (t (/ (soucet_prvku_ob L) (pocet_prvku_ob L)))
  )
)
 
; pomocna funkce -- vraci pocet prvku obecneho seznamu
(defun pocet_prvku_ob (L)
  (cond ((null L) 0)
        ((atom (car L)) (+ 1 (pocet_prvku_ob (cdr L))))
        (t (+ (pocet_prvku_ob (car L)) (pocet_prvku_ob (cdr L))))
  )
)
 
; soucet prvku obecneho seznamu
(defun soucet_prvku_ob (L)
  (cond ((null L) 0)
        ((atom (car L)) (+ (car L) (soucet_prvku_ob (cdr L))))
        (t (+ (soucet_prvku_ob (car L)) (soucet_prvku_ob (cdr L))))
  )
)
 
; overeni monotonnosti linearniho seznamu
(defun monotonnost_lin (L)
  (or (nerost_lin L) (nekles_lin L))
)
 
; pomocna funkce -- fraci T pokud je posloupnost nerostouci
(defun nerost_lin (L)
  (cond ((null L) t)
        ((null (cdr L)) t)
        (t (and (>= (car L) (car (cdr L))) (nerost_lin (cdr L))))
  )
)
 
; pomocna funkce -- fraci T pokud je posloupnost neklesajici
(defun nekles_lin (L)
  (cond ((null L) t)
        ((null (cdr L)) t)
        (t (and (<= (car L) (car (cdr L))) (nekles_lin (cdr L))))
  )
)