Thursday, May 1, 2014

Case

Pak Dengklek memberikan Anda sebuah bilangan bulat N (1 ≤ N < 100.000). Jika N merupakan satuan, cetak satuan. Jika N merupakan puluhan, cetak puluhan. Jika N adalah ratusan, cetak ratusan. Jika N adalah ribuan, cetak ribuan. Jika N adalah puluh ribuan, cetak puluhribuan.

Format Masukan

Baris pertama berisi sebuah bilangan bulat N.

Format Keluaran

Sebuah baris berisi keluaran sesuai permintaan soal.

Contoh Masukan 1

4

Contoh Keluaran 1

satuan

Contoh Masukan 2

12345

Contoh Keluaran 2

puluhribuan

Petunjuk

Anda dapat menggunakan struktur nested if-then-else seperti sebelumnya sebagai berikut.
if bil < 10 then
begin
    writeln('satuan');
end
else
begin
    if bil < 100 then
    begin
        writeln('puluhan');
    end
    else
    begin
        if bil < 1000 then
        begin
            writeln('ratusan');
        end
        else
        begin
            if bil < 10000 then
            begin
                writeln('ribuan');
            end
            else
            begin
                writeln('puluhribuan');
            end;
        end;
    end;
end;
Namun, karena penulisan nested structure dalam program yang terlalu banyak nest-nya tampak kurang rapi, maka kita dapat menggunakan struktur alternatif yang disebut struktur case sebagai berikut.
case <variabel> of
    <harga atau harga-harga 1> : begin <perintah-perintah 1> end;
    <harga atau harga-harga 2> : begin <perintah-perintah 2> end;
    dan seterusnya...
end;
Dengan struktur ini maka <harga atau harga-harga> dapat berupa satu harga tunggal atau suatu jangkauan harga atau beberapa harga. Jangkauan harga, misalnya 'dari 10 s.d. 99' dituliskan 10..99 (kedua batas bilangan dengan dua titik di antaranya). Beberapa harga dituliskan dengan tanda koma misalnya 10, 100, 1000. Jika ada beberapa <harga atau harga-harga> yang jangkauan bilangannya saling tumpang tindih, program akan menjalankan <perintah-perintah> yang berada pada urutan <harga atau harga-harga> yang lebih awal.
Jika jika menggunakan struktur case ini pemeriksaan menjadi lebih kompak dan sederhana sebagai berikut.
case bil of
    1..9: begin writeln('satuan'); end;
    10..99: begin writeln('puluhan'); end;
    100..999: begin writeln('ratusan'); end;
    1000..9999: begin writeln('ribuan'); end;
    10000..30000: begin writeln('puluhribuan'); end;
end;

Jawabannya adalah :


No comments:

Post a Comment