Uji Kompentensi 1 – Struktur Data

Soal Uji kompetensi Minggu ke-1 :

  1.  Buatlah fungsi bilangan Fibonaci dengan cara iteratif.
  2. Buatlah fungsi untuk mencetak bilangan 1 sampai 10 secara iteratif dan rekursif (going up recursion, going down recursion, dan two half recursion).
  3. Buatlah subprogram x pangkat n dengan cara rekursif menggunakan ketiga cara rekursi
  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.

JAWABAN :

 No.1


#include<iostream.h>
#include<conio.h>

class Fibo{
 friend ostream& operator<<(ostream&,Fibo&);
 friend istream& operator>>(istream&,Fibo&);

 public:
long fibonacci(int);
 private:
int n;
};
int fibonacci(int n)
{ if((n==1)||(n==2))return(1);
else return (fibonacci(n-1)+fibonacci(n-2));
}
 ostream& operator<<(ostream& out,Fibo& a){
for(int i=1;i<=a.n;i++)
out<<fibonacci(i)<<", ";
return out;
}
 istream& operator>>(istream& in,Fibo& a){
cout<<"Deret Nilai : ";
in>>a.n;
return in;
}
int main(){
Fibo run;
cin >> run;
cout << run;
getch();
}

No.2


#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

class angka{
 public:
 angka(){nilai;}
 void interatif(int nilai);
 private:
 int i, nilai;
 };
void angka::interatif(int nilai)
 {
 int i=1;
 cout<<"Masukan Nilai : ";
 cin>>nilai;

 {
 for(int i=1; i<=nilai; i++)

 cout << i << endl;
 }

 }
int main(int argc, char *argv[])
{
 {
 angka x;
 cout<<"\nMencetak Bilangan\n"<<endl;
 x.interatif(0);
 }

system("PAUSE");
 getch;;
}

No.3


#include <iostream.h>
#include <conio.h>
#include <math.h>
class Pangkat{
 friend ostream& operator << (ostream& , Pangkat& );
 friend istream& operator >> (istream& , Pangkat& );
public:
 Pangkat();
 float pemangkatan();
private:
 float x, n;
};

Pangkat::Pangkat(){}
istream& operator >> (istream& in, Pangkat& t){
 cout<<"Menghitung Perpangkatan\n"<<endl;
 cout<<"Masukkan nilai x : "; in>>t.x;
 cout<<"Masukkan nilai n : "; in>>t.n;
return in;
}
float Pangkat::pemangkatan(){
 return (exp(n*log(x)));
}
ostream& operator << (ostream& out, Pangkat& t){
 out<<"Hasil Perpangkatan : "<<t.pemangkatan()<<endl;

return out;
}
int main(){
 Pangkat k;
 cin>>k;
 cout<<k;
 getch();
}

No.4


#include <iostream.h>
#include <conio.h>

class Deret {
 friend istream& operator>>(istream&, Deret&);
 friend ostream& operator<<(ostream&, Deret&);

 public:
 void cetak();
 private:
 int bil;
 int i, k, sum;
 };

 void Deret::cetak() {
 sum=0;
 k=0;
 for (i=1; k<=bil;i++){
 if (k <= bil && (k+2)>=bil)
 break;
 k=(i*3)-2;
 sum+=k;
 cout<< sum<<", ";
 }
 }
istream& operator>>(istream& input, Deret& x) {
 cout << "Masukkan Bilangan : ";
 input >> x.bil;
 return input;
 }

ostream& operator<<(ostream& output, Deret& x) {
 output << "Jumlah Deret : ";
 x.k=0;
 for (x.i=1; x.k<= x.bil; x.i++){
 x.k=2*(x.i-1)+1;
 if (x.k <= x.bil && (x.k+2)>=x.bil){
 cout << x.k<< " adalah" << endl;
 cout<<endl;
 break;
 }
 else cout << x.k << " + ";
 }
 x.cetak();
 return output;
 }

int main() {
Deret Bilangan;
cin >> Bilangan;
cout << Bilangan << endl;
getch();
return 0;
}

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s