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