Latihan Bab 5
Soal 1
cetaklah bilangan 1 sampai dengan 4 menggunakan downto.
#include<iostream>
using namespace std;
class Hitung {
friend ostream& operator<<(ostream&, Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
void proses();
};
void Hitung::proses(){
for(int i=-1; i>=-4; i--){
cout<<i*(-1)<<" ";
}
}
ostream& operator<<(ostream& print, Hitung& objek){
objek.proses();
}
int main(){
Hitung x;
cout<<x;
}
Soal 2
buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi algoritma ?
#include<iostream>
using namespace std;
class Hitung {
friend ostream& operator<<(ostream&, Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
void proses();
private:
float jumlah, selisih, i;
};
void Hitung::proses(){
jumlah = 0;
i = 1;
do{
jumlah = jumlah + (1/i);
i = i + 1;
selisih = (1/(i-1)) - (1/i);
} while(selisih >= 0.001);
}
ostream& operator<<(ostream& print, Hitung& objek){
objek.proses();
print<<"Nilai total = "<<objek.jumlah<<endl;
print<<"Selisih 2 suku terakhir = "<<(1/((objek.i)-2)) - (1/((objek.i)-1))<<endl;
print<<"n terakhir = "<<objek.i-1;
}
int main(){
Hitung x;
cout<<x;
return 0;
}
Soal 3
Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5 antara 1 sampai dengan 100.
#include<iostream>
using namespace std;
class Hitung {
friend ostream& operator<<(ostream&, Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
void proses();
};
void Hitung::proses(){
for(int i=1; i<=100; i++){
if(i%3==0 && i%5==0){
cout<<i<<" ";
}
}
}
ostream& operator<<(ostream& print, Hitung& objek){
objek.proses();
}
int main(){
Hitung x;
cout<<x;
}
Soal 4
Hitunglah nilai dari :
1 - 1/2 + 1/3 - 1/4 + ... + 1/n
#include<iostream>
using namespace std;
class Hitung {
friend ostream& operator<<(ostream&, const Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
void proses();
private:
int n;
float total;
};
void Hitung::proses(){
total = 0;
for(int i=1; i<=n; i++){
if(i%2==0){
total = total - (1/(float)i);
} else{
total = total + (1/(float)i);
}
}
}
istream& operator>>(istream& input, Hitung& objek){
cout<<"Masukkan n: "; input>>objek.n;
objek.proses();
}
ostream& operator<<(ostream& print, const Hitung& objek){
print<<"Nilai total = "<<objek.total;
}
int main(){
Hitung x;
cin>>x;
cout<<x;
}
Soal 5
Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan kombinasi n
buah bola yang diambil r bola.
#include<iostream>
using namespace std;
class Hitung {
friend ostream& operator<<(ostream&, const Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
int n, r;
float p, c;
int faktorial(int x);
void proses();
private:
int hasil;
};
int Hitung::faktorial(int x){
hasil = 1;
for(int i=x; i>=1; i--){
hasil = hasil * i;
}
return hasil;
}
void Hitung::proses(){
p = faktorial(n)/(float) faktorial(n-r);
c = faktorial(n)/(float) (faktorial(r) * faktorial(n-r));
}
istream& operator>>(istream& input, Hitung& objek){
cout<<"Masukkan n: "; input>>objek.n;
cout<<"Masukkan r: "; input>>objek.r;
objek.proses();
}
ostream& operator<<(ostream& print, Hitung& objek){
print<<"Permutasi = "<<objek.p<<endl;
print<<"Kombinasi = "<<objek.c;
}
int main(){
Hitung x;
cin>>x;
cout<<x;
}
Soal 6
Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan biner. Petunjuk : Gunakan operator mod dan div !
#include<iostream>
using namespace std;
class Konversi {
friend ostream& operator<<(ostream&, const Konversi&);
friend istream& operator>>(istream&, Konversi&);
public:
void desimalKeBiner();
string reverse(string target);
string biner;
private:
int hasilBagi, desimal;
float sisa;
};
void Konversi::desimalKeBiner(){
do{
hasilBagi = desimal / 2;
sisa = desimal % 2;
desimal = hasilBagi;
if(sisa == 0){
biner = biner + "0";
} else{
biner = biner + "1";
}
}while(hasilBagi > 0);
biner = reverse(biner);
}
string Konversi::reverse(string target){
string reversed;
for(int i=target.length()-1; i>=0; i--){
reversed = reversed + target[i];
}
return reversed;
}
istream& operator>>(istream& input, Konversi& objek){
cout<<"Masukkan bilangan desimal: "; input>>objek.desimal;
objek.desimalKeBiner();
}
ostream& operator<<(ostream& print, Konversi& objek){
print<<"Bilangan biner: "<<objek.biner;
}
int main(){
Konversi x;
cin>>x;
cout<<x;
}
Soal 7
Buatlah algoritma, flowchart dan program untuk menampilkan permutasi dari 3 huruf.
Misalnya diberikan : abc
output :
abc
bca
bac, dan seterusnya
#include<iostream>
using namespace std;
class Ubah {
friend ostream& operator<<(ostream&, Ubah&);
friend istream& operator>>(istream&, Ubah&);
public:
void ubahUrutanHuruf();
string huruf;
private:
int j, batas;
char penampung;
};
void Ubah::ubahUrutanHuruf(){
batas = 1;
for(int i=1; i<=3; i++){
j = 0;
while(j<2 && batas<6){
penampung = huruf[j];
huruf[j] = huruf[j+1];
huruf[j+1] = penampung;
cout<<huruf<<endl;
j++;
batas++;
}
}
}
istream& operator>>(istream& input, Ubah& objek){
cout<<"Masukkan 3 huruf berbeda: "; input>>objek.huruf;
}
ostream& operator<<(ostream& print, Ubah& objek){
print<<objek.huruf<<endl;
objek.ubahUrutanHuruf();
}
int main(){
Ubah x;
cin>>x;
cout<<x;
}















Komentar
Posting Komentar