Selasa, 27 November 2012

Menyebut Angka

Ok, akhirnya sampai di sini juga. Program berikut adalah program untuk menyebut angka dalam bentuk kalimat mulai dari 1 sampai jutaan. Misalnya angka 123 menjadi “seratus dua puluh tiga”, dst. Berikut ini salah satu contoh kodenya:

#include <iostream>
using namespace std;

void first (int n) {
      switch (n) {
      case 1: cout << "satu "; break;
      case 2: cout << "dua "; break;
      case 3: cout << "tiga "; break;
      case 4: cout << "empat "; break;
      case 5: cout << "lima "; break;
      case 6: cout << "enam "; break;
      case 7: cout << "tujuh "; break;
      case 8: cout << "delapan "; break;
      case 9: cout << "sembilan "; break;
      case 10: cout << "sepuluh "; break;
      case 11: cout << "sebelas "; break;
      default: break;
      }
}

void second (int n) {
      int bul, sisa;
      bul = n / 10;
      sisa = n % 10;

      if (bul == 0)
            first (sisa);

      else if (bul == 1) {
            if (sisa <= 1)
                  first (n);

            else {
                  first (sisa);
                  cout << "belas ";
            }
      }

      else {
            first (bul);
            cout << "puluh ";
            first (sisa);
      }
}

void third (int n) {
      int bul, sisa;
      bul = n / 100;
      sisa = n % 100;

      if (bul == 0)
            second (sisa);

      else if (bul == 1) {
            if (sisa == 0)
                  cout << "seratus ";

            else {
                  cout << "seratus ";
                  second (sisa);
            }
      }

      else {
            first (bul);
            cout << "ratus ";
            second (sisa);
      }
}

void fourth (int n) {
      int bul, sisa;
      bul = n / 1000;
      sisa = n % 1000;

      if (bul == 0)
            third (sisa);

      else if (bul == 1) {
            if (sisa == 0)
                  cout << "seribu ";

            else {
                  cout << "seribu ";
                  third (sisa);
            }
      }

      else {
            third (bul);
            cout << "ribu ";
            third (sisa);
      }
}

void fifth (int n) {
      int bul, sisa;
      bul = n / 1000000;
      sisa = n % 1000000;

      if (bul == 0)
            fourth (sisa);

      else if (bul == 1) {
            if (sisa == 0)
                  cout << "satu juta ";

            else {
                  cout << "satu juta ";
                  fourth (sisa);
            }
      }

      else {
            third (bul);
            cout << "juta ";
            fourth (sisa);
      }
}

void main () {
      int n = 1;
      while (n == 1) {
            int num1;
     
            do {
                  cout << "";
                  cin >> num1;
            } while (num1 < 1);

            fifth (num1);
            cout << "\n";
      }
}


Tidak ada komentar:

Posting Komentar