Soal. Buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi algoritma?
Jawab :
Ya, diperlukan modifikasi algoritma.
Hasil revisi algoritma :
Algoritma menentukan_hari
{masukkan integer 1 sampai 7, akan ditentukan hari apa yang sesuai}
Deskripsi
hari_ke : integer
hari : string
Deskripsi
read (hari_ke)
Pilih (hari_ke)
1 : hari ← 'Senin'
2 : hari ← 'Selasa'
3 : hari ← 'Rabu'
4 : hari ← 'Kamis'
5 : hari ← 'Jumat'
6 : hari ← 'Sabtu'
else hari ← 'Minggu'
end {Pilih}
write (hari)
Flowchart
Program C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main(){
int hari_ke;
char hari;
printf("masukkan hari ke-");
scanf("%d", &hari_ke);
printf("hari ke-%d", hari_ke);
printf(" adalah%c", hari);
switch (hari_ke) {
case 1: hari=printf("senin"); break;
case 2: hari=printf("selasa"); break;
case 3: hari=printf("rabu"); break;
case 4: hari=printf("kamis"); break;
case 5: hari=printf("jumat"); break;
case 6: hari=printf("sabtu"); break;
default: hari=printf("minggu"); break;
}
return 0;
}
Output :
Soal. Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan kombinasi n buah bola yang diambil r bola
Jawab :
Algoritma permutasi_kombinasi
{memasukkan jumlah bola dan jari-jari, lalu dihitung nilai permutasi dan kombinasinya}
Deklarasi
j, i, permutasi, k, kombinasi, r, n, fact, fact2, fact3 : integer
Deskripsi
read (r, n)
fact ← 1
fact2 ← 1
fact3 ← 1
for i ← n downto i ← 1 do
fact *= i
end for
for j ← (n-r) downto j ← 1 do
fact2 *= j
end for
permutasi ← fact/fact2
write (permutasi)
for k ← r downto k ← 1 do
fact3 *= k
end for
kombinasi ← permutasi/fact3
write (kombinasi)
Program C++
#include <iostream>
using namespace std;
class hitung{
friend ostream& operator<<(ostream&, const hitung&);
friend istream& operator>>(istream&, hitung&);
public :
int j, i, permutasi, k, kombinasi, r, n;
int hitung1(){
for(i=n; i>=1; i--){
fact*=i;
}
for(j=n-r; j>=1; j--){
fact2*=j;
}
permutasi=fact/fact2;
cout<<permutasi;
}
int hitung2(){
for(k=r; k>=1; k--){
fact3*=k;
}
kombinasi=permutasi/fact3;
cout<<kombinasi;
}
private :
int fact=1;
int fact2=1;
int fact3=1;
};
istream& operator>>(istream& in, hitung& input){
cout<<"masukkan jumlah bola : ";
in>>input.n;
cout<<"masukkan jari-jari bola : ";
in>>input.r;
return in;
}
ostream& operator << (ostream& out, hitung& hasil){
cout<<"hasil permutasinya adalah ";
hasil.hitung1();
cout<<endl;
cout<<"hasil kombinasinya adalah ";
hasil.hitung2();
return out;
}
int main(){
hitung x;
cin>>x;
cout<<x;
return 0;
}
Output :
Commentaires