Bimbingan Olimpiade Komputer : Pembahasan 1. OSK 2007

Soal No. 32 (OSK 2007)
4checks.com-Free Shipping and Handling on All Personal Checks with code DWF008

const
xmin = -10;
xmax = 10;
ymin = -10;
ymax = 10;

function code(x:integer;y : integer):byte;
var c:byte;
begin
     c:=0;
     if (x < xmin) then          c:= c or 8
     else if (x > xmax) then   c:= c or 1;
     if (y < ymin) then          c:= c or 4
     else if (y > ymax) then   c:= c or 2;
     code :=c;
end ;

begin
writeln(code(-12,-12) or code(20,5));
readln;
end.

Jawaban:
Dari Soal diatas apabila progam dijalankan maka akan menghasilkan 0

Langkah-langkah penyelesaiannya :

Pemanggilan Code(-12,-12)
X = -12
Y = -12
C = 0
if (x < xmin) then  c = c or 8
Jika (-12 < -10) maka c = 0 or 8 = 8

if (y < ymin) then c := c or 4
Jika (-12 < -10)maka c := 8 or 4 = 12
Code = c;
Code = 12

Pemanggilan Code(20,5)
X = 20
Y = 5
C = 0
if (x < xmin) then c = c or 8
Jika (20 < -10) maka tidak terpenuhi
	Else if (x > xmax) then  c = c or 1
	Else Jika (20 > 10) maka c = 0 or 1 = 1
if (x < xmin) then …
Jika (5 < -10) maka tidak terpenuhi
	Else if (y > ymax) then …
Else jika (5 > 10) maka tidak terpenuhi
Karena tidak ada yang terpenuhi maka Code = c
Code  = 0

Dari proses di atas :
Pemanggilan code(-12,-12) menghasilkan 12
Pemanggilan code(20,5) menghasilkan 1
Sehingga (code(-12,-12) and code (20,5)) = 12 and 1 = 0

Link Yang berhubungan :

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: