Pembahasan Soal KSN/OSK SMA Informatika Komputer 2019 No 30-36

 Pembahasan Soal KSN/OSK SMA Informatika Komputer 2019 No 1-10

Pembahasan Sosl KSN/OSK SMA Informatika Komputer 2019 No 11-20

Pembahasan Soal KSN/OSK SMA Informatika Komputer 2019 No 21-29

Pembahasan Soal KSN/OSK SMA Informatika Komputer 2019 No 30-36.

30. Berapa  hasil yang  dikembalikan  jika dijalankan  fungsi  kwekkwok(slark,  0,  10)? 

31.  Ada  berapa  kali  pemanggilan  fungsi  kwekkwok  pada soal  nomor  31? 



32. Apakah keluaran  baris  writeln(aduk[3]);  dari program  di atas? 

33.  Apakah keluaran  baris  writeln(hasil(2,3));  dari  program  di  atas? 

34.  Apakah keluaran  baris    writeln(hasil(4,6));  dari  program  di  atas? 

Pembahasan KSN OSK Informatika Komputer SMA 2019 No 32 33 34.

32. begin 

aduk[0] := 1; 

for i:=1  to 6 do 

aduk[i] := aduk[i-1] * arr[i-1]; end; 


arr={8,1,6,3,4,15}

Urutan arr dihitung dari 0, 1, 2 hingga seterusnya. Dari kode diatas didapat

aduk[0]=1

aduk[1]=aduk[0]×arr[0]=1×8=8

aduk[2]=8

aduk[3]=48

aduk[4]=144

aduk[5]=576

aduk[6]=8640


function  hasil (kiri, kanan  :integer): integer; 

begin 

hasil :=   (aduk[kanan] div  aduk[kiri-1]); 

end; 

Kode diatas dibaca hasil(kiri,kanan)=aduk[kanan]/aduk[kiri-1]


32. keluaran  baris  writeln*(aduk[3]);  dari program  di atas

*writeln program output suntuk memunculkan tulisan atau hasil yang ada didalam ( )

writeln(aduk[3])=aduk[3]=48

33. keluaran  baris  writeln(hasil(2,3));  dari  program  di  atas

writeln(hasil(2,3))=hasil(2,3)=aduk[3]/aduk[1]=48/8=6

34. keluaran  baris    writeln(hasil(4,6));  dari  program  di  atas

hasil(4,6)=aduk[6]/aduk[3]=8640/48=180


35. Apakah hasil yang  dikembalikan dari menjalankan fungsi  asik  (1,  9, 5)? 

36.  Apa  hasil  yang  dikembalikan  dari  menjalankan fungsi  seru(  asik(  15, 9,  2000 )  , 9,  2000  )?

Pembahasan KSN OSK Informatika Komputer SMA 2019 No 35 36.

Kode dibagi menjadi 2 yaitu asik dan seru.

function  asik(a,b,x : integer) : integer; 

var i:integer; 

begin 

for i:= 1  to x do 

a := a+b; 

asik  :=  a; 

Dari kode diatas didapat asik(a,b,x)=a+bx


function  seru(a,b,x : integer) : integer;

 var i:integer; 

begin 

for  i:= 1 to  x do 

begin 

a := a-b; 

break; 

end; 

seru := a; 

end;

Dari kode diatas didapatkan fungsi seru=a-b karena terdapa perintah break sehingga hanya dilakukan 1 kali.


35. hasil yang  dikembalikan dari menjalankan fungsi asik  (1,  9, 5) = 1+ 9 . 5 =46

36. hasil  yang  dikembalikan  dari  menjalankan fungsi  seru(  asik(  15, 9,  2000 )  , 9,  2000  )

asik(  15, 9,  2000 )=15+9 . 2000=18015

seru( 18015, 9,  2000  )=18015-9 =18006

0 komentar:

Post a Comment