Diberikan potongan program berikut:
pop(); for x := 1 to 3 do writeln( pop() ); pop();
jika potongan program tersebut diganti dengan
for x := 1 to 3 do if (pop() <> -1) then writeln( pop() );
berapakah outputnya sekarang?
A. 3
7
1
B. 3
1
1
C. 3
5
7
D. 3
7
1
E. 1
1
1
Pernah Jago OSK
Kita coba simulasikan kode tersebut.
x = 1, pop() = 1, kondisi berubah menjadi:
| Head | tail | ||
| 3 | 5 | 7 | 9 |
Karena 1 <> 1,
maka pop() dipanggil lagi (menghasilkan dan membuang 3), lalu dicetak.
Kondisi berubah menjadi:
| Head | tail | ||
| 5 | 7 | 9 |
x = 2, pop() = 5, kondisi berubah menjadi:
| head | tail | |
| 7 | 9 |
Karena 5 <> 1,
maka pop() dipanggil lagi (menghasilkan dan membuang 7), lalu dicetak.
Kondisi berubah menjadi:
| head | tail |
| 9 |
x = 3, pop() = 9, kondisi berubah menjadi:
head, tail
Karena 9 <> 1,
maka pop() dipanggil lagi (menghasilkan -1),
lalu dicetak.
Maka, yang tercetak adalah:
D. 3
7
-1
Masuk untuk menulis jawaban