KASUS 6.6
Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan palindrom atau tidak.
Program Dev C++:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
class Palindrom { friend ostream& operator<<(ostream&, Palindrom&); friend istream& operator>>(istream&, Palindrom&); public: int cek_palindrom(); private: char *s; }; ostream& operator<<(ostream& out, Palindrom& a) { if (a.cek_palindrom()) cout << a.s << " adalah palindrom"; else out << a.s << " bukan palindrom"; return out; }; istream& operator>>(istream& in, Palindrom& a) { cout << "Masukkan sebuah kalimat : "; cin >> a.s; return in;
};
int Palindrom::cek_palindrom()
{ int i, pj;
pj = strlen(s);
for (i=0; i<=pj/2 ;i++)
if (s[i] != s[pj-i-1]) return 0;
return 1;
}
main() {
Palindrom kata;
cin >> kata;
cout << kata;
getch(); return 0;
}
Program Dev C++:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
class Palindrom { friend ostream& operator<<(ostream&, Palindrom&); friend istream& operator>>(istream&, Palindrom&); public: int cek_palindrom(); private: char *s; }; ostream& operator<<(ostream& out, Palindrom& a) { if (a.cek_palindrom()) cout << a.s << " adalah palindrom"; else out << a.s << " bukan palindrom"; return out; }; istream& operator>>(istream& in, Palindrom& a) { cout << "Masukkan sebuah kalimat : "; cin >> a.s; return in;
};
int Palindrom::cek_palindrom()
{ int i, pj;
pj = strlen(s);
for (i=0; i<=pj/2 ;i++)
if (s[i] != s[pj-i-1]) return 0;
return 1;
}
main() {
Palindrom kata;
cin >> kata;
cout << kata;
getch(); return 0;
}
KASUS 6.5
Tentukan modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).
Program Dev C++:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik { friend ostream& operator<<(ostream&, HitungStatistik&); friend istream& operator>>(istream&, HitungStatistik&);
public: HitungStatistik(); void hitung_modus();
private: void maksimum(); void frekuensi(); int maks, item; int n; int A[20]; int f[11];
};
HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }
istream& operator>>(istream& in, HitungStatistik& a) { cout << "Banyaknya data : "; cin >> a.n; for (int i = 0; i < a.n; i++) { cout << "Data ke- : " << i+1 << " > "; cin >> a.A[i]; }
return in;
}
void HitungStatistik::maksimum()
{ maks = f[0]; item = 1; for (int i=0; i<n; i++) if (f[i] > maks) { maks = f[i]; item = i; } cout << "Modus = " << item;
}
void HitungStatistik::frekuensi()
{ for (int i=1; i<n; i++) ++f[A[i]];
}
void HitungStatistik::hitung_modus() { cout << "Frekuensi running\n"; frekuensi(); maksimum();
}
ostream& operator<<(ostream& out, HitungStatistik& a) { cout << "Mulai ...\n"; a.hitung_modus(); cout << "Nilai modus : " << a.item<endl; return out;
}
main() { HitungStatistik run; cin >> run; cout << run<<endl; system("pause"); return 0;
}
Program Dev C++:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik { friend ostream& operator<<(ostream&, HitungStatistik&); friend istream& operator>>(istream&, HitungStatistik&);
public: HitungStatistik(); void hitung_modus();
private: void maksimum(); void frekuensi(); int maks, item; int n; int A[20]; int f[11];
};
HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }
istream& operator>>(istream& in, HitungStatistik& a) { cout << "Banyaknya data : "; cin >> a.n; for (int i = 0; i < a.n; i++) { cout << "Data ke- : " << i+1 << " > "; cin >> a.A[i]; }
return in;
}
void HitungStatistik::maksimum()
{ maks = f[0]; item = 1; for (int i=0; i<n; i++) if (f[i] > maks) { maks = f[i]; item = i; } cout << "Modus = " << item;
}
void HitungStatistik::frekuensi()
{ for (int i=1; i<n; i++) ++f[A[i]];
}
void HitungStatistik::hitung_modus() { cout << "Frekuensi running\n"; frekuensi(); maksimum();
}
ostream& operator<<(ostream& out, HitungStatistik& a) { cout << "Mulai ...\n"; a.hitung_modus(); cout << "Nilai modus : " << a.item<endl; return out;
}
main() { HitungStatistik run; cin >> run; cout << run<<endl; system("pause"); return 0;
}
KASUS 6.4
Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari
Program Dev C++:
#include <iostream>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungStatistik { friend ostream& operator<<(ostream&, HitungStatistik&); friend istream& operator>>(istream&, HitungStatistik&); public: void maks_min(); private: int m1, m2; // m1 untuk maksimum, m2 untuk min int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
in >> a.A[i];
}
return in;
}
void HitungStatistik::maks_min()
{ m1 = m2 = A[0];
for (int i=1; i<n; i++)
{
if (A[i] > m1) m1 = A[i];
if (A[i] < m2) m2 = A[i];
}
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
a.maks_min();
out << "Nilai terbesar : " << a.m1 << endl;
out << "Nilai terkecil : " << a.m2;
return out;
}
main() {
HitungStatistik run;
cin >> run; return 0;
}
Program Dev C++:
#include <iostream>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungStatistik { friend ostream& operator<<(ostream&, HitungStatistik&); friend istream& operator>>(istream&, HitungStatistik&); public: void maks_min(); private: int m1, m2; // m1 untuk maksimum, m2 untuk min int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
in >> a.A[i];
}
return in;
}
void HitungStatistik::maks_min()
{ m1 = m2 = A[0];
for (int i=1; i<n; i++)
{
if (A[i] > m1) m1 = A[i];
if (A[i] < m2) m2 = A[i];
}
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
a.maks_min();
out << "Nilai terbesar : " << a.m1 << endl;
out << "Nilai terkecil : " << a.m2;
return out;
}
main() {
HitungStatistik run;
cin >> run; return 0;
}
KASUS 6.3
Buatlah algoritma untuk menentukan nilai maksimum dari n bilangan.
Program Dev C++:
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
int maksimum();
private:
int maksimum2(int, int);
int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
in >> a.A[i];
}
return in;
}
int HitungStatistik::maksimum2(int a, int b)
{ if (a>b) return(a);
else return(b);
}
int HitungStatistik::maksimum()
{ int temp = A[0];
for (int i = 1; i<n; i++)
temp = maksimum2(temp, A[i]);
return(temp);
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
out << "Nilai terbesar: " << a.maksimum();
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}
Program Dev C++:
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
int maksimum();
private:
int maksimum2(int, int);
int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
in >> a.A[i];
}
return in;
}
int HitungStatistik::maksimum2(int a, int b)
{ if (a>b) return(a);
else return(b);
}
int HitungStatistik::maksimum()
{ int temp = A[0];
for (int i = 1; i<n; i++)
temp = maksimum2(temp, A[i]);
return(temp);
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
out << "Nilai terbesar: " << a.maksimum();
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}
KASUS 6.2
Carilah nilai deviasi standar dari n buah data.
Program Dev C++:
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik{
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
float rata();
float STD();
long sqr(int n) { return(n*n);}
int n;
int A[20];
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout<<"Banyaknya data : ";
cin>>a.n;
for (int i = 0; i < a.n; i++)
{
cout<<"Masukan data ke- :"<<i+1<<">";
cin>>a.A[i]; } return in;
}
float HitungStatistik::rata()
{
float total=0;
for (int i = 0; i<n; i++) total = total + A[i];
return(total/n);
}
float HitungStatistik::STD ()
{ float rerata = rata();
float jumlah=0.0;
for (int i = 0; i<n; i++)
jumlah = jumlah + sqr(A[i] - rerata);
return(sqrt (jumlah/(n-1)));
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Rata-rata dari " << a.n
<< " bilangan adalah : " << a.rata() << endl;
cout << "Standar deviasi= " << a.STD();
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run<<endl;
return 0;
}
KASUS 6.1
Carilah rata-rata dari n bilangan bulat dengan menggunakan array
Program Dev C++:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungRata{
friend ostream& operator<<(ostream&, HitungRata&);
friend istream& operator>>(istream&, HitungRata&);
public:
float rata();
private:
int n;
int A[20];
};
istream& operator>>(istream& in,HitungRata& a){
cout<<"Banyaknya data : ";
in>>a.n;
for(int i=0;i<a.n;i++){
cout<<"Masukkan data ke-: "<<i+1<<">";
in>>a.A[i];
}
return in;
}
float HitungRata::rata(){
float total=0;
for(int i=0;i<n;i++)total=total+A[i];
return(total/n);
}
ostream& operator<<(ostream& out,HitungRata& a){
out<<"Rata-rata dari "<<a.n<<" bilangan adalah : "<<a.rata()<<endl;
return out;
}
main()
{
HitungRata run;
cin>>run;
cout<<run;
return 0 ;
}
Program Dev C++:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungRata{
friend ostream& operator<<(ostream&, HitungRata&);
friend istream& operator>>(istream&, HitungRata&);
public:
float rata();
private:
int n;
int A[20];
};
istream& operator>>(istream& in,HitungRata& a){
cout<<"Banyaknya data : ";
in>>a.n;
for(int i=0;i<a.n;i++){
cout<<"Masukkan data ke-: "<<i+1<<">";
in>>a.A[i];
}
return in;
}
float HitungRata::rata(){
float total=0;
for(int i=0;i<n;i++)total=total+A[i];
return(total/n);
}
ostream& operator<<(ostream& out,HitungRata& a){
out<<"Rata-rata dari "<<a.n<<" bilangan adalah : "<<a.rata()<<endl;
return out;
}
main()
{
HitungRata run;
cin>>run;
cout<<run;
return 0 ;
}
PROBLEM SOLVING 538
MASALAH
Membentuk string yang berisi huruf kapital semua yang ditemukan dalam string lain.
ANALISIS
Sama seperti dalam masalah menghitung kejadian dari huruf tertentu dalam sebuah string, rekursi akan memungkinkan kita untuk memecahkan masalah ini dengan hanya bekerja apa yang harus dilakukan dengan
huruf pertama string dan kemudian menggabungkan pengolahan ini dengan penanganan panggilan rekursif
sisa string. Misalnya, jika string tersebut adalah "Franklin Delano
Roosevelt ", menemukan huruf di" franklin Delano Roosevelt "akan memberi kita
string "DR". Ini adalah masalah sederhana untuk menggabungkan string ini dengan modal 'F' untuk membentuk
hasil penuh. Tentu saja, string sederhana di mana untuk mencari sesuatu adalah kosong
string, jadi memeriksa kasus sederhana ini memberikan kita kondisi terminating diperlukan
algoritma
1. jika str adalah string kosong
2. Toko string kosong di topi (string tanpa huruf tidak memiliki ibukota).
lain
3. jika huruf awal dari str adalah huruf kapital
4. Simpan dalam topi surat ini dan huruf kapital dari sisa str.
lain
5. Simpan dalam topi huruf kapital dari sisa str.
1. jika str adalah string kosong
2. Toko string kosong di topi (string tanpa huruf tidak memiliki ibukota).
lain
3. jika huruf awal dari str adalah huruf kapital
4. Simpan dalam topi surat ini dan huruf kapital dari sisa str.
lain
5. Simpan dalam topi huruf kapital dari sisa str.
Dev C++:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
int i,jum;
char string[100];
cout<<"Masukan sembarang kalimat:\n";
cin.getline(string,100); //membaca spasi
//mengubah huruf awal menjadi huruf kapital
if((string[0]>='a')&& (string[0]<='z'))
string[0]=(char)string[0]-32;
//mengubah huruf setelah huruf awal menjadi huruf kecil
jum=1;int d=0;
for(i=0;i<(int)strlen(string);i++)
{
if(i%2==0){
if((string[jum]>='A')&& (string[jum]<='Z'))
string[jum]=(char)string[jum]+32;
jum++;}
}
//mengubah huruf setelah spasi menjadi huruf kapital
for(i=1;string[i]!='\0';i++)
{
if(string[i]==' ') d++;
if((i-1-d)%2==0)
{
if(string[i+1]>='a' && string[i+1]<='z')
string[i+1]=(char)(string[i+1]-32);
}
}
cout<<"Hasil Akhir : "<<string<<endl;
getch();
}
Gambar di Aplikasi Dev C++:

Tidak ada komentar:
Posting Komentar