Tuesday, August 14, 2012

Program Pascal


Perhatikan program berikut ini:
var I,j,k:integer;
L:byte;
begin
i:=3;
j:=4;
k:=32;
L:=0;
{If – 1 }
if i + j and k =0 then
writeln(‘Betul’)
else
writeln(‘Salah);
{If – 2 }
if (i = 2) and (j < i) or (k > i) then
writeln(‘Betul’)
else
writeln(‘Salah);
{If – 3}
if not L in [1..120] then
writeln(‘Betul’)
else
writeln(‘Salah’);
end.
Program ini berisi tiga perintah if then else yang saling tidak berkaitan, masing-masing IF diberi nama
IF – 1, IF – 2, IF – 3.

Pada program di atas, if mana yang menghasilan output “Betul”?
a.       If - 1
b.      If - 2
c.       If - 3
d.      If – 1 dan if - 2
e.       Tidak ada if yang menghasilkan “Betul”
Jawab:
b. If – 2
Pembahasan:
Urutan pengerjaan operator AND dan OR adalah AND akan dievaluasi terlebih dulu. Pada kondisi pertama, (i = 2) and (j < i) akan menghasilkan nilai FALSE, namun pada saat dievaluasi dengan menggunakan kondisi OR, yaitu (k>i), akan menghasilkan TRUE, sehingga yang dicetak adalah “Betul”.

No comments: