Diberikan program di bawah ini. Apa output dari program tersebut? {tuliskan jawaban sesuai dengan output yang dihasilkan}
var a :array[1..10] of integer; b :integer; i :integer; sum :integer; procedure kwak(x:integer); begin b :=b+1; a[b] :=x; end; procedure kwek; var x :integer; begin a[b] :=x; b :=b-1; end; procedure kwik; begin for i :=1 to b-1 do begin a[i] :=a[i+1]; end; b :=b-1; end; procedure kwok; begin sum :=0; for i:=1 to b do begin m := sum + a[i]; end; writeln(sum); end; begin b:=0; kwak(8); kwak(7); kwek; kwak(18); kwak(28); kwak(35); kwek; kwik; kwok; end.
Jika ingin mendownvote, jangan lupa juga untuk komen tentang kesalahannya. That'll be helpful for everyone, don't let that be a habit.
Jika diperhatikan, program ini mengimplementasikan suatu struktur data yang abstrak (ADT, singkatan dari abstract data type), masih belum kita ketahui seperti apa persisnya. Kita andaikan bahwa adalah pointer dari struktur data tersebut, dan array
sebagai tempat penyimpanan datanya. Kita tinjau satu-satu:
Ternyata, pseudocode ini mengimplementasikan input-restricted double-ended queue. Dengan observasi ini, kita bisa meninjau bahwa outputnya adalah 46.
Masuk untuk menulis jawaban