Selasa, 29 Maret 2011

AKAR PERSAMAAN KUADRAT

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

using namespace std;

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

public:
       akar();
       int disk(){ return B*B-4*A*C;}
       float akar1(){ return(-B+sqrt(disk()))/(2*A);}
       float akar2(){ return(-B-sqrt(disk()))/(2*A);}
       void hitung_akar();
       void cetak_disk(){cout<<"DISKRIMINAN = "<<disk()<<endl;}
       void cetak_akar(){
            cout<<"x1="<<akar1()<<endl;
            cout<<"x2="<<akar2()<<endl;
            }
private:
        int A,B,C;
        float x1,x2;
        };
       
        ostream& operator<<(ostream& out,akar& keluaran){
                 keluaran.cetak_disk();
                 if(keluaran.disk()>=0)keluaran.cetak_akar();
                 else out<<"AKAR IMAJINER \n";
                 return out;
                 }
        istream& operator>>(istream& in,akar& masukan){
                 cout<<"KOEFISIEN PANGKAT 2 = ";in>>masukan.A;
                 cout<<"KOEFISIEN PANGKAT 1 = ";in>>masukan.B;
                 cout<<"KOEFISIEN PANGKAT 0 = ";in>>masukan.C;
                 return in;
                 }
                 akar::akar(){
                 cout<<"MENGHITUNG AKARA PERSAMAAN KUADRAT \n";
                 }
                 void akar::hitung_akar(){
                 if(A==0){
                 cout<<"BUKAN PERSAMAAN KUADRAT \n";
                 cout<<"HARGA AKAR = "<<-C/B;} else{
                  if(disk()>0){
                   x1=akar1();
                   x2=akar2();
                   } else if(disk()==0){
                          x1=akar1();
                          x2=x1;
                          }
                          }
                          }
                                                                               
int main(){
   
    akar masalah;
    cin>>masalah;
    masalah.hitung_akar();
    cout<<masalah;

    system("PAUSE");
    return EXIT_SUCCESS;
}




Tidak ada komentar:

Posting Komentar