Deskripsi Untuk Soal Nomor 44 dan 45
Perhatikan potongan program berikut:
var input : string;
procedure ubah(s:string)
var i,j:integer;
begin
for i:=1 to length(s)-1 do
begin
s[i] := chr((((ord(s[i])-65) + (ord(s[i+1]) - 65)) mod 26) + 65);
end;
writeln(s);
end;
begin
ubah(input);
end.
Catatan:
Fungsi ord(cc: char) menghasilkan nilai kode ASCII karakter CC;
Fungsi chr (K: integer) menghasilkan karakter yang kode ASCII-nya adalah K.
Potongan tabel konversi kode ASCII dari karakter ‘A’ s.d. ‘Z’ diberikan sebagai berikut:
ord(‘A’) = 65
ord(‘B’) = 66
ord(‘C’) = 67
….
… dst
ord(‘X’) = 88
ord(‘Y’) = 89
ord(‘Z’) = 90
Apabila variabel input berisi nilai 'TOKIABSOLUTEWINNERIOI', apakah output yang dihasilkan oleh program di atas?
A. HYSIBTGZFNXAEVARVZWWI
B. IZTJCUHAGOYBFWBSWAXXJ
C. HYAIBTBZFNXCEVARVZWWI
D. IZTJCUHAGOYBFWBSWAXXJ
E. HZAJIUBAFOXBEWRSZAWXI
Apabila program di atas mengeluarkan output 'RIPTQHDLTMQMSS', nilai variabel input sebelum program dijalankan adalah .....
A. GOGETGOLDMEDAL
B. RAIHMEDALIEMAS
C. HYAIBTBZFNXCEVA
D. OSNINFORMATIKA
E. SUKSESSEMUANYA
ROAD TO OSP 2K19
44. Jawabannya A. HYSIBTGZFNXAEVARVZWWI
Jawabannya bisa didapat melalui perhitungan dari depan dan belakang, dari kata 'TOKIABSOLUTEWINNERIOI'. Sesuai dengan kode, s[length(s)] atau huruf terakhir tidak akan berubah, karena pada kode for i=1 sampai length(s)-1, huruf yang diubah hanya dari 1 sampai length(s)-1, dan huruf terakhir tidak akan diubah. Maka eliminasi jawaban B dan D, lalu cari huruf yang diubah di depan, dan akan didapat jawaban 'HYSIBTGZFNXAEVARVZWWI'.
45. Jawabannya B. RAIHMEDALIEMAS
Sama seperti yang di atas, s[length(s)] atau huruf terakhir tidak akan berubah, eliminasi jawaban yang tidak mungkin, maka jawaban yang tersisa hanya B. RAIHMEDALIEMAS
Follow Your Dreams
44 A. HYSIBTGZFNXAEVARVZWWI
45. Perulangan hanya sampai length kata -1 jadi huruf terakhir akan tetap menjadi S.
B. RAIHMEDALIEMAS
Masuk untuk menulis jawaban
44.A 45.B HURUF R menghasilkan huruf r nya kembali berdasarkan hasil perhitungan