Warna Dominan

Soal 1 Olimpiade Sains Mahasiswa 2007, Yogjakarta.

Deskripsi Soal :

Buatlah program yang menghasilkan sebuah matriks 5X6 yang elemennya adalah angka random 1 sampai 255. Outputkan juga warna dominan/ angka yang paling sering muncul dalam matriks tersebut. Jika ada lebih dari satu warna dominan, maka outputkanlah semua warna dominan. Jika tidak ada warna dominan, outputkan ”Tidak ada warna dominan”.

Contoh Output :

32 78 76 21 51 61

8 5 47 25 75 86

64 77 76 76 45 76

60 23 45 81 1 57

30 10 38 23 59 2

76

Solusi :

Tidak ada kesulitan untuk meng-generate angka randomya. Sedangkan untuk mengoutputkan warna dominan, saya menggunakan 1 array hitung[1..255] untuk menghitung jumlah elemen bernilai x dalam matriks, variable max untuk mencatat banyaknya kemunculan warna dominan, serta array warna[1..15] untuk menyimpan warna dominan. Berikut listing program saya.

var hitung:array[1..255] of byte;

warna:array[1..15] of byte;

max,jml:byte;

i,j,num:integer;

begin

randomize;

for i:=1 to 5 do

begin

for j:=1 to 6 do

begin

num:=random(255);

inc(hitung[num]);

write(num:4);

end;

writeln;

end;

jml:=0;

max:=2;

for i:=1 to 255 do

if max=hitung[i] then

begin

inc(jml);

warna[jml]:=i;

end

else

if max<hitung[i] then

begin

jml:=1;

warna[jml]:=i;

end;

if jml>0 then

begin

for i:=1 to jml do

write(warna[i],’ ‘);

writeln;

end

else

writeln(‘Tidak ada warna dominan’);

end.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s