C++ ile Diskriminant
- 7 sene önce, Baran EKREM yazdı.
- 0 Yorum
- 4.621 Kişi Okudu
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#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; } } |