Bagosep

Pola N dan X dengan Rekursif di C++_Header

Dec 20th, 2016
68
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #ifndef BAGOS_H_INCLUDED
  2. #define BAGOS_H_INCLUDED
  3.  
  4. #include <iostream>
  5. #include <stdlib.h>
  6.  
  7. using namespace std;
  8. // POLA SILANG
  9. void rekursifBarisSilang (int angka, char bentuk[2],int baris,int kolom); //Membut Fungsi Rekursif yang ingin dipanggil nanti Pola 1
  10. //POLA N
  11. void rekursifBarisN (int angka1,char bentuk1[3],int baris1, int kolom1);  //Membut Fungsi Rekursif yang ingin dipanggil nanti Pola 2
  12.  
  13. // Pola Silang
  14. void polaSilang (char bentuk[2],int angka){
  15. cout <<"Angka yang dimasukan = "<<angka/2<<endl;
  16. cout<<"Masukan Bentuk X Pertama: ";cin>>bentuk[1];              //Cuman Pendeklarasian Masukan Saja!
  17. cout<<"Masukan Bentuk X Kedua: ";cin>>bentuk[0];
  18. cout<<endl;
  19. }
  20. void barisSilang (int angka, char bentuk[2],int baris, int kolom){ //Membuat Variabel Fungsi dengan nama terserah
  21.                                                                    // Parameter mengikuti Kondisi PROGRAM!
  22.     if (baris<=angka)                                         // Sama dengan for(baris=1;baris<=angka;baris++)
  23.     {
  24.         kolom=1;
  25.         rekursifBarisSilang(angka,bentuk,baris,kolom);        //Memanggil Fungsi Rekursif tadi
  26.         cout<<endl;                                           //Endl yang biasa di bawah for kolom
  27.         baris++;
  28.         barisSilang(angka,bentuk,baris,kolom);                //didalam If ini sama dengan Perulangan Do While
  29.     }
  30.     else{
  31.         baris=1;                                              //Di Set Ke awal lagi agar Nilai Baris tidak ngaco
  32.     }
  33. }
  34. void rekursifBarisSilang (int angka, char bentuk[2],int baris, int kolom){     //Memanggil Fungsi Rekursif tadi
  35.     if (kolom<=angka){                                        // Sama dengan for(kolom=1;kolom<=angka;kolom++)
  36.         if(kolom==baris){
  37.             cout<<bentuk[1]<<" ";
  38.         }
  39.         else if (kolom==angka-baris+1){                       // Didalam If ini Sesuaikan Pengujian Disini Pengujian untuk Pola X
  40.             cout<<bentuk[0]<<" ";
  41.         }
  42.         else{
  43.             cout<<" ";
  44.         }
  45.         kolom++;
  46.         rekursifBarisSilang(angka,bentuk,baris,kolom);        //Memanggil Kembali Fungsi Rekursif
  47.     }
  48.     else{
  49.         kolom=1;                                              //Di Set Ke awal lagi agar Nilai Baris tidak ngaco
  50.     }
  51. }
  52. //Pola N
  53. void polaN(char bentuk1[3],int angka){
  54. cout <<"Angka yang dimasukan  = "<<angka/3<<endl;
  55. cout<<"Masukan Bentuk N Pertama: ";cin>>bentuk1[0];
  56. cout<<"Masukan Bentuk N Kedua: ";cin>>bentuk1[1];            //Cuman Pendeklarasian Masukan Saja!
  57. cout<<"Masukan Bentuk N Ketiga: ";cin>>bentuk1[2];
  58. cout<<endl;
  59. }
  60.  
  61. void barisN (int angka1, char bentuk1[3],int baris1,int kolom1){ //Membuat Variabel Fungsi dengan nama terserah
  62.                                                                  //Parameter Sesui dengan kondisi Program
  63.     if (baris1<=angka1/3)                                        //Sama Dengan for(baris1=1;baris1<=angka1/3;baris1++)
  64.     {
  65.         kolom1=1;
  66.         rekursifBarisN(angka1,bentuk1,baris1,kolom1);            //Memanggil Fungsi Rekursif tadi
  67.         cout<<endl;                                              //Endl yang biasa di bawah for kolom
  68.         baris1++;                                                //didalam If ini sama dengan Perulangan Do While
  69.         barisN(angka1,bentuk1,baris1,kolom1);
  70.     }
  71.     else{
  72.         baris1=1;                                                //Diset Ke awal agar tidak ngaco nilai nya
  73.     }
  74. }
  75. void rekursifBarisN (int angka1, char bentuk1[3],int baris1,int kolom1){//Memanggil Fungsi Rekursif yang dibuat diatas tadi
  76.     if (kolom1<=angka1){                                         //Sama dengan for(kolom1=1;kolom1<=angka1;kolom++){
  77.         if(kolom1==angka1/3-baris1+1){
  78.         cout<<bentuk1[0];
  79.         }
  80.         else if(kolom1==angka1-baris1+1){
  81.         cout<<bentuk1[2];
  82.         }                                                         // didalamnya if ini sama dengan pengujian Program disini saya
  83.         else if(kolom1==angka1/3+baris1){                         // Membuat pola N
  84.         cout<<bentuk1[1];
  85.         }
  86.         else{
  87.         cout<<" ";
  88.         }
  89.         kolom1++;
  90.         rekursifBarisN(angka1,bentuk1,baris1,kolom1);             //Memamngil Fungsi Rekursif lagi
  91.     }
  92.     else{
  93.         kolom1=1;                                                 //Diset Ke awal agar nilai tidak ngaco
  94.     }
  95. }
  96.  
  97. #endif // BAGOS_H_INCLUDED
RAW Paste Data