Mengganti Elemen List Menjadi 0 Jika Genap

Judul :
gantinol (L)
Definisi dan Spesifikasi :
gantinol : list of integer → list integer
{ gantinol(L) mengganti elemen List menjadi 0 jika genap }
Ralisasi :
Basis : jika list kosong nil
Rekurens: if (FirstElment L) genap, then konso 0 gantinol (Tail L)
else konso (FirstElment L)gantinol (Tail L)
Aplikasi:
(gantinol ‘(1 2 3 4 5 6 7 8 9))
(1 0 3 0 5 0 7 0 9)


(defun gantinol (L)
(cond ((null L) nil)
((evenp (car L))(cons 0 (gantinol (cdr L))))
(t (cons(car L)(gantinol (cdr L))))
)
)

gantinolgenap

Elemen Ganjil List

Judul :
ganjil (L)
Definisi dan Spesifikasi :
ganjil : list of integer → integer
{ ganjil(L) menghitung banyaknya angka ganjil dalam List }
Ralisasi :
Basis : jika list kosong 0
Rekurens: if (FirstElment L) ganjil, then + 1 ganjil (Tail L)
else ganjil (Tail L)
Aplikasi:
(ganjil ‘(1 2 3 4 5 6 7 8 9))
5


(defun ganjil (L)
(cond ((null L)0)
((oddp(car L))(+ 1 (ganjil(cdr l))))
(t(ganjil(cdr L)))
)
)

ganjil

Elemen Genap List

Judul :
genap (L)
Definisi dan Spesifikasi :
genap : list of integer → integer
{ genap(L) menghitung banyaknya angka genap dalam List }
Ralisasi :
Basis : jika list kosong 0
Rekurens: if (FirstElment L) genap, then + 1 genap (Tail L)
else genap (Tail L)
Aplikasi:
(genap ‘(1 2 3 4 5 6 7 8 9))
4


(defun genap (L)
(cond ((null L)0)
((evenp(car L))(+ 1 (genap(cdr l))))
(t(genap(cdr L)))
)
)

genaph

Segitiga

Judul :

Segitiga

Definisi dan Spesifikasi Selektor :

Segitiga

Sisi : integer –> integer

Kaki : integer –> integer

Siku-Siku : integer –> integer

Definisi dan Operator :

Segitiga Samasisi : 3 int –> int

Segitiga Samakaki : 3 int –> int

Segitiga Siku-siku : 3 int –> int

Realisasi :

depend on
Jika semua list sama maka segitiga samasisi
Jika ada 2 atom yang sama maka segitiga samakaki
Jika semua list berbeda dan dapat dihitung dengan rumus phytagoras maka segitiga siku-siku
else
Segitiga sembarang

Aplikasi :
(Segitiga ‘(2 2 2))
Segitiga Sama Sisi

“Segitiga Sama Sisi”


 

(defun Segitiga (x)
(cond ((= (car x) (car(cdr x))(car(reverse x))) (write-string “Segitiga Sama Sisi”))
((= (car x) (car(cdr x))) (write-string “Segitiga Sama Kaki”))
((= (+ (expt (car x) 2) (expt (car (cdr x)) 2)) (expt (car (reverse x)) 2)) (write-string “Segitiga Siku Siku”))
((write-string “Segitiga Sembarang”))
)
)

segitiga

IsAmPm

Judul :

IsAmPm

Definisi Type :

IsAmPm : <jam : integer, menit : integer>

Definisi dan Spesifikasi Predikat :

IsAm? : 2 integer : boolean
IsPm? : 2 integer : boolean

Realisasi :

depend on
jika jam dan menit 00.00-11.59 maka Am
jika jam dan menit 12.00-23.59 maka Pm
else
waktu salah

Aplikasi :

(IsAmPm ‘(00 00))
Am

((0 0) . “Am”)


 

 

(defun IsAmPm (x)
(if (or (>= 0 (car x)) (>= 11 (car x))) (cons x (write-string “Am”))
(cons x (write-string “Pm”))
))

isAmPm