Perhatikan potongan program berikut:
var
x,y : integer;
procedure XYZ(var a,b:integer);
var
c: integer;
begin
c := a;
a := b;
b: = c;
x = x+10;
end;
begin
x:=10;
y:= 5;
XYZ(x,y);
writeln(x);
end.
Berapakah nilai angka yang tampil di output?
begin
c := a;
a := b;
b: = c;
x = x+10;
end;
Syntax error.
Seharusnya:
x := x+10;
Trust me, I'm Handsome :v
Compile Error. Tidak ada variabel x dalam fungsi.
Bisa saja compile error (illegal expression pd procedure, dibagian x dan b)
Jika dianggap bisa dicompile:
procedure tsb melakukan proses swap pada variabel x dan y, lalu menambahkan nilai variabel x (yg baru, setelah ditukar) dengan 10, maka nilai x yang baru adalah 5+10 = 15.
Apakah Tim Olimpiade Komputer Indoenesia pernah memberikan pernyataan tersebut? Soal OSP tidak boleh compile error?
Saya pernah baca-baca pembahasan soal olimpiade(buku), di sana ada contoh soal yg memberikan compile error.
Masuk untuk menulis jawaban
Soal tidak boleh diubah -_-
Jawaban Bukanlah Compiler Error.
Jawabannya adalah 20 (10 dari main program + 10 dari fungsi)
Alasan jawabannya adalah bukan compile error, karena x sudah di set sebagai global variable. Jadi tidak compile error.
semoga menjawab
x adalah variabel global sehingga bisa dimodifikasi di dalam fungsi, sementara untuk ": =" mungkin salah pengetikan, karena soal-soal di OSP seharusnya tidak menghasilkan compile error, kecuali memang ditanyakan CE/tidaknya