Diberikan procedure seperti di bawah ini. Apakah output dari program tersebut jika dipanggil lacak(9,6,7,4)? {tuliskan jawaban sesuai dengan output yang dihasilkan}
procedure lacak(a,b,c,d:integer);
begin
if (a>b) and (c>d) then
begin
if (a>d) or (c<d) then
begin
if (b<d) then
writeln(a)
else
writeln(b);
end else
begin
writeln(c);
end;
end else
begin
if (a=d) or (c=d) then
begin
if (b<c) then
writeln(b)
else
writeln(c);
end else
writeln(d);
end;
end;
Wantah rare sane seneng ring komputer.
Salam kenal saya Bagus dari Bali.
Jadi menurut analisa saya seperti berikut :
program e;
uses crt;
procedure lacak(a,b,c,d:integer);
begin
//nilai lacak( 9, 6 , 7, 4) = a , b , c , d
if (a>b) and (c>d) then //* if // 9 > 4 ( benar) dan 7 > 4 ( benar ).
begin
if (a>d) or (c<d) then //** if // 9 > 4 (benar) atau 7 < 4 ( salah ), nah kalau memakai "or" cukup salah satu statment aja benar programnya akan dieksekusi.
begin
if (b<d) then // 6 < 4 (salah) maka masuk ke else * .
writeln(a)
else
writeln(b); // * diminta menuliskan nilai var b yaitu 6, karena ini dieksekusi maka program di else ** tidak di eksekusi.
end
else
begin
writeln(c); // ** ini tidak di eksekusi, karena if**-nya telah terpenuhi.
end;
end
else // sebenarnya kode ini beserta anakannya tidak akan dieksekusi karena if*-nya telah dieksekusi. Tapi kita coba aja .
begin
if (a=d) or (c=d) then // 9 = 4 ( salah ) atau 7 = 4 ( salah ), maka program tidak akan melanjutkan pemrosesan ke anak kodenya.
begin
if (b<c) then
writeln(b)
else
writeln(c);
end
else
writeln(d);
end;
end;
var
a,b,c,d:integer;
begin
write('masukan nilai a : ');readln(a);
writeln;
write('masukan nilai b : ');readln(b);
writeln;
write('Masukan nilai c : ');readln(c);
writeln;
write('Masukan nilai d : ');readln(d);
lacak(a,b,c,d);
writeln;
end.
Saya mohon maaf bila ada kesalahan pada analisa saya serta saya mohon perbaikkanya bilamana ada yang menemukan kesalahannya.
Terimakasih.
MAN 1 LAMPUNG TENGAH Go To TOKI 2019 Go Get Gold IOI 2019
Masuk untuk menulis jawaban
6