Zadania CLisp

Zadania CLisp

  1. Napisz program który łączy dwie listy: (1 2 3 4) i (a b c d),

CL-USER> (setq x '(1 2 3 4))

(1 2 3 4)

CL-USER> (setq y '(a b c d))

(A B C D)

CL-USER> (concatenate 'list x y)

(1 2 3 4 A B C D)

  1. Napisz funkcję która odwraca listę,

(defun odwroc(x)

(reverse x

))

  1. Napisz funkcję, która sprawdza, czy podana lista jest palindromem,

(defun palindrom (x)

(setq x2 (reverse x))(equal x x2))

  1. Napisz funkcję, która sortuje rosnąco listę liczb całkowitych,

(defun sortowanier(x)

(sort x #'<))

  1. Napisz funkcję, która sortuje malejąco listę liczb całkowitych,

(defun sortowanie(x)

(sort x #'>))

  1. Napisz funkcję, która oblicz iloczyn dwóch list liczbowych parami różnych, w wyniku otrzymujemy listę iloczynów,

(defun iloczyny(x)

(loop for x in '(6 7 8 9 10)

for y in '(1 2 3 4 5)

collect (* x y)) )

  1. Napisz funkcję, która zlicza ilość wystąpień liczb podzielnych przez trzy na podanej liście.

(defun sprawdz (x)

(setq a 0)

(dolist (el x)

(if (= (rem el 3) 0) (setq a (+ a 1)) (format t " "))

)

a)

1. Oblicz wartość wyrażenia: (2 + 3*4 / 8 )

(/ ( + 2 ( * 3 4 ) ) 8) =7/4

(+ ( / (* 3 4 ) 8) 2) = 7/2

2. Oblicz wartość wyrażenia: sin(12) + cos(256%32)

(+ (sin 12) (cos ( mod 256 32 )))

3. Napisz funkcje suma, obliczajaca sumę dwóch liczb

(defun suma(x y)(+ x y ))

4. Napisz funkcje badajaca, czy dana liczba jest parzysta

(defun parzysta(x)

(if (oddp x) ‘false ‘true))

5. Napisz funkcje obliczającą wartość silni,

(defun silnia (x)

(if (> x 0)

(* x (silnia (- x 1)))

1))

6. Napisz funkcję zwracającą n-ty element ciągu fibonacciego

(defun fib (n)

( if (< n 2) n

(+ (fib (- n 1)) (fib (- n 2)))))

7. Napisz funkcję, która oblicza sumę liczb nieparzystych w podanym przedziale

(defun nieparzyste (a b)(setq y 0)

(loop for x from a to b

If (oddp x)

Do ( setq y (+ y x)))(print y))

  1. Napisz funkcję, która oblicza sumę kwadratów liczb w podanym przedziale

(defun kwadrat (a b) (setq y 0)

(loop for x from a to b

Do (setq y (+ y (* x x ))))(print y))

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!KOLOKWIUM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  1. Napisz funkcję, która zlicza ilość wystąpień liczb podzielnych przez pięć na podanej liście.

(defun sprawdz (x)

(setq a 0)

(dolist (el x)

(if (= (rem el 5) 0) (setq a (+ a 1)) (format t " "))

)

a)

2. Napisz funkcję, która dla podanej listy liczb dziesiętnych, generuje listę zawierającą

na pozycjach będących n-krotnością ostatniej cyfry albumu studenta odpowiednią liczbę

binarną, odpowiadającą liczbie dziesiętnej na tej pozycji w liście wejściowej.

Przykład:

Lista: (1 2 3 4 5 6 7 8 9 10)

Album: 12352 -> ostatnia cyfra to 2

Wynik: (1 10 3 100 5 110 7 1000 9 1010) lub (1 (1 0) 3 (1 0 0) 5 (1 1 0) 7 (1 0 0 0) 9 (1 0 1 0) )

(setq lista '#(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))

(defun bin1 (x y)

(if (zerop x)

y

(multiple-value-bind (a b) (floor x 2)

(bin1 a (cons b y)))))

(defun bin (x)

(if (and (numberp x) (plusp x))

(bin1 x '())

(if (eql x 0) '(0) nil)))

(defun zamiana (nazwa_listy nr)

(dotimes (i (array-total-size nazwa_listy))

(if (eql 0 (mod (+ i 1) nr ))

(setf (svref nazwa_listy i) (bin (svref nazwa_listy i)))

)))

Sposób 2

(defun bin(x)
(if(evenp x) (setq z(cons 0 z)) (setq z(cons 1 z)))
(if(= 0 (floor x 2)) z (bin(floor x 2))))

to jest zamiana podanej liczby na binarną

3. Napisz program który pobiera wartości parami z dwóch list, i zapisuje mniejszą z wartości na

trzecią listę. Należy założyć, że listy wejściowe będą równej długości.

Przykład:

Lista1: (1 10 2 8)

Lista2: (2 20 3 5)

Wynik: (1 10 2 5)

(defun mniejsza(x, y)

(loop for x in '(1 10 2 8)

for y in '(2 20 3 5)

( if( x <y collect x collect y)))) – zle

Sposob 1:

(setq i '())

(defun mniejsze(a b)
(if(< a b) a b))

(defun xxx(x y)
(setq i(cons (wieksze (car x) (car y)) i ))

(if (equal (cdr x) nil) (reverse i)
(xxx(cdr x) (cdr y))))

Sposob 2:

(setf lista1 '#(1 2 3 4))

(setf lista2 '#(2 1 4 3))

(setf wynik (make-array 4))

(dotimes (i (array-total-size wynik))

(if (> (svref lista1 i) (svref lista2 i))

(setf (svref wynik i) (svref lista1 i))

(setf (svref wynik i) (svref lista2 i))

)

)


Wyszukiwarka

Podobne podstrony:
Zadania CLisp
Zadania CLisp
Zadania z treścia
Prezentacja 2 analiza akcji zadania dla studentow
Przedmiot i zadania dydaktyki 4
zadanie 1 v 002
Przedmiot dzialy i zadania kryminologii oraz metody badan kr
KOLOKWIUM 2 zadanie wg Adamczewskiego na porownawczą 97
CELE I ZADANIA EDUKACJI MEDIALNEJ(1)
ochrona atmosfery zadania
zadania
Przedmiot i zadania dydaktyki 2
Wymogi, cechy i zadania sprawozdawczośći finansowej
ZADANIA PiP Prezentacja Microsoft PowerPoint
1F CWICZENIE zadanie wg Adamczewskiego na porownawczą 97id 18959 ppt
zadania i rozwiazania z przekrojów 2
zadania egzaminacyjne

więcej podobnych podstron