C++ ile Diskriminant
Algoritmalar 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;
}
}

Son yorumlar