Advertisement
asrori

mainKonversi

Mar 28th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.41 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include "Konversi.h"
  4.  
  5. using namespace std;
  6.  
  7. void clearbuffer();
  8. void menu();
  9. void faktor();
  10. double faktorial(double angka);
  11. void fibo();
  12. int fibonacci(int angka);
  13. void bin();
  14. void biner(int angka);
  15.  
  16. int main( void ) {
  17.     int pilihanMenu;
  18.  
  19.     do{
  20.         system("clear");
  21.         menu();
  22.         cout << "masukkan pilihan menu : " << flush;
  23.         cin >> pilihanMenu;
  24.         clearbuffer();
  25.         if (pilihanMenu == 1) faktor();
  26.         if (pilihanMenu == 2) fibo();
  27.         if (pilihanMenu == 3) bin();
  28.     }while (pilihanMenu != 4);
  29.  
  30.     return 0;
  31. }
  32.  
  33. void clearbuffer(){
  34.     cin.clear();
  35.     cin.ignore(1024, '\n');
  36. }
  37.  
  38. void menu(){
  39.     cout << "perhitungan faktorial, fibonacci, biner\n" << endl;
  40.     cout << "1. faktorial" << endl;
  41.     cout << "2. fibonacci" << endl;
  42.     cout << "3. biner" << endl;
  43.     cout << "4. exit\n" << endl;
  44. }
  45.  
  46. void faktor(){
  47.     Konversi data;
  48.     double angka;
  49.     int limit = lihatBatas(data);
  50.  
  51.     do{
  52.  
  53.         cout << "masukkan angka[1-20] : " << flush;
  54.         cin >> angka;
  55.         clearbuffer();
  56.     } while (angka < 1 or angka > limit);
  57.  
  58.     double hasil = faktorial(angka);
  59.     data.setAngka(angka);
  60.     data.setHasil(hasil);
  61.     data.lihatHasil();
  62.  
  63.     cout << "\n\ntekan ENTER untuk melanjutkan..." << flush;
  64.     clearbuffer();
  65. }
  66.  
  67. double faktorial(double angka) {
  68.     if (angka == 0)
  69.         return 1;
  70.     return angka *faktorial(angka - 1);
  71. }
  72.  
  73. void fibo(){
  74.     int angka;
  75.  
  76.     do{
  77.         cout << "masukkan angka [1-20] : " << flush;
  78.         cin >> angka;
  79.         clearbuffer();
  80.     } while (angka < 1 or angka > 20);
  81.  
  82.     for (int i = 1; i <= angka; i++) {
  83.         cout << fibonacci(i) << " " << flush;
  84.     }
  85.  
  86.     cout << "\n\ntekan ENTER untuk melanjutkan..." << flush;
  87.     clearbuffer();
  88. }
  89.  
  90. int fibonacci(int angka){
  91.     if (angka == 0)
  92.         return 0;
  93.     else if (angka == 1)
  94.         return 1;
  95.     else
  96.         return ( fibonacci(angka-1) + fibonacci(angka-2) );
  97. }
  98.  
  99. void bin(){
  100.     int angka;
  101.  
  102.     do{
  103.         cout << "masukkan angka [1-100] : " << flush;
  104.         cin >> angka;
  105.         clearbuffer();
  106.     } while (angka < 1 or angka > 100);
  107.  
  108.     biner(angka);
  109.  
  110.     cout << "\n\ntekan ENTER untuk melanjutkan..." << flush;
  111.     clearbuffer();
  112. }
  113.  
  114. void biner(int angka){
  115.     if (angka > 1)
  116.         biner(angka/2);
  117.  
  118.     cout << (angka % 2) << " " << flush;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement