Latkoski

presmetaj - prv kolokvium 2014 - t1g1

Jan 7th, 2017
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.68 KB | None | 0 0
  1. ) Дефинирај функција presmetaj која прима три аргументи: листа L и елементи Elem1 и
  2. Elem2. Ако елементот Elem1 е поголем од Elem2, тогаш функцијата враќа листа од сите редни
  3. позиции на кои се појавуваат Elem1 и Elem2 (при што првиот елемент е на позиција 1), а во
  4. спротивно враќа листа чии елементи се добиваат така што елементот од листата L кој е на
  5. соодветната позиција ќе се земе на степен Elem1.
  6.  Пример: (presmetaj '(1 2 1 3 6 1 4 2 9) 3 2)(2 4 8)
  7.  (presmetaj '(1 2 1 3 2 9) 3 2)(2 4 5)
  8.  (presmetaj '(1 2 1 3 2 9) 2 3)(1 4 1 9 4 81)
  9.  
  10.  
  11. (defun presmetaj (lista elem1 elem2)
  12.     (cond
  13.         ((> elem1 elem2)(prvaFunkcija lista elem1 elem2 1))
  14.         ((< elem1 elem2)(vtoraFunkcija lista elem1))
  15.        
  16.         )
  17.     )
  18.  
  19.  
  20. (defun prvaFunkcija (lista elem1 elem2 brojac)
  21.     (cond
  22.         ((null lista) nil)
  23.         ((or (equal (car lista) elem1)(equal (car lista) elem2))(cons brojac (prvaFunkcija (cdr lista) elem1 elem2 (+ 1 brojac))))
  24.         (t (prvaFunkcija (cdr lista) elem1 elem2 (+ 1 brojac)))
  25.         )
  26.     )
  27.  
  28. (defun vtoraFunkcija (lista elem1)
  29.     (cond
  30.         ((null lista) nil)
  31.         (t (cons (stepen (car lista) elem1 (car lista))(vtoraFunkcija (cdr lista) elem1)))
  32.         )
  33.     )
  34.  
  35.  
  36.  
  37. (defun stepen (dolu gore org)
  38.     (cond
  39.         ((equal gore 1 ) dolu)
  40.         (t (stepen (* dolu org)(- gore 1) org))
  41.         )
  42.     )
  43. (print (presmetaj '(1 2 1 3 2 9) 2 3))
Advertisement
Add Comment
Please, Sign In to add comment