Sabtu, 19 Maret 2011

Tugas 3 Algoritma dan Pemograman


·         1. Algoritma untuk mencari titik tengah sebuah garis yang ujung titiknya adalah A(x1,y1) dan B(x2,y2)
(mencari titik tengah sebuah garis, algoritma menerima masukan nilai dari titik A(x1,y1) dan B(x2,y2),  lalu cari koordinat titik tengah XT = (x1 + x2)/2 dan YT = (y1+y2)/2)

Deklarasi
A(x1,y1), B(x2,y2)    : interger ( input )
Titik tengah            : interger ( output )
Deskripsi
Read (A,B)
Titik tengah ( XT,YT )
Write (titik tengah)
Mencari titik tengah dari titik A(x1,y1) dan B(x2,y2)

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

class mencari {
friend istream& operator >> (istream&, mencari&);
friend ostream& operator << (ostream&, const mencari&);

public:
mencari();
void hitung(){
     a =(x1+x2)/2;
     b =(y1+y2)/2;
};
private:
    int x1,y1,x2,y2;
    float a,b;
};

mencari::mencari(){
cout << "mencari titik tengah dengan titik A(x1,y1) dan B(x2,y2)\n" << endl;
}
istream& operator >>(istream& cin, mencari& masukan){
   cout << "Nilai titik A " <<endl;
   cout << "Masukkan nilai x1 : ";   cin >> masukan.x1;
   cout << "Masukkan nilai y1 : ";   cin >> masukan.y1;
   cout << "Nilai titik B " <<endl;
   cout << "Masukkan nilai x2 : ";   cin >> masukan.x2;
   cout << "Masukkan nilai y2 : ";   cin >> masukan.y2;
   cout<<endl;

return cin;
}
ostream& operator << (ostream& out, const mencari& keluaran)
{
  out<< "titik tengah tersebut adalah : " <<endl;
  out<< "\t" << "(XT,YT)" <<endl;
  out<< "\t" << "(" << keluaran.a << "," << keluaran.b << ")" <<endl;

return out;
}
void main(){
mencari titik;
cin>>titik;
titik.hitung();
cout<<titik;

getch();
}

·         2. Algoritma untuk memisahkan bilangan integer yang kurang dari 1000 menjadi komponen-komponennya
(memisahkan bilangan integer, algoritma menerima masukan bilangan yang kurang dari 1000, lalu menghasilkan keluaran dengan memecah bilangan menjadi komponen-komponennya. Misal : 645 = 6 ratusan + 4 puluhan + 5 satuan)

Deklarasi
3 digit bilangan        : interger ( input )
Hasil                   : interger ( output )
Deskripsi
Read ( 3 digit bilangan )
Hasil ( komponen bilangan )
Write (hasil)
 
Program untuk Memisahkan bilangan integer yang kurang dari 1000 menjadi kpomponen-komponennya

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

class memisahkan{
friend istream& operator >> (istream&, memisahkan&);
friend ostream& operator << (ostream&, const memisahkan&);

public:
memisahkan();
void hitung(){
     a=x%1000;
     b=a/100;
     c=a%100;
     d=c/10;
     e=c%10;};

private:
int a,b,c,d,e,x;
};

memisahkan::memisahkan(){
cout << "memisahkan bilangan integer yang kurang dari 1000\n" << endl;
}

istream& operator >>(istream& cin, memisahkan& masukan){
     cout<<"input bilangan tiga digit : ";
     cin>>masukan.x;
     cout<<endl;
return cin;
}

ostream& operator << (ostream& out, const memisahkan& keluaran)
{
out<<"jadi komponennya : "<<keluaran.b<<" ratusan "<<"+\t"<<keluaran.d<<" puluhan "<<"+ "<<keluaran.e<<" satuan "<<endl;

out<< "sekian dan terima kasih... \n"<< endl;

return out;
}

void main(){
memisahkan bilangan;
cin>>bilangan;
bilangan.hitung();
cout<<bilangan;

getch();
}


·         3. Algoritma untuk menghitung determinan matriks berordo 2 x 2
(menghitung determinan matriks, algoritma menerima masukan 4 bilangan 2 bilangan per baris, lalu mencari determinan matriks yaitu det (B) = (a.d)-(b.c))

Deklarasi
a,b,c,d                : interger ( input )
Determinan             : interger ( output )
Deskripsi
Read ( a,b,c,d )
Determinan (a*d – b*c )
Write (determinan)
Program untuk Menghitung determinan matriks berordo 2 x 2

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

void masuk(int a[][2]);
void keluar(const int a[][2]);

int main()
{
   int a[2][2];
   int b;
   masuk(a);
   keluar(a);
   b=a[0][0]*a[1][1]-a[0][1]*a[1][0];

   cout<<"determinan dari matriks yang berordo 2x2 adalah = ";
   cout<<b;
   getch();
   return 0;
}

void masuk(int a[][2])
{
   cout<<"masukkan 4 bilangan 2 bilangan per baris : "<<endl;
   for(int i=0;i<2;i++){
      cout<<"baris "<<i<<" : ";
   for(int j=0;j<2;j++)
      cin>>a[i][j];
   }
}

void keluar(const int a[][2])
{
   cout<<"matriks yang di buat adalah "<<endl;
   for(int i=0;i<2;i++){
      for(int j=0;j<2;j++)
         cout<<" "<<a[i][j];
           cout<<endl;
   }
}

Nama : Indri Fitri Yadini
NIM  : 10018023
Kelas: B



1 komentar:

zagrez mengatakan...

yang matriksnya ada ga??pointer,algorima rekursif,pencarian secuencial,dan algo pengurutan metode counting sort?lg btuh ne..thanks

Posting Komentar

Template by:

Free Blog Templates