Anda di halaman 1dari 2

Untuk soal 1 2 FUNCTION fak (x, y: integer) : Integer; BEGIN if y:= 0 then fak := 1 else fak := x * fak (x,

, y-1); END; Writeln (fak(5, 3)); 1. Apa hasil dari program di atas! a. 125 b. 8 c. 81 d. 3 e. 15 Pembahasan : Ini adalah contoh kasus fungsi dengan mempergunakan rekursi (fungsi yang mampu memangil dirinya sendiri) Nilai x awal adalah 5, nilai y awal adalah 3 maka fak (5,3) > 5 * fak (5, 3-1) = 5 * 25 = 125 fak (5,2) > 5 * fak (5, 2-1) = 5 * 5 = 25 fak (5,1) > 5 * fak (5,1-1) = 5 * 1 = 5 fak (5,0) (proses selesai karena y =0) Jadi yang muncul adalah 125 2. Jika writeln (fak(5,3)) diganti menjadi writeln (fak(4,5)), hasil dimunculkan adalah a. 20 b. 9 c. 1024 d. 64 e. 5 Pembahasan: Kasus ini sama seperti pada soal 1 Nilai x awal adalah 4, nilai y awal adalah 5 maka fak (4,5) > 4 * fak (4, 5-1) dengan mempergunakan hasil fak ( 4,4) > 4 * 256 = 1024 fak (4,4) > 4 * fak (4, 4-1) dengan mempergunakan hasil fak ( 4,3) > 4 * 64 = 256 fak (4,3) > 4 * fak (4,3-1) dengan mempergunakan hasil fak ( 4,2) > 4 * 16 = 64 fak (4,2) > 4 * fak (4,2-1) dengan mempergunakan hasil fak ( 4,1) > 4 * 4 = 16 fak (4,1) > 4 * fak (4,1-1) = 4 * 1 = 4 fak (4,0) (proses selesai karena y =0) Jadi yang muncul adalah 1024 3. Manakah yang salah dari deklarasi dibawah ini a. function info(a:byte):real; b. function info:byte; c. function info(a,b:byte) : real;

d. function info(a: real; b:integer):real; e. function info(a:real); Pembahasan Ingat bentuk dekelarasi dari suatu fungsi FUNCTION nama_fungsi(daftar_fungsi):tipe; - daftar parameter berisi sejumlah parameter - tipe menyatakan tipe dari hasil fungsi - Jika fungsi tidak memiliki parameter, tanda () tidak perlu disertakan. jadi jawabannya adalah e.function info(a:real);

Anda mungkin juga menyukai