Pembahasan Soal Algoritma
Pembahasan Soal Algoritma
apaitu :=b
11 else
12
apaitu := apaitu(b mod a,a);
13 end;
14
15 begin
16 writeln(apaitu(1001,1331));
17 readln;
18 end.
Pembahasan :
Pemanggilan writeln(apaitu(1001,1331)) akan menghasilkan 11
01 A = 1001
02 B = 1331
03
04 if (a>b)
apaitu(a,b) if(a = 0)
05 (1001>1331)tidak
06
if(1001=0)tidak
07
08
09 (1001>330)ya
10
apaitu(330,1001)
11 (330>1001)tidak
12
if(330=0)tidak
13
14
15 (330 > 11) ya
16
apaitu(11,330)
17 (11 > 330) tidak
18
if(11=0) tidak
19
20
21 (11 > 0) ya
22
apaitu(0,11)
23 (0 > 11) ya
24
25 NILAI A = 11
x := a;
y := b;
07
08
while (y <> 0) do
begin
09
10
r := x mod y;
x := y;
11
12
y := r;
end;
13
apaini:=x;
14 end;
15
16 begin
17 writeln(apaini(414,662));
18 readln;
19 end.
Hasilnya adalah 2
Langkah-langkah penyelesaiannya :
01 while (y <> 0)
02
(662 <> 0)
03
04
05
06
r = x mod y
r = 414 mod 662
x = y
x = 662
y = r
y = 414
(414 <> 0)
r = 414
r = 662 mod 414
x = 414
y = 248
(248 <> 0)
r = 248
r = 414 mod 248
x = 248
y = 166
07
08
........
09
10
........
(2 <> 0)
r = 81 mod 2
(0 <> 0)
r = 0
Perulangan while berhenti...
11
12
r = 166
13
14 Sehingga mendapatkan nilai x = 2
x = 2
y = 0
01 const
02 xmin = -10;
xmax =
10;
04 ymin = -10;
03
05 ymax = 10;
06
07 function code(x:integer;y : integer):byte;
08 var c:byte;
09 begin
10
c:=0;
11
12
13
14
15
code :=c;
16 end ;
17
18 begin
19 writeln(code(-12,-12) or code(20,5));
20 readln;
21 end.
Jawaban:
Dari Soal diatas apabila progam dijalankan maka akan menghasilkan 0
Langkah-langkah penyelesaiannya :
01 Pemanggilan Code(-12,-12)
02 X = -12
03 Y = -12
04 C = 0
05 if (x < xmin) then c = c or 8
06 Jika (-12 < -10) maka c = 0 or 8 = 8
07
08 if (y < ymin) then c := c or 4