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

Menghitung lama kuliah

JUDUL :

Menghitung lama kuliah

DEFINISI DAN SPESIFIKASI :

jamkuliah : integer –> integer

menghitung jumlah jam dari nilai jam1 ,jam2

dimana jam1 yaitu lama kuliah 1 dalam hitungan

menit ,jam2 adalah lama kuliah 2 dalam hitungan menit

dan untuk menghitung lama dalam hitungan jam (60menit)

jam1+jam2 lalu dibagi 60 dan dibulatkan dengan fungsi

floor dan untuk sisa menitnya dibagi dengan

menggunakan fungsi mod.

REALISASI :

jamkuliah(jam1 jam2) : (floor(jam1 + jam2)/60) (mod(jam1 + jam2)60)

APLIKASI :

(jamkuliah 100 100)
3 jam 20 menit


(defun jamkuliah(jam1 jam2)
(format t “~s jam ~s menit” (floor(/ (+ jam1 jam2) 60)) (mod (+ jam1 jam2)60))
)

Jam

Menghitung keramik

JUDUL :

Menghitung keramik yang dibutuhkan

DEFINISI DAN SPESIFIKASI :

keramikruangan : integer –> integer

menghitung jumlah keramik yang dibutuhkan dalam satu ruangan

dimana p1 adalah panjang ruangan, l1 adalah luas ruangan,

p2 adalah panjang keramik, l2 adalah luas keramik,

keramikruangan (p1 l1 p2 l2) berarti menghitung

p1 dikali l1 dibagi dengan p2 dikali l2

REALISASI :

keramikruangan (p1 l1 p2 l2) : (luasr(p1*l1))(luask(p2*L2))

(luasr / luask)

APLIKASI :

(jmlkeramik 10 20 4 5)
10


(defun jmlkeramik (p1 l1 p2 l2)
(let((luasr(* p1 l1))(luask(* p2 l2)))
(/ luasr luask)
)
)

keramik

Perkalian 30 Bilangan

JUDUL :

Perkalian 30 Bilangan

DEFENISI DAN SPESIFIKASI :

perkalian30angka : integer –> integer

perkalian30angka(a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30)

berarti menghitung perkalian dari nilai
a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30

REALISASI :

perkalian30angka (a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30) : a1*a2* a4*a5*a6*a7*a8*a9* a10*a11*a12*a13*a14*a15*a16*a17*a18*a19*a20*a21*a22*a23*a24*a25*a26* a27*a28*a29*a30

APLIKASI :

(perkalian30angka 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1)
1024


(defun perkalian30angka (a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30)
(* a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 )
)

30angka