Breaking News
Loading...
Jumat, 08 April 2016

Bab 5b

DIKTAT BAB 5

Halaman 120.
1. Buatlah fungsi fibonacci dengan cara iteratif.

Dev C++

source code :

#include <iostream>
using namespace std;
int iteratif (int suku, int a, int b, int c)
{
a=0, b=1;
  
if (suku == 1) return b;
if (suku == 0) return a;
else{
for(int i=2; i<=suku; i++){ 
c = a + b; 
a = b;
b = c;
}
return c; 
}
}
int main() 
{
int suku, a, b,c;
cout<<"Masukkan nilai suku ke-: ";
cin>>suku;
cout<<"\nBilangan fibonaccinya untuk "<<suku<<" adalah ";
cout<< iteratif ( suku,  a,  b,  c);
return 0;
}
outputnya :
2. Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain.
Dev C++

source code :

#include <iostream>
using namespace std;
int nextTerm(int n){
int firstTerm = 0, secondTerm = 1;
int nextTerm;
cout << "Fibonacci Series: " << firstTerm << " " << secondTerm << " ";
for (int i = 1; i <= n-2; ++i) {
        nextTerm = firstTerm + secondTerm;
        cout<<nextTerm << " ";
        firstTerm = secondTerm;
        secondTerm = nextTerm;
    }
}
int main() {
    int n;
    cout << "Enter number of terms: ";
    cin >> n;
    nextTerm(n);
    return 0;
}
outputnya :


3. Algoritma perkalian dengan cara penjumlahan pada algoritma 5.3. belum sempurna karena belum mencakup semua kemungkinan, misalnya untuk harga b negatif. Buatlah fungsi perkalian dengan cara penjumlahan dengan menyempurnakan algoritma 5.3. di atas.
Dev C++

source code :

