Soal UTS Algoritma 08/09 No. 2 (procedure & function)

May 19, 2009 No Comments by Sahabat

uses wincrt;

function aku(a,b:integer):integer;

begin

if a = 1 then aku := 2*a

else if b = 1 then aku := 2*b

else aku := a*b+ (aku(a-1,b)+ aku(a,b-1));

end;

function lagi (a,b : integer):integer;

begin

if (a>b) then lagi :=lagi (b,a)

else if (a=0) then lagi := b

else lagi := lagi (b mod a, a);

end;

procedure test (x,y : integer);

begin

writeln (aku (2,lagi(x,y)));

end;

var a,b : integer;

begin

b :=3;

for a := 1 to b do

test(a,b);

end.

proses.

terjadi 3 kali perulangan

test (a,b) di program utama memanggil procedure test.

procedure test memanggil function aku

function aku mamanggil function lagi

perulangan pertama

test (1,3) memanggil procedure test di sub program

procedure test (1,3) memanggil function aku (2,lagi(x,y))

function aku membutuhkan function lagi(x,y)

pertama mencari nilai dari function lagi (x,y)

lagi (1,3)

apakah a>b

1>3 tidak, maka

apakah a=0

1=0 tidak, maka

lagi= lagi (3 mod 1,1) {3 mod 1 = 1}

lagi (1,1)

apakah a>b

1>1 tidak, maka

apakah a=0

1=0 tidak, maka

lagi = lagi (1 mod 1,1) {1 mod 1 =0}

lagi (0,1)

apakah a>b

0>1 tidak, maka

apakah a=0 iya, maka

lagi = b

lagi = 1

function aku (2,lagi(x,y))

function aku (2,1)

apakah a=1

2=1 tidak, maka

apakah b=1

1=1 iya, maka

aku= 2 x b

aku= 2 x 1

aku = 2

perulangan yang kedua

test (2,3) memanggil procedure test di sub program

procedure test (2,3) memanggil function aku (2,lagi(x,y))

function aku membutuhkan function lagi(x,y)

pertama mencari nilai dari function lagi (x,y)

lagi (2,3)

apakah a>b

2>3 tidak, maka

apakah a=0

2=0 tidak, maka

lagi= lagi (3 mod 2,2) {3 mod 2 = 1}

lagi (1,2)

apakah a>b

1>2 tidak, maka

apakah a=0

2=0 tidak, maka

lagi = lagi (2 mod 2,1) {2 mod 2 =0}

lagi (0,1)

apakah a>b

0>1 tidak, maka

apakah a=0 iya, maka

lagi = b

lagi = 1

function aku (2,lagi(x,y))

function aku (2,1)

apakah a=1

2=1 tidak, maka

apakah b=1

1=1 iya, maka

aku= 2 x b

aku= 2 x 1

aku = 2

perulangan yang ketiga

test (3,3) memanggil procedure test di sub program

procedure test (3,3) memanggil function aku (2,lagi(x,y))

function aku membutuhkan function lagi(x,y)

pertama mencari nilai dari function lagi (x,y)

lagi (3,3)

apakah a>b

3>3 tidak, maka

apakah a=0

3=0 tidak, maka

lagi= lagi (3 mod 3,3) {3 mod 3 = 0}

lagi (0,3)

apakah a>b

1>1 tidak, maka

apakah a=0

0=0 iya, maka

lagi = 3

function aku (2,lagi(x,y))

function aku (2,3)

apakah a=1

2=1 tidak, maka

apakah b=1

3=1 tidak, maka

aku= a x b + (aku(a-1,b) + aku(a,b-1))

a=2, b=3

aku (a-1,b)

a= a-1

a=2-1

a=1

b=3

apakah a=1

1=1 iya, maka

aku= 2 x a

aku= 2 x 1

aku= 2

aku (a, b-1)

a=2

b=b-1

b=3-1

b=2

apakah a=1

2=1 tidak, maka

apakah b=1

2=1 tidak, maka

aku= a x b + (aku (a-1,b) + aku (a,b-1))

a=2, b=2

aku (a-1,b)

a= a-1

a=2-1

a=1

b=2

apakah a=1

1=1 iya, maka

aku= 2 x a

aku= 2 x 1

aku= 2

aku (a,b-1)

a=2

b=b-1

b=2-1

b=1

apakah a=1

2=1 tidak, maka

apakah b=1

1=1 iya, maka

aku= 2 x b

aku= 2 x 1

aku= 2

aku= a x b + (aku (a-1,b) + aku (a,b-1))

aku= 2 x 2 + (2+2)

aku= 4 + 4

aku= 8

aku= a x b + (aku(a-1,b) + aku(a,b-1))

aku= 2 x 3 + ( 2 + 8 )

aku= 6 + 10

aku= 16

tampilan.

2

2

16

semoga jelas dg penjelasanku. sudah tak usahakan jelas dengan memberi huruf besar tebal, miring dan biasa.

kalau blum jelas hub. ak di saipul_bahrie@yahoo.co.id

Kata Kunci

contoh soal algoritma, soal algoritma dan pemrograman, algoritma procedure, Soal Algoritma Dan Pemrograman pascal, soal algoritma pemrograman, soal algoritma pascal, contoh soal algoritma pascal, soal uts algoritma dan pemrograman, soal algoritma.

Pascal, Programming Algorithms
Sahabat

Tentang Penulis

Penulis adalah sahabat-sahabat yg menyumbang tulisan di nusinau.com untuk dimuat dengan bijaksana. Silakan kirim tulisannya ke nusinau[at]gmail[dot]com atau ke admin[at]nusinau[dot]com. Butuh diskusi cepat? colek di twitter @nusinau
No Responses to “Soal UTS Algoritma 08/09 No. 2 (procedure & function)”

Leave a Reply

You must be logged in to post a comment.