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

Zobrazi prspevky

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 prspevky 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: