Minggu, 20 Maret 2011

mencari titik tengah sebuah garis,untuk memisahkan bilangan integer yang kurang dari 1000 dan untuk menghitung determinan matriks berordo 2x2

1. Algoritma dan program untuk mencari titik tengah sebuah garis yang ujung titiknya    
   adalah   A(x1,y1) dan B(x2,y2).  
    
   Algoritma :
   Deklarasi :
    x1, x2, y1, y2, xt, yt : integer
   Deklaration :
    Read:    Input X1, X2, Y1, X2
        Xt <= (X1 +  X2 )/2
        Yt <= (Y1 +  Y2 )/2
    Write :     (Xt, Yt)
 
    Source code :

   #include <cstdlib>
   #include<iostream>


    using namespace std;
    void Titik_Tengah()
     {
     int x1, x2, xt,y1,y2,yt;

     cout<<"masukkan x1 = ";
     cin>>x1;
     cout<<"masukkan x2  = ";
     cin>>x2;
     cout<<"masukkan y1 = ";
    cin>>y1;
     cout<<"masukkan y2 = ";
      cin>>y2;
    cout<<endl;
    xt=(x1+x2)/2;
    yt=(y1+y2)/2;
    cout<<"Nilai Titik Tengahnya adalah = (" <<xt<<","<<yt<<") "<<endl;
     cout<<endl;
     }

      void Nilai_Integer()
      {
    int x,y,z,x1,y1,z1;

     cout<<endl;
      x1=x/100;
      y=x%100;
      y1=y/10;
      z=y%10;
       z1=z/1;
     cout<<endl;

       }

      int main ()
      {
     Titik_Tengah();
     Nilai_Integer();

      system("PAUSE");
       return EXIT_SUCCESS;
      }

2. Algoritma dan program untuk memisahkan bilangan integer yang kurang dari 1000        
    menjadi komponen- komponennya

      Algoritma :

     Deskripsi :
       Satua, puluhan, ratusan ribuan : integer
       Deklarasi :
       Read :    Input x (kurang dari 1000)
        x1<=  x/100
        y <= x mod 100
        y1 <= y/10
        z <= y mod 10
        z1 <= z/1
        x1 <= ratusan
        y1<= puluhan
        z1<= satuan
        Write :    (x1, y1, z1)


      Source code :

    #include <cstdlib>
     #include <iostream>

     using namespace std;
     class konversi{
      friend istream& operator>>(istream&, konversi&);
    public:
    konversi(unsigned int b=0){bilangan=b;}
    void membilang1();
    void membilang2();
    void membilang3();
    void membilang4();
    void membilang5();
    void membilang6();
    void membilang7();
    void konversikan();
    private:
    unsigned int bilangan;
     };

     istream& operator>>(istream& in, konversi& x){
    cout <<"masukkan bilangan : ";
    in>>x.bilangan;
    return in;
     }
    void konversi::konversikan(){
    if(bilangan<=11 || bilangan==100)membilang1();
    else if(bilangan>19 && bilangan<=99)membilang3();
    else if (bilangan>100 && bilangan<=999)membilang4();
    else membilang2();
     }
     void konversi::membilang3(){
    int satuan;
    if(bilangan>19){
        satuan=bilangan%10;
        bilangan=bilangan/10;
        konversikan();
        cout<<"puluh ";
        if (satuan!=0) {
        bilangan=satuan;
        konversikan();}
       }
     }
    void konversi::membilang1(){
    switch(bilangan){
    case 0:cout<<"nol "; break;
    case 1:cout<<"satu "; break;
    case 2:cout<<"dua "; break;
    case 3:cout<<"tiga "; break;
    case 4:cout<<"empat "; break;
    case 5:cout<<"lima "; break;
    case 6:cout<<"enam "; break;
    case 7:cout<<"tujuh "; break;
    case 8:cout<<"delapan "; break;
    case 9:cout<<"sembilan "; break;
    case 10:cout<<"sepuluh "; break;
    case 11:cout<<"sebelas "; break;
    case 100:cout<<"seratus "; break;
    default : cout<<"diluar range ";
    }
   }
   void konversi::membilang2(){
    int temp;
    if(bilangan>11 && bilangan<20){
        bilangan%=10;
        membilang1();
        cout<<"belas ";
    }
    else
        membilang1();
   }
  void konversi::membilang4(){
    int puluhan;
    puluhan=bilangan%100;
    if(bilangan>100 && bilangan<200){
        cout <<"seratus ";
    }
    else {
        bilangan=bilangan/100;
        konversikan();
        cout<<"ratus ";}
        bilangan=puluhan;
        konversikan();
  
    }
    void konversi::membilang5(){
    int ratusan;
    ratusan=bilangan%1000;
    if(bilangan>1000 && bilangan<2000){
        cout <<"seribu ";
    }
    else {
        bilangan=bilangan/1000;
        konversikan();
        cout<<"ribu ";}
        bilangan=ratusan;
        konversikan();
  
   }
    void konversi::membilang6(){
    int ribuan;
    ribuan=bilangan%10000;
    if(bilangan>10000 && bilangan<20000){
        cout <<"puluhan ribu ";
    }
    else {
        bilangan=bilangan/10000;
        konversikan();
        cout<<"puluhan ribu ";}
        bilangan=ribuan;
        konversikan();
  
}
void konversi::membilang7(){
    int puluhan_ribu;
    puluhan_ribu=bilangan%100000;
    if(bilangan>100000 && bilangan<200000){
        cout <<"seratus ribu ";
    }
    else {
        bilangan=bilangan/100000;
        konversikan();
        cout<<"ratusan ribu ";}
        bilangan=puluhan_ribu;
        konversikan();
  
}


