var mm,r,x,h : integer; larik : array[1..10] of integer; { dengan instruksi sebagai berikut: } function D(y,z:integer):boolean; forward; procedure C(r:integer); forward; procedure B(r:integer); forward; procedure A; forward; procedure main(m: integer); forward; { pemanggilan function / procedure dapat dilakukan dengan benar tanpa memperdulikan urutan penulisan fungsi } function D(y,z:integer):boolean; begin r:=32767; if ((y=0) or (z=0)) then D:= (y=0) else if (r=32767) then D:=D(y+1,z+1); end; procedure C(r:integer); begin x:=larik[r]; if D(x-mm,h-mm) then h:=x; B(r-1); end; procedure B(r:integer); begin if (r<>0) then C(r); end; procedure A; begin B(r); writeln(h); end; procedure main(m: integer); begin mm:=m; h:=-m; r:=10; A; end;
-
Misalkan variable larik yang merupakan array dan setiap elemennya diisi sehingga bernilai sebagai
berikut: 2,3,1,4,9,-1,7,-9,-2,5.
Pada program berikut ini, apakah output yang tampil di layar? Jawab: …….begin main(10); end.
-
Misalkan setiap elemen larik diisi sehingga bernilai sebagai berikut: 12,33,1,49,9,-11,7,-91,-2,53.
dengan program utama berikut ini, apakah output yang tampil di layar? Jawab: …….
begin main(10); end.
- Asumsikan larik adalah array dengan ukuran tak hingga. Tentukan nilai r yang membuat program tidak berhenti dengan benar untuk larik dengan nilai sembarang! Jawab: ……..
-
Barisan bilangan 2,3,1,4,9,-1,7,-9,-2,5 terbesar yang kurang dari 10 adalah 9.
-
Di antara bilangan 12,33,1,49,9,-11,7,-91,-2,53 yang terbesar dan kurang dari 10 adalah 9.
-
Pada prosedur C, nilai r akan terus dikurangi sampai r bernilai 0. Sehingga prosedur akan terus berjalan jika nilai awal r sudah kurang dari 0, seperti -1. Dalam kasus ini, jika index dalam deklarasi dimulai dari negatif, maka program akan terus berjalan tanpa berhenti dan jika dimulai dari 0, program akan berhenti karena terjadi kesalahan yang mana keduanya tidak akan berhenti dengan benar.
Prosedur main akan menginisialisasi nilai awal mm bernilai m, h = -m, r = 10 di mana m adalah parameter ketika prosedur dipanggil. Kemudian prosedur main akan melakukan pemanggilan prosedur B sebelum mencetak nilai h akhir.
Prosedur B akan melakukan pemeriksaan apakah parameter bernilai 0. Jika ya, maka program berhenti. Jika tidak, maka akan diteruskan untuk melakukan pemanggilan prosedur C.
Prosedur C akan mengambil nilai dari array dan memeriksa apakah D(x-mm, h-mm) bernilai true dan memanggil prosedur B. Artinya C akan melakukan perulangan sampai index ke 1 (B akan memastikan bahwa index yang diambil lebih dari 0).
D akan bernilai true jika y bernilai 0 dan false jika z bernilai 0. Jika keduanya tidak bernilai 0, maka nilai y dan z akan ditambah 1. Artinya kondisi D akan true jika y lebih besar dari z (jika keduanya negatif), di mana y = x-mm dan z = h-mm. D juga akan benar jika y negatif z positif dan sebaliknya (salah jika y positif dan z negatif).
x adalah nilai pada array, sedangkan h akan terus berubah jika kondisi D bernilai benar. x dan h akan sama-sama dikurangi dengan mm, jika x lebih besar, maka nilai h berganti menjadi x. Dengan kata lain, prosedur akan mencari nilai terbesar pada array yang nilainya kurang dari mm.
⅓ x ⅔ = 2/9 bagian
kok bisa gitu kak?
Kan ibunya dapat 1/3, jadi sisa 2/3 untuk anak-anaknya. Karena anaknya ada 3, jadi 2/3 itu dibagi 3 lagi buat masing-masing anak, sehingga bagian yang didapat anak-anaknya itu 1/3 dari 2/3 = 2/9.