RSS

Matriks-4

Membuat Nama Sel Tahanan

Rayzle adalah kepala penjara yang bertugas untuk memberi nama tempat-tempat yang ada di penjara. Tiap sel ini memiliki nama yang identik, jika ada sel yang tidak identik, maka Rayzle akan mengganti nama sel tersebut. Tiap-tiap sel memiliki nama depan yang sama dan nama belakang yang berbeda, nama depan menunjukkan lokasi zona sel berada dan nama belakang sel ini menunjukkan nomor blok. Misalnya pada zona Aries, terdapat 2 buah blok sel Dorothea dan sebuah blok sel Jacob maka sel-sel tersebut dinamakan Aries Dorothea I, Aries Dorothea II dan Aries Jacob I. Bantulah Rayzle untuk membuat program yang dapat memberi nama sel penjara.

Format Masukkan :

Masukan pertama merupakan jumlah test case banyak zona
Masukkan kedua merupakan nama zona
Masukkan ketiga merupakan banyak test case blok
Masukkan keempat merupakan nama blok dan jumlah sel tiap blok.

Format Keluaran :

Nama sel yang telah diinginkan

Disini yang perlu diperhatikan adalah adanya penamaan dengan angka Romawi, maka kita perlu melihat lagi bagaimana cara konversi bilangan desimal ke bilangan romawi dalam postingan ini.

Selanjutnya penerapan lain hanyalah array biasa, bukan dalam bentuk matrik.

Listing Program :

program namasel;
uses crt;
const romawi: array[1..13] of string=
              ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I');
      desimal: array[1..13] of integer=
               (1000,900,500,400,100,90,50,40,10,9,5,4,1);
var jumzon,jumblok,i,j,angka,k,l:integer;
    konver:string;
    zona,blok:array[1..50] of string;
    jumsel:array[1..50] of integer;

begin
    clrscr;
    readln(jumzon);
    for i:=1 to jumzon do begin
        readln(zona[i], jumblok);
        for j:=1 to jumblok do begin
            readln(blok[j],jumsel[j]);
        end;
    end;

    for i:=1 to jumzon do
        for j:=1 to jumblok do
            for l:=1 to jumsel[j] do begin
                {disini perubahan angka jadi romawi}
                konver:='';
                angka:=l;
                for k:=1 to 13 do begin
                while (angka>=desimal[k]) do begin
                      angka:=angka-desimal[k];
                      konver:=konver+romawi[k];
                end;
                end;

                writeln(zona[i],' ',blok[j],' ',konver);
            end;

    readkey;
end.

Program ini bisa saja menggunakan fungsi untuk konversi angka menjadi romawi.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.