int main(){
    konversi a;
    cin>>a;
    a.konversikan();
cout<<endl;
   system("PAUSE");
    return EXIT_SUCCESS;
}
 
3.  program untuk menghitung determinan matriks berordo 2x2

    Source code


     #include <iostream.h>
     #include <conio.h>

class ordo{
private :
int i,j,matrik[10][10];
float hasilbagi,det,a,b,c,d;
friend ostream& operator<<(ostream&, const ordo&);
friend istream& operator>>(istream&, ordo&);
public :
void determinan(){
det=(matrik[0][0] * matrik[1][1]) – (matrik[1][0] * matrik[0][1]);
cout<<”\nmaka determinannya adalah = “;
cout<<det<<endl;
}
void invers(){
hasilbagi = 1/det;
a = hasilbagi * matrik[1][1];
b= hasilbagi * -matrik[0][1];
c = hasilbagi * -matrik[1][0];
d = hasilbagi * matrik[0][0];

cout<<”matrik invers \n\n=”<<”1/”<<det<<” x ["<<matrik[1][1]<<” “<<-matrik[0][1]<<”]”;
cout<<”\n         ["<<-matrik[1][0]<<” “<<matrik[0][0]<<”]”;
cout<<”\n\n jadi matrik inversnya adalah = \n”;
cout<<”["<<a<<" "<<b<<"]“<<endl;
cout<<”["<<c<<" "<<d<<"]“;
}
};

istream& operator>>(istream& in, ordo& A){
cout<<”invers matrik 2×2?<<endl;
for(A.i=0;A.i<=1;A.i++){
for(A.j=0;A.j<=1;A.j++){
cout<<”matrik ["<<A.i<<"]["<<A.j<<"] =”; cin>>A.matrik[i][j]; }}
return in;
}

ostream& operator<<(ostream& out ordo& B){
for(B.i=0;B.i<=1;B.i++){
for(B.j=0;B.j<=1;B.j++){
cout<<B.matrik[i][j]<<” “; }
cout<<endl;
}
return out;
}

void main(){
ordo x;

cin>>x;
cout<<x;
x.determinan();
x.invers();
}
 

Tidak ada komentar:

Posting Komentar