Deskripsi Untuk Soal Nomor 37 dan 38
var daebak : array [0..2015] of char; w, x, y, z, i : integer; procedure saranghae(x : integer; len : integer); var i : integer; store : char; begin store := daebak[x]; for i := len-1 downto 0 do begin if (i = 0) then daebak[x+((i+1) mod len)] := store else daebak[x+((i+1) mod len)] := daebak[x+i]; end; end; procedure anyeong(arr_sz : integer; part_sz : integer); var i : integer; begin for i:= 0 to (arr_sz div part_sz)-1 do begin saranghae(i * part_sz, part_sz); end; end; procedure oppa(n : integer); var i : integer; begin for i := 0 to n-1 do begin if(i mod 4 = 0) then daebak[i] := 'T' else if(i mod 4 = 1) then daebak[i] := 'O' else if(i mod 4 = 2) then daebak[i] := 'K' else daebak[i] := 'I'; Sesi 2 : Bidang Informatika/Komputer Halaman 10 dari 14 OSP 2016 end; end; begin readln(w, x, y, z); oppa(w); for i := 1 to x do anyeong(y, z); for i := 0 to w-1 do begin if(i mod 4 = 0) and (i <> 0) then write(“ “); write(daebak[i]); end; writeln; end.
Apa yang dihasilkan program di atas apabila yang diinputkan “16 2 12 4”?
Apa yang dihasilkan program di atas apabila yang diinputkan “16 4 10 5”?
bau bau plastique
Pada Procedure Saranghae, program memutar letak huruf huruf secara siklis. Dimulai dari x, sepanjang len. Contoh :
Sebuah String, yang berawal dari index 3 adalah "abcd", dengan len=4, akan ditukar di operasi tersebut menjadi "dabc".
Pada Procedure Anyeong, dilakukan procedure saranghae tiap part_sz huruf hurufnya. Sebagai contoh, jika diberikan nilai arr_sz=7 dan part_sz=2, maka akan dilakukan procedure saranghae pada index ke 0 sampai 1, 2 sampai 3, 4 sampai 5. tetapi 6 sampai 7 tidak dilakukan, karena 7 tidak berada dalam jangkauan. 7 adalah ukuran string, yang dimulai dari 0 ( zero index )
Procedure oppa hanya mengisi string dengan huruf huruf 'T', 'O', 'K', 'I', berturut turut dari huruf ke 0 sampai huruf ke n-1.
Pada pertanyaan nomor 37, diberi input 16 2 12 4.
String atau array of char daebak diisi dengan huruf huruf "TOKI" sampai index ke 16-1.
Kemudian operasi anyeong dalam for i sampai x, yaitu for yang mengulang sebanyak 2 kali. Artinya Huruf huruf index 0 sampai 3, 4 sampai 7, dan 8 sampai 11, diputar masing masing sebanyak 2 kali. Masing masing "TOKI" diputar menjadi "ITOK" lalu diputar lagi menjadi "KITO".
For berikutnya hanya output yang memisahkan stringnya tiap 4 karakter. Sehingga hasilnya
KITO KITO KITO TOKI
Silahkan berikan komentar jika pembahasan saya salah.
Untuk Nomor 38, Pembuktiannya dapat dilihat https://ideone.com/UTTJmt
Untuk Nomor 37, Pembuktiannya dapat dilihat https://ideone.com/WhxjdT
Masuk untuk menulis jawaban
37. ITOO OKKI TOKI TOKI
38. TOTO KIKI TOKI TOKI