Uji kompetensi SDATA 01

program fibonacci


#include <cstdlib>
#include <iostream>

using namespace std;
class madis{
public:
           void pilih();
           void arit();
           void vibo();

           private:
            int q[100];
            };
          
            void madis::pilih(){
            int n;
            cout<<"\n1. Aritmatik !?\n2. Vibonacci !?\n";
            cout<<"\n\npilihan anda : ";
            cin>>n;
            if(n==1)arit();
            if(n==2)vibo();
            else cout<<"\n\n***selesai***\n\n";
            }
         
            void madis::arit() {
            //system("cls");
            int n,s,a,jml=0;
            cout<<"\nMasukkan nilai awal :";cin>>s;
            cout<<"masukkan beda :";cin>>a;
            cout<<"masukkan batas (berapa kali diulang):";cin>>n;
            cout<<"\nMaka didapat deret aritmatik\n=>";
          
            for (int i=0;i<n;i++){
            q[i]=s+i*a;
            cout<<q[i]<<" ";
            jml=jml+q[i];
             }
             cout<<"\nJumlah dari deret adalah "<<jml;
             cout<<"\n\n";pilih();
             }
             void madis :: vibo(){
              // system ("cls");
              int i,a,s,d=0,n;
              cout<<"\nMasukan nilai awal :";cin>>a;
              cout<<"masukan batas nilai :";cin>>n;
              s=a;
              i=a;
              cout<<"\nMaka akan didapat deretan :\n"<<i<<" ";
              for (int i=0;i<n-1;i++){
              q[i]=s+a;
              s=a;
              a=q[i];
              cout<<q[i]<<" ";
              d=d+q[i];
              }
              cout<<"\nJumlah dari deret adalah "<<d+i;
              cout<<"\n\n"; pilih();
                            }
              int main()
              {
             madis z;
             z.pilih();
           
                   
                                            
    system("PAUSE");
    return 0;
}




2.  Buatlah fungsi untuk mencetak bilangan 1 sampai 10 secara iteratif dan rekursif (going up recursion, going down recursion, dan two half recursion).
  iteratif
#include
  Int Main(){
    Int I;
    For(i=1;i<=10;i++){
    Cout<<” “<
}

Return 0;
}

 3. Buatlah subprogram x pangkat n dengan cara rekursif menggunakan ketiga cara rekursi
#include
Long L(Int n)
{ if ((n==0 || (n==1)) return(1);
Else return (n*L(n-1)+1);
}

main (){
int n;
long hasil;
cout<<”input n:”;
cin>>n;
hasil=L(n);
cout<<”Nilai”<
return 0;
}


4.      Dengan menggunakan kenyataan bahwa deret : 1, 3, 7, 15, 31, …
hasil jumlahnya mengikuti rumus :
L(n) = 2*L(n-1) +1
buatlah fungsi iteratif dan rekursif untuk menghitung jumlah deret tersebut.

If (n=0) or (n-1) then factorial = 1
Else factorial = n*factorial(n-1)

Komentar