C++ ile Diskriminant

2Algoritmalar dersinde hocamız yazılım olarak C++ kullanmakta.Ben daha önce C ile çalışmama rağmen C++ kullanmamıştım.Yine zor değil fakat nesneye yönelik programlama olduğunu unutmamak gerekir.Yapıyı oturtmak için basit bir 2.dereceden denklemin köklerini bulan bir yazılım hazırladım. Diskriminant yöntemi ile çözüm yapıyor ve oldukça basit.

main.cpp

#include <iostream>
#include "E_SOLVER.h"

using namespace std;

int main()
{
	Equation Eq = Equation();
    double a, b, c;

    while (1)
    {
        cout << "Quadratic Equation A(x^2)+B(x)+C = 0 \n\n";
        cout << "A : ";
        cin >> a;
        cout << "B : ";
        cin >> b;
        cout << "C : ";
        cin >> c;

        if (Eq.Solve(a, b, c) == -1)
        {
            cout << "No Reel Root" << endl;
        }
        else
        {
            cout << "X1 = " << Eq.reelX1 << endl;
            cout << "X2 = " << Eq.reelX2 << endl;
        }
    }

	return 0;
}

E_SOLVER.h

#ifndef EQSOLVER_H_INCLUDED
#define EQSOLVER_H_INCLUDED

class Equation
{
	public:
	    double delta;
		double reelX1;
		double reelX2;
		int Solve(double a, double b, double c);

	private:
};

#endif

Ve son olarak E_SOLVER.cpp

#include <cmath>
#include "lib.h"

int Equation::Solve(double a, double b, double c)
{
	Equation::delta = (b*b) - (4*a*c);

    if (Equation::delta < 0)
    {
        return (-1);
    }

    else if (Equation::delta > 0)
    {
        Equation::reelX1 = ((-b + sqrt(delta)) / (2 * a));
        Equation::reelX2 = ((-b - sqrt(delta)) / (2 * a));
        
        return 1;
    }
}

You may also like...

Bir yanıt yazın