Temen-temen ini saya punya contoh soal tentang LIST dan beberapa penyelesaiannya
Persoalan
Buatlah suatu fungsi rekursif untuk menyisipkan karakter pada sebuah kata
berikut DINNUSWANTORO agar
menjadi kata DIANNUSWANTORO
Definisi dan
spesifikasi fungsi adalah sebagai berikut :
Sisip (c L): karakter List à
List
Petunjuk :
Penyisipan karakter A
dilakukan sebelum karakter N pertama, terdapat satu basis untuk memeriksa
posisi karakter N, lalu menyisipkan karakter A sebelum karakter N, selain itu
lakukan konso secara rekuren
Contoh Test List dalam
Aplikasi :
List Karakter
|
(sisip ‘A '(D I N N U S W A N T O R O)) à (D I A N N U S W A N T O R O)
|
Jawaban :
(defun sisip (e L)
(cond ((eq (car L) 'n)
(cons e L))
(t (cons (car L) (sisip e (cdr L))))
)
)
Persoalan
Buatlah suatu fungsi rekursif untuk menyisipkan karakter d alam sebuah kata pada
posisi tertentu
Definisi dan
spesifikasi fungsi adalah sebagai berikut :
SisipX (x c L): int karakter List à
List
Petunjuk :
Penyisipan karakter c
dilakukan pada urutan ke x pada list L, terdapat 1 basis untuk memeriksa posisi
yang diinginkan, lalu sisipkan karakter c kedalam list L, selain itu lakukan konso
secara rekuren
Contoh Test List dalam
Aplikasi :
List Karakter
|
(sisipX 3 ‘A '(A N K)) à (A N A K)
|
Jawaban :
(defun sisipX (x c L)
(cond ((= x 1) (cons c
L))
(t (cons (car L) (sisipX (- x 1) c (cdr L))))
)
)
Persoalan
Buatlah suatu fungsi rekursif untuk menghapus suatu nilai dalam sebuah kata
pada posisi tertentu
Definisi dan
spesifikasi fungsi adalah sebagai berikut :
hapuskeX (x L): int List à
List
Petunjuk :
Menghapus nilai pada urutan
ke x dalam list L, terdapat 1 basis untuk memeriksa posisi yang akan dihapus,
lalu hapus nilai pada posisi x dalam list L, selain itu lakukan konso secara
rekuren
Contoh Test List dalam
Aplikasi :
List Karakter
|
(hapuskeX 2 ‘(5 6 7 8)) à (5 7 8)
|
Jawaban :
(defun hapuskeX (x L)
(cond ((= x 1) (cdr
L))
(t (cons (car L) (hapuskeX (- x 1) (cdr L))))
)
)
Persoalan
Buatlah suatu fungsi rekursif untuk mengganti suatu karakter pada posisi x dengan
karakter pada posisi Y dalam suatu List L
Definisi dan
spesifikasi fungsi adalah sebagai berikut :
gantiXY (x y L): int int List à
List
Petunjuk :
Mengganti karakter pada
urutan ke x dengan karakter pada urutan ke y dalam list L, terdapat 2 fungsi tambahan untuk mencari elemen yang akan diganti dan
elemen pengganti, serta fungsi untuk menganti
nilai elemen yang diingikan.
Contoh Test List dalam
Aplikasi :
List Karakter
|
(gantiXY 2 4 ‘(5 6 7 8)) à (5 8 7 8)
(gantiXY 1 3 ‘(5 6 7 8)) à (7 6 7 8)
(gantiXY 3 4 ‘(5 6 7 8)) à (5 6 8 8)
|
Jawaban :
(defun getElmtX (x L)
(cond ((= x 1) (car
L))
(t (getElmtX (- x 1) (cdr L)))
)
)
(defun gantiX (x c L)
(cond ((= x 1) (cons c
(cdr L)))
(t (cons (car L) (gantiX (- x 1) c (cdr L))))
)
)
(defun gantiXY (x y L)
(gantiX x (getElmtX y
L) L)
)
Comments
Post a Comment