OSP 2011

Untuk 23 dan 24 perhatikan potongan program berikut.
{
ubah adalah fungsi yang menerima masukan integer i dengan rumus:
ubah(1) = 'A'; ubah(2) = 'B'; ubah(3) = 'C', dst.
}
var
kalimat : array[1..10000] of string;
hitung : integer;

procedure berulang(idx,n: integer; kata:string);
var
i:integer;
begin
    if (idx = n) then
    begin
        hitung := hitung+1;
        kalimat[hitung] := kata;
    end
    else
    begin
        for i:=1 to 5 do
            berulang(idx+1,n, kata+ubah(i));
    end;
end;
  1. Jika diberikan program utama ini:

    begin
        berulang(0,5,'');
        writeln(hitung);
    end.    
    
    Apakah output yang tampil di layar? Jawab: …..

  2. Jika diberikan program utama ini:

    begin
        berulang(0,5,'');
        writeln(kalimat[1],' ',kalimat[10],' ',kalimat[hitung]);
    end.    
    
    Apakah output yang tampil di layar? Jawab: …..


  1. Nilai idx awal adalah 0. Karena idx tidak sama dengan n (5), maka program akan memanggil prosedur berulang sebanyak 5x dengan idx menjadi 1.

    Setiap idx = 1 yang dipanggil sebelumnya juga akan melakukan pemanggilan prosedur dengan idx 2 dan seterusnya sampai idx bernilai 5. Dengan demikian program akan terpanggil sebanyak 5n-idx = 55 = 3125 yang mana merupakan nilai hitung.

  2. kata pada procedur akan berubah dengan menambahkan ‘A’, ‘B’, ‘C’, ‘D’ dan ‘E’ setiap melakukan pemanggilan. Awalnya kata bernilai ” yang kemudian akan menjadi ‘A’, ‘B’, ‘C’, ‘D’ dan ‘E’ dengan nilai idx = 1. Setiap huruf tersebut akan melakukan pemanggilan dengan menambahkan juga ‘A’ sampai ‘E’. Jika diilustrasikan akan menjadi:

    osp2011-24

    Kalimat akan menyimpan kata yang diurutkan dari paling atas. Sehingga kalimat[1] pasti bernilai ‘AAAAA’ untuk idx = 0 dan n = 5. Sedangkan kalimat[10] akan bernilai ‘AAABE’ dan string terakhir yang tersimpan dalam array adalah ‘EEEEE’. Dengan demikian output yang ditampilkan adalah AAAAA AAABE EEEEE.

Share Now:

5 1 vote
Article Rating
Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
kim
kim
2 years ago

⅓ x ⅔ = 2/9 bagian
kok bisa gitu kak?

Langganan

Subscribe To Our Newsletter

2
0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!