hlmod.hu
https://hlmod.hu/

C++ Alapok (7.) - Másodfokú egyenletek megoldása
https://hlmod.hu/viewtopic.php?f=123&t=27111
Oldal: 1 / 1

Szerző:  Maxi [ 2017.01.23. 18:31 ]
Hozzászólás témája:  C++ Alapok (7.) - Másodfokú egyenletek megoldása

Bevezetés

Üdv, ebben a bemutatóban a másodfokú egyenletek megoldásával szeretnék foglalkozni.

Áttekintés

A másodfokú egyenletek megoldóképlete:
Kép
Továbbá megjegyzendő:
- Ha a diszkrimináns > 0 akkor két megoldásunk lesz.
- Ha a diszkrimináns = 0 akkor egy megoldásunk lesz.
- Ha a diszkrimináns < 0 akkor NINCS megoldásunk.

Program elkészítése

Nem fogok mindent részletezni, viszont próbálok választ adni a komment szekcióban.

Kód:
#include <iostream>
#include <cmath>

//függvénykönyvtárak létrehozása

using namespace std;

int main() {

    float a, b, c, x1, x2, diszkriminans; //változók létrehozása, float tipusú, mert nem feltétlen egész számokat fogunk használni.
    cout << "Add meg az a; b; es c; erteket!";
    cin >> a >> b >> c; //bekérjük az a, b és a c értéket.
    diszkriminans = b*b - 4*a*c; //meghatározzuk a diszkriminánst, amit mindenki jól tud, hogy a gyökvonás alatti rész.

    if (diszkriminans > 0) {
    //Ha a diszkrimináns nagyobb mint nulla, akkor két megoldásunk lesz.
        x1 = (-b + sqrt(diszkriminans)) / (2*a); //itt a két megoldást fogjuk részletezni, ahol használunk is egy új függvényt, mégpedig a sqrt-t.
        x2 = (-b - sqrt(diszkriminans)) / (2*a); //Ez a függvény annyit tesz, hogy négyzetgyököt von, majd elosztjuk 2xa-val mint azt a képletben is láthattuk!
        cout << "x1 = " << x1 << endl; //majd kiiratjuk.
        cout << "x2 = " << x2 << endl;
    }

    else if (diszkriminans == 0) {
    // ha a diszkrimináns nulla, akkor egy.
        cout << "Egy megoldas volt, mert a diszkriminans 0!" << endl;
        x1 = (-b + sqrt(diszkriminans)) / (2*a);
        cout << "x1 = x2 =" << x1 << endl;
    }

    else {
    // ha egyik sem -> mínusz -> akkor nincs megoldásunk.
        cout << "Az egyenletnek nincs megoldasa, mert a diszkriminans -!"  << endl;
    }

    return 0;
}


Köszönöm a figyelmet!

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/