//Barisan dan deret
//Arifin
//101401024
#include <iostream>
#include <conio.h>
using namespace std;
//variabel global ~arifin
int a,b,n,Sn;
//prototype fungsi ~arifin
int hitungdn (float a, float b, float n);
void pilihan();
void mulai();
int input ();
int nyoba();
int prosesif (int x);
int pangkat (int x, int y);
int cariSn ();
float cariDn ();
int cariSng ();
float cariDng ();
int tampilbaris (int x, int y, int z);
int tampilbarisg (int x, int y, int z);
//===========================================================
//=====================PROGRAM UTAMA=========================
//===========================================================
int main()
{
int x;
char akhir;
mulai();
ulang: // untuk statement goto ~arifin
pilihan ();
cin>>x;
prosesif(x);
cout<<endl;
cout<<endl<<endl;
cout<<"Apakah Anda Ingin Mengulang Program (Y/N) ?"<<endl;
akhir=getch();
cout<<endl;
if(akhir == \'Y\' || akhir == \'y\')
goto ulang;
getch();
}
//============================================================
//============================================================
void mulai()//Untuk menampilkan awal program ~arifin
{
cout<<"SELAMAT DATANG"<<endl<<endl
<<"this program was created by:"<<endl
<<"Arifin"<<endl<<endl;
}
void pilihan ()//Memberitahu pilihan ~arifin
{
cout<<"Apa yang ingin anda cari? :"<<endl
<<"1. Suku ke-n Barisan Aritmatika"<<endl
<<"2. Jumlah Deret Aritmatika"<<endl
<<"3. Suku ke-n Barisan Geometri"<<endl
<<"4. Jumlah Deret Geometri"<<endl<<endl
<<"masukkan pilihan anda: ";
}
int prosesif (int x) //memproses setelah mendapatkan pilihan ~arifin
{
cout<<endl<<endl;
float hasil;
if (x==1)
{
input();
tampilbaris (a,b,n);
hasil=cariSn();
cout<<endl<<"suku Barisan Aritmatika ke-"<<n<<" adalah: "<<hasil;
;}
else if (x==2)
{
input();
tampilbaris (a,b,n);
hasil=cariDn();
cout<<endl<<"Jumlah Deret Aritmatika suku ke-"<<n<<" adalah: "<<hasil<<endl;
;}
else if (x==3)
{
input();
tampilbarisg (a,b,n);
hasil=cariSng();
cout<<endl<<"Suku Barisan Geometri ke-"<<n<<" adalah: "<<hasil<<endl;
;}
else if (x==4)
{
input();
tampilbarisg (a,b,n);
hasil=cariDng();
cout<<endl<<"Jumlah Deret Geometri suku ke-"<<n<<" adalah: "<<hasil<<endl;
;}
else
{
cout<<"Maaf, masukan anda salah";
}
}
int input () //memasukkan inputan data ~arifin
{
cout<<"Masukkan suku pertama : ";cin>>a;
cout<<"Masukkan beda/ rasio : ";cin>>b;
cout<<"Masukkan nilai n : ";cin>>n;
}
int cariSng() //fungsi untuk mencari suku ke-n ~arifin
{
int Sng,m;
m=pangkat(b,n);
Sng=a*m;
return (Sng);
}
int cariSn() //fungsi untuk mencari suku ke-n ~arifin
{
int Sn;
Sn=a+((n-1)*b);
return (Sn);
}
float cariDn() //fungsi untuk mencari Jumlah Deret suku ke -n ~arifin
{
int Dn;
Sn=cariSn();
Dn=(n/2)*(a+Sn);
return (Dn);
}
float cariDng() //fungsi untuk mencari Jumlah Deret suku ke -n ~arifin
{
int Dng,m;
m=pangkat(b,n)*b;
Dng=a*(1-m)/(1-b);
return (Dng);
}
int pangkat (int x,int y) //menampilkan perulangan for untuk mencari nilai pangkat
{
int z=1,i;
for(i=1;i<y;i++)
{
z=z*x;
}
return (z);
}
int tampilbaris (int x, int y, int z) //menampilkan barisan Aritmatika
{
int i;
cout<<endl;
for (i=1;i<=z;i++)
{
cout<<"suku ke-"<<i<<" adalah: "<<x<<endl;
x=x+y;
}
return (x);
}
int tampilbarisg (int x, int y, int z) //menampilkan barisan geometri
{
int i;
cout<<endl;
for (i=1;i<=z;i++)
{
cout<<"suku ke-"<<i<<" adalah: "<<x<<endl;
x=x*y;
}
return (x);
}