Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ) Дефинирај функција presmetaj која прима три аргументи: листа L и елементи Elem1 и
- Elem2. Ако елементот Elem1 е поголем од Elem2, тогаш функцијата враќа листа од сите редни
- позиции на кои се појавуваат Elem1 и Elem2 (при што првиот елемент е на позиција 1), а во
- спротивно враќа листа чии елементи се добиваат така што елементот од листата L кој е на
- соодветната позиција ќе се земе на степен Elem1.
- Пример: (presmetaj '(1 2 1 3 6 1 4 2 9) 3 2) (2 4 8)
- (presmetaj '(1 2 1 3 2 9) 3 2) (2 4 5)
- (presmetaj '(1 2 1 3 2 9) 2 3) (1 4 1 9 4 81)
- (defun presmetaj (lista elem1 elem2)
- (cond
- ((> elem1 elem2)(prvaFunkcija lista elem1 elem2 1))
- ((< elem1 elem2)(vtoraFunkcija lista elem1))
- )
- )
- (defun prvaFunkcija (lista elem1 elem2 brojac)
- (cond
- ((null lista) nil)
- ((or (equal (car lista) elem1)(equal (car lista) elem2))(cons brojac (prvaFunkcija (cdr lista) elem1 elem2 (+ 1 brojac))))
- (t (prvaFunkcija (cdr lista) elem1 elem2 (+ 1 brojac)))
- )
- )
- (defun vtoraFunkcija (lista elem1)
- (cond
- ((null lista) nil)
- (t (cons (stepen (car lista) elem1 (car lista))(vtoraFunkcija (cdr lista) elem1)))
- )
- )
- (defun stepen (dolu gore org)
- (cond
- ((equal gore 1 ) dolu)
- (t (stepen (* dolu org)(- gore 1) org))
- )
- )
- (print (presmetaj '(1 2 1 3 2 9) 2 3))
Advertisement
Add Comment
Please, Sign In to add comment