Thursday, May 1, 2014

Procedure

Pak Dengklek memberikan Anda banyak 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

Banyak baris, antara 1 sampai 100 baris, masing-masing berisi sebuah bilangan bulat N.

Format Keluaran

Untuk setiap baris, cetak sesuai permintaan soal.

Contoh Masukan

1
12 
123

Contoh Keluaran

satuan
puluhan
ratusan

Petunjuk

Berbeda dengan soal Case, pada soal ini Anda membaca banyak bilangan bulat, tidak hanya satu.
Pada soal ini akan diperkenalkan konsep procedure. Sebuah procedure (prosedur) adalah deretan perintah-perintah yang dapat dieksekusi dengan cara memanggil namanya. Bentuk umum deklarasi prosedur adalah:
procedure <nama>(<daftar parameter>);
<daftar deklarasi>
begin
    <perintah-perintah>
end;
Contohnya, kita dapat membuat sebuah procedure bernama TulisJawaban:
procedure TulisJawaban(x: integer);
begin
    case x 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;
end;
Setelah itu prosedur TulisJawaban ini dapat kita gunakan untuk memecahkan masalah awal:
while not eof(input) do
begin
    readln(bil);
    TulisJawaban(bil);
end;
Untuk setiap bil yang dibaca, nilai variabel bil akan "dimasukkan" ke dalam variabel x di dalam prosedur TulisJawaban. Lalu prosedur tersebut akan mencetak hasilnya, tergantung pada nilai x. Secara keseluruhan, program ini akan mengeluarkan jenis bilangan untuk setiap bilangan yang dibaca.
Perhatikan kesamaan penulisan readln(bil); dan TulisJawaban(bil);. Sesungguhnya, readln dan writeln juga adalah prosedur, tetapi prosedur-prosedur tersebut sudah dibuatkan untuk kita, sehingga kita tinggal menggunakannya saja.
Jawabannya adalah :

No comments:

Post a Comment