• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 
Menu

Zobrazi� pr�spevky

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Zobrazi� pr�spevky Menu

Messages - santa_claus

#1
3. ro?ník / Re: UI zadanie v LISP
18.11.2007, 22:34:35
Quote from: kane77 on  18.11.2007, 19:38:09
Quote from: santa_claus on  18.11.2007, 18:38:57
Quote from: kane77 on  17.11.2007, 22:26:39
trocha som sa dnes nudil a spravil som toto:

1.)  Napíšte funkciu, ktorá vráti počet prvkov v zozname (neobsahujúcom ďalšie zoznamy) - nepoužite LENGTH !
(defun len(list)
(cond ((null list) 0)
((null (cdr list)) 1)
(t (1+ (len (cdr list))))
)
)

2.) Napíšte funkciu, ktorá zistí, či počet prvkov v zozname (na najvyššej úrovni) je párny, alebo nepárny - nepoužite LENGTH !
(defun len(list)
(cond ((null list) 0)
((null (cdr list)) 1)
(t (1+ (len (cdr list))))
)
)

(defun parny(list)
(if (eq (mod (len list) 2) 0) 'parny 'neparny))



5.) Napíšte funkciu, ktorá zistí, či daný prvok je prvkom zoznamu (neobsahujúceho ďalšie zoznamy).
(defun contains(c list)
(cond ((eql c (car list)))
((null (cdr list)) (not (null (cdr list))))                         
(t (contains c (cdr list)))
)
)

6.) Napíšte funkciu, ktorá zistí, koľkokrát sa daný prvok vyskytuje v zozname (neobsahujúcom ďalšie zoznamy).
(defun counter(c list)
(cond ((eql c (car list)) (1+ (count c (cdr list))) )
((null (cdr list)) 0)                         
(t (count c (cdr list)))
)
)


7.) Napíšte funkciu, ktorá zistí, koľkokrát sa daný prvok vyskytuje v zozname (neobsahujúcom ďalšie zoznamy).
(defun nthelm(n list)
(cond ((eq 1 n) (car list))
(t (nthelm (- n 1) (cdr list))))
)


8.) Napíšte funkciu, ktorá vráti počet párnych čísel v zozname (neobsahujúcom ďalšie zoznamy).
(defun evenelm(list)
(cond  ((null (cdr list)) (if (eq (mod (car list) 2) 0) 1 0))
((eq (mod (car list) 2) 0) (1+ (evenelm(cdr list))))
(t (evenelm(cdr list)))
)
)

9.) Napíšte funkciu, ktorá vráti počet nepárnych čísel v zozname (neobsahujúcom ďalšie zoznamy).
(defun oddelm(list)
(cond  ((null (cdr list)) (if (eq (mod (car list) 2) 1) 1 0))
((eq (mod (car list) 2) 1) (1+ (evenelm(cdr list))))
(t (evenelm(cdr list)))
)
)

11.) Napíšte funkciu, ktorá vráti posledný prvok zoznamu (neobsahujúceho ďalšie zoznamy) - nepoužite LENGTH !
(defun last(list)
(cond
((null list) (return list))
((null (cdr list)) (car list))
(t (last (cdr list)))))


3. a 4. napisal MKI a 10. mam ja takze to tu nedavam.. :)
:nevyhadzuje ti ta 11 pri kompilacii problem ?..lebo mne hej a nevem s tym ani pohnut, pls neskusil by si sa na to pozriet ? :lb:

eh no jasne ze vyhadzuje.. som si to nevsimol.. vyhadzuje preto lebo funkcia last uz v lispe existuje :)... takze staci premenovat last na co ja viem napriklad lst..
takze spravne takto:
(defun lst(list)
(cond
      ((null list) (return list))
      ((null (cdr list)) (car list))
      (t (lst (cdr list)))))


ja nechcem vyzerat ako totalny magor, ale mne to neslape ani s tym lst ani s nicim inym..postup je ako pisal uz ejden vyssie..new, save, compile a na zaver load ?
#2
3. ro?ník / Re: UI zadanie v LISP
18.11.2007, 18:38:57
Quote from: kane77 on  17.11.2007, 22:26:39
trocha som sa dnes nudil a spravil som toto:

1.)  Napíšte funkciu, ktorá vráti počet prvkov v zozname (neobsahujúcom ďalšie zoznamy) - nepoužite LENGTH !
(defun len(list)
(cond ((null list) 0)
((null (cdr list)) 1)
(t (1+ (len (cdr list))))
)
)

2.) Napíšte funkciu, ktorá zistí, či počet prvkov v zozname (na najvyššej úrovni) je párny, alebo nepárny - nepoužite LENGTH !
(defun len(list)
(cond ((null list) 0)
((null (cdr list)) 1)
(t (1+ (len (cdr list))))
)
)

(defun parny(list)
(if (eq (mod (len list) 2) 0) 'parny 'neparny))



5.) Napíšte funkciu, ktorá zistí, či daný prvok je prvkom zoznamu (neobsahujúceho ďalšie zoznamy).
(defun contains(c list)
(cond ((eql c (car list)))
((null (cdr list)) (not (null (cdr list))))                         
(t (contains c (cdr list)))
)
)

6.) Napíšte funkciu, ktorá zistí, koľkokrát sa daný prvok vyskytuje v zozname (neobsahujúcom ďalšie zoznamy).
(defun counter(c list)
(cond ((eql c (car list)) (1+ (count c (cdr list))) )
((null (cdr list)) 0)                         
(t (count c (cdr list)))
)
)


7.) Napíšte funkciu, ktorá zistí, koľkokrát sa daný prvok vyskytuje v zozname (neobsahujúcom ďalšie zoznamy).
(defun nthelm(n list)
(cond ((eq 1 n) (car list))
(t (nthelm (- n 1) (cdr list))))
)


8.) Napíšte funkciu, ktorá vráti počet párnych čísel v zozname (neobsahujúcom ďalšie zoznamy).
(defun evenelm(list)
(cond  ((null (cdr list)) (if (eq (mod (car list) 2) 0) 1 0))
((eq (mod (car list) 2) 0) (1+ (evenelm(cdr list))))
(t (evenelm(cdr list)))
)
)

9.) Napíšte funkciu, ktorá vráti počet nepárnych čísel v zozname (neobsahujúcom ďalšie zoznamy).
(defun oddelm(list)
(cond  ((null (cdr list)) (if (eq (mod (car list) 2) 1) 1 0))
((eq (mod (car list) 2) 1) (1+ (evenelm(cdr list))))
(t (evenelm(cdr list)))
)
)

11.) Napíšte funkciu, ktorá vráti posledný prvok zoznamu (neobsahujúceho ďalšie zoznamy) - nepoužite LENGTH !
(defun last(list)
(cond
((null list) (return list))
((null (cdr list)) (car list))
(t (last (cdr list)))))


3. a 4. napisal MKI a 10. mam ja takze to tu nedavam.. :)
:nevyhadzuje ti ta 11 pri kompilacii problem ?..lebo mne hej a nevem s tym ani pohnut, pls neskusil by si sa na to pozriet ? :lb: