Jumat, 08 April 2016

TUGAS DIKTAT BAB 5 LATIHAN 2 (part 1)

Latihan yang ke 2 pada bab 5 ini membahas tentang rekursif.
soal-soal latihannya seperti berikut ini.
1. Buatlah fungsi fibonacci dengan cara iteratif.
    Raptornya

    Program cpp
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
     int n, firstTerm = 1, secondTerm = 1, nextTerm;
    cout << "masukan nilai: ";
    cin >> n;

    cout << "urutan Fibonacci: " << firstTerm << " + " << secondTerm << " + ";
    nextTerm = firstTerm + secondTerm;

    while ( nextTerm < n) {
        cout << nextTerm << " + ";
        nextTerm = firstTerm + secondTerm;
        firstTerm = secondTerm;
        secondTerm = nextTerm;
    }
    return 0;
}

2. Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain.
   Raptornya

   Cpp nya
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
    int suku;
    int a,b,c;
     cout<<"Membuat Deret Fibonacci\n";
     cout<<"Masukkan nilai suku ke-: ";cin>>suku;

     cout<<"Bilangannya adalah: \n";
     a=0;b=1;
    cout<<a<<endl<<b<<endl;
     for(int i=3; i<=suku; i++)
    {
    c = a + b;
    a = b;
    b = c;

     cout<<c<<endl;
     }
    return 0;
}

3. Algoritma perkalian dengan cara penjumlahan pada algoritma 5.3. belum sempurna
karena belum mencakup semua kemungkinan, misalnya untuk harga b negatif.
Cppnya
#include <iostream>
#include <math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv)
{
    int a,b,i,jumlah=0;
    cout<<"menghtung nilai perkalian dengan penjumlahan"<<endl;
    cout<<"masukan nilai pertama :";cin>>a;
    cout<<"masukan nilai ke dua : ";cin>>b;
    if(a>0 && a<0 || b>0){
    for(i=1;1<=b;i++)
        jumlah+=a;
        cout<<a<<"x"<<b<<"="<<jumlah;
    }else if (b<0 && a<0){
        for(i=0;i>a;i--)
        jumlah-=b;
        cout<<a<<"x"<<b<<"="<<jumlah;
    }else{
        for(i=1;i<=a;i++)
        jumlah+=b;
        cout<<a<<"x"<<b<<"="<<jumlah;
    }
    return 0;
}

4. Buatlah algoritma rekursif dari algoritma 5.3.
   Cpp
   #include <iostream>
#include<conio.h>
#include<math.h>
using namespace std;

    class hitung
    {
    public:
           void input();
           int proses();
    private:
            int a;
            float bil,hasil,total;
            };
  
    void hitung::input(){
    cin>>a;
    cout<<endl;}
  
    int hitung::proses(){
    hasil=0;
    total=0;
    bil=-1;
    for(int j=1; j<=a; j++){
    bil=(bil*(-1));
    total=bil/j;
    hasil+=total;
    if(j==1)
    cout<<"("<<bil<<"/"<<j<<")";
    if(j>1)
    cout<<" +("<<bil<<"/"<<j<<")";
    }
  
    cout<<endl<<endl<<"hasil penjumlahan deret = "<<hasil;
    return hasil;
    }
  
    int main()
    {
    cout<<"menghitung jumlah Hasil Deret 1-(1/2)+(1/3)-(1/4)+...+(1/n)"<<endl<<endl;
    cout<<"masukan nilai n : ";
    hitung deret;
    deret.input();
    deret.proses();
  
    getch();
    return 0;
    }

Tidak ada komentar:

Posting Komentar