#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<<"Menghitung Perkalian dengan Penjumlahan"<<endl;
    cout<<"Masukan Nilai pertama = ";cin>>a;
    cout<<"Masukan Nilai Kedua   = ";cin>>b;
    if (a>0 && a<0 || b>0){
    for(i=1;i<=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;
}
outputnya :


4. Buatlah algoritma rekursif dari algoritma 5.3.
Algoritma : algoritma rekrusif
(diberikan masukan a,b,i,jumlah)
Deklarasi :
 I,n,jumlah,x : integer
Deskripsi :
Read(n)
jumlah←0
for i←1 to n do
      read(x)
     jumlah←jumlah+x
endfor
rata←jumlah/n
write(rata)
5. Diberikan suatu bilangan bulat positif. Cetaklah bilangan bulat tersebut secara terbalik, secara 
iteratif maupun rekursif.
Dev C++

source code :
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class perulangan{
public:
perulangan(){int i=0;}
void balik_while(int);
void balik_iteratif(int);
void balik_rekursif(int);
};
void balik(char*s){
if(*s!='\0'){
balik(&s[1]);
cout<<s[0];
}
}
int main(int argc, char** argv) {
char*balik="balik bilangan";
int a,b;
cout<<"masukan iteratif maupun rekursif"<<endl;
cin>>a>>b;
cout<<b<<a;
return 0;
}
outputnya :


6. Buatlah suatu subprogram yang mengembalikan nilai maksimum pertama (misal m1) dan nilai maksimum kedua (misal m2, dan m1 􀁺 m2) dari array dengan n bilangan bulat.
Dev C++

source code :

#include <iostream>
using namespace std;
int main()
{
int max,n,i,min;
float A[100];
cout <<"Masukkan Jumlah Data : ";cin>>n;
for(i=0;i<n;i++){
cout << "masukkan bilangan ke "<< i+1 << " : ";
cin >> A[i];}
max = A[0];
for (i=1;i<n;i++){
if (max < A [i])
max = A[i];
}
cout <<"Nilai Terbesar adalah : "<<max<<endl;
return 0;
}
outputnya :


7. Algoritma 5.5 menggunakan fungsi untuk menghitung n faktorial secara rekursif. Buatlah algoritma menghitung n faktorial dengan menggunakan prosedur !

Algoritma 

Dimisalkan menginputkan angka 4 sebagai bilangan positif, maka perhitungan menjadi 4*3*2*1.
int n; merupakan inisialisasi variabel n dengan tipe data integer sebagai proses perhitungan.
int faktorial(int k); merupakan inisialisasi variabel dengan nama faktorial yang dimana digunakan
untuk melakukan perhitungan variabel yang akan dijadikan variabel dalam melakukan perhitungan secara rekursif.
printf("Masukkan sembarang bilangan positif"); adalah perintah awal untuk menginputkan bilangan positif yang akan diproses.
printf(\nMelalui perhitungan rekursif, %d!= %d\n",n,faktorial(m)); adalah perintah untuk mengeksekusi
fungsi angka faktorialdimana angka akan terus berulang selama nilai variabel k belum bernilai 0, namun

jika sudah benar (0) maka akan mengembalikan nilai k*faktorial(k-1);

Dev C++

source code :

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(void) {
int n;
int faktorial (int k);
printf("Masukkan sembarang bilangan positif : ");
scanf("%d",&n);
printf("\nMelalui perhitungan rekursif, %d! = %d\n",n,faktorial(n));
system("pause");
return 0;
}
int faktorial (int k){
if (k==0)
return 1;
else
return k*faktorial(k-1);
}
outputnya :


8. [Pengamatan : membayar barang belanja di kasir] Amatilah kejadian di mana seorang pembeli (yang membeli barang cukup banyak) pada sebuah took swalayan. Perhatikan apa yang dilakukan pembeli dan apa yang dilakukan oleh kasir ketika mengambil barang belanjaan untuk menghitung berapa harga keseluruhan yang harus dibayar pembeli. Laporkan konsep counter dan konsep total yang anda temukan pada kejadian tersebut.


Algoritma

Menggunakan tipe data integer, menginputkan kode barang, nama barang, harga barang,
jumlah barang, kemudian akan muncul total harga belanjanya, jika harga belanjanya
kurang dari sama dengan 5000 maka diskonnya 0, jika lebih dari sama dengan 100000
maka mendapatkan diskon,total yang harus dibayarkan adalah total belanja dikurangi diskon, jika

total yang harus dibayarkan 230000 dan uang yang dibayar kekasir 250000 maka kembaliannya adalah 20000.

Dev C++

source code :
#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) {
char nm_brg [50],lnjt='Y';
int diskon,Total_Belanja,bayar,kd_brg,jml_brg,hrg_brg,jml_uang,kembali;
do{
system("cls");
cout<<"Program kasir sederhana"<<endl;
cout<<"======================="<<endl;
cout<<"Masukkan kode barang : ";cin>>kd_brg;
cout<<"Masukkan nama barang : ";cin>>nm_brg;
cout<<"Masukkan harga barang : ";cin>>hrg_brg;
cout<<"Masukkan jumlah barang : ";cin>>jml_brg;
cout<<"========================="<<endl;
Total_Belanja=hrg_brg*jml_brg;
cout<<"Total : Rp."<<Total_Belanja<<endl;
cout<<"========================="<<endl;
if(Total_Belanja<=5000){
diskon=Total_Belanja*0;
}
else if(Total_Belanja>=100000){
diskon=Total_Belanja*10/100;
}
cout<<"Diskon : Rp."<<diskon<<endl;
bayar=Total_Belanja-diskon;
cout<<"Total bayar : Rp."<<bayar<<endl;
cout<<"========================"<<endl;
cout<<"Masukkan jumlah uang : Rp.";cin>>jml_uang;
cout<<"========================(-)"<<endl;
kembali=jml_uang-bayar;
cout<<"Kembali : Rp."<<kembali<<endl<<endl;
cout<<"Brang yang sudah dibeli tidak dapat ditukar atau dikembalikan"<<endl;
cout<<"Terimakasih atas kunjungan anda"<<endl<<endl;
cout<<"Ulangi lagi [Y/T] : ";cin>>lnjt;
cout<<endl<<endl;
}while(lnjt=='Y');
system("pause");
}
outputnya :


9. [Pengamatan : membayar barang belanja di kasir] Amatilah kejadian di mana seorang pembeli (yang membeli barang cukup banyak) pada sebuah took swalayan. Perhatikan apa yang dilakukan pembeli dan apa yang dilakukan oleh kasir ketika mengambil barang belanjaan untuk menghitung berapa harga keseluruhan yang harus dibayar pembeli. Laporkan konsep counter dan konsep total yang anda temukan pada kejadian tersebut.
a. masukan user diterima huruf demi huruf sampai diakhiri tanda akhir baris
(sentinel)
b. buat method untuk menghitung statistik :
i. huruf hidup (vokal)
ii. huruf mati (konsonan)
iii. banyak kata
iv. huruf terbanyak dalam kalimat.

c. buat method untuk mengubah huruf awal setiap kata menjadi huruf besar

Dev C++

source code :

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
class hayupermata{
private:
int i;
int vokal;
int konsonan;
int x;
char kalimat[20];
public:
hayupermata();
void input();
void proses();
void output();
};
hayupermata::hayupermata(){
cout<<"\t\tPEROGRAM MENGHITUNG HURUF KONSONAN DAN VOKAL\n";
cout<<"\t\t--------------------------------------------\n";
cout<<endl;
cout<<"Nama  : hayu permata"<<endl;
cout<<"Prodi :teknik informatika"<<endl;
cout<<endl<<endl;
}
void hayupermata::input(){
cout<<"::.silahkan masukkan kalimat.::\n";
cin.getline(kalimat,20);
}
void hayupermata::proses(){
i=0,vokal=0,konsonan=0;
x=strlen(kalimat);
for(i=0;i<x;i++)
{
if(kalimat[i]=='a'||kalimat[i]=='u'||kalimat[i]=='e'||kalimat[i]=='o')
vokal++;
konsonan++;
}
}
void hayupermata ::output(){
cout<<"Jumlah huruf vokal\t:"<<vokal<<"huruf"<<endl;
cout<<"Jumlah huruf konsonan\t"<<konsonan<<"huruf"<<endl;
}
int main()
{
hayupermata hp;
hp.input();
hp.proses();
hp.output();
return 0;
}
outputnya :


0 komentar:

Posting Komentar

Copyright © 2014 My Blog My Adventure All Right Reserved