Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[C++] Kvadratinės lygties sprendiniai.


- Sanchez.

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2628 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, dalinuosi C++ kodu, kurio principas toks: įvedame a, b ir c kvadratinės lygties reikšmes ir programa suskaičiuoja diskriminantą, jei jis didesnis arba lygus 0, randa sprendinius. Kitą lygtį spresti galima neišjungus programos. Sėkmės.


#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    bool vykdyti = 1;
    while(vykdyti == 1)
    {
        double a, b, c, diskriminantas, x1, x2;
        cout << "ax^2 + bx + c = 0" << endl << endl;
        cout << "Pilnosios kvadratines lygties diskriminanto ir sprendiniu apskaiciavimas" << endl << endl;
        cout << "Iveskite 'a' reiksme: "; cin >> a;
        cout << "Iveskite 'b' reiksme: "; cin >> b;
        cout << "Iveskite 'c' reiksme: "; cin >> c;
        cout << endl << endl;
        if(a > 0 and b > 0 and c > 0)
        {
            diskriminantas = pow(b, 2) - (4 * a * c);
            cout << "D.= " << diskriminantas << endl;
            if(diskriminantas > 0)
            {
                cout << "Lygtis turi du skirtingus sprendinius." << endl << endl;
                x1 = (-b + sqrt(diskriminantas)) / (2 * a);
                x2 = (-b - sqrt(diskriminantas)) / (2 * a);
                cout << "x1 = " << x1 << endl;
                cout << "x2 = " << x2 << endl;
            }
                else if(diskriminantas == 0)
            {
                cout << "Lygtis turi du vienodus sprendinius." << endl << endl;
                x1 = (- / (2 * a);
                cout << "x1 = x2 = " << x1 << endl;
            }
            else
            {
                cout << "Lygtis sprendiniu neturi." << endl;
            }
            cout << endl << endl;
            cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
            cout << string( 100, '\n' );
        }
        else
        {
        cout << "a, b arba c negali buti lygus 0!" << endl;
        cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
        cout << string( 100, '\n' );
        }
    }
    cout << "Programa darba baige"  << endl;
    return 0;
}

Redaguota , nario - Sanchez.
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Ką reiškia string komanda? :D

cout << string( 100, '\n' );

 

 

Čia tam, kad išvalytų ekraną. Tai, žinoma, galima daryt su system("CLS"), bet ši funkcija nerekomenduojama, todėl taip. Išvalant ekraną po sprendinių patogiau vesti naujus. O ką daro - suveda 100 naujų eilučių.

Redaguota , nario - Sanchez.
Nuoroda į komentarą
Dalintis per kitą puslapį

Kaip sita koamnda turetu atrodyti be \n o su endl; ?

cout << string( 100, '\n' );

 

Tai turbut su for ciklu. Endl yra funkcija, o ne simbolis, tad jo i string konstruktoriu neikisi. Gali tik nebent naudojant stringstream, nors sito nebandziau pats. Beje \n ir endl yra tas pats, tik tiek kad endl iskart flushina bufferi, tai yra parasyta jo aprasyme: Insert newline and flush. tai koks tolkas daryt su endl, jei \n yra vos ne tas pats?

Nuoroda į komentarą
Dalintis per kitą puslapį

 

Sveiki, dalinuosi C++ kodu, kurio principas toks: įvedame a, b ir c kvadratinės lygties reikšmes ir programa suskaičiuoja diskriminantą, jei jis didesnis arba lygus 0, randa sprendinius. Kitą lygtį spresti galima neišjungus programos. Įkeliu kodo .exe failą (jei kas nors tiesiog norės naudotis programa) ir .css mokymo tikslais. Sėkmės.

 

Parsisiuntimas: http://www.failai.lt/16snyi8ilzqb/kvadratiniu_lygciu_skaicuoklis.exe

Jei kas nors abejoja failo skaidrumu: https://www.virustotal.com/lt/file/0068725f9e8cc6dd425d7313f608f5ece79d6d8b5daed6604f52b39ea229b82d/analysis/1457271663/


#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    bool vykdyti = 1;
    while(vykdyti == 1)
    {
        double a, b, c, diskriminantas, x1, x2;
        cout << "ax^2 + bx + c = 0" << endl << endl;
        cout << "Pilnosios kvadratines lygties diskriminanto ir sprendiniu apskaiciavimas" << endl << endl;
        cout << "Iveskite 'a' reiksme: "; cin >> a;
        cout << "Iveskite 'b' reiksme: "; cin >> b;
        cout << "Iveskite 'c' reiksme: "; cin >> c;
        cout << endl << endl;
        if(a > 0 and b > 0 and c > 0)
        {
            diskriminantas = pow(b, 2) - (4 * a * c);
            cout << "D.= " << diskriminantas << endl;
            if(diskriminantas > 0)
            {
                cout << "Lygtis turi du skirtingus sprendinius." << endl << endl;
                x1 = (-b + sqrt(diskriminantas)) / (2 * a);
                x2 = (-b - sqrt(diskriminantas)) / (2 * a);
                cout << "x1 = " << x1 << endl;
                cout << "x2 = " << x2 << endl;
            }
                else if(diskriminantas == 0)
            {
                cout << "Lygtis turi du vienodus sprendinius." << endl << endl;
                x1 = (- / (2 * a);
                cout << "x1 = x2 = " << x1 << endl;
            }
            else
            {
                cout << "Lygtis sprendiniu neturi." << endl;
            }
            cout << endl << endl;
            cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
            cout << string( 100, '\n' );
        }
        else
        {
        cout << "a, b arba c negali buti lygus 0!" << endl;
        cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
        cout << string( 100, '\n' );
        }
    }
    cout << "Programa darba baige"  << endl;
    return 0;
}

Ne geriau būtų naudoti While(true) ?

Nuoroda į komentarą
Dalintis per kitą puslapį

 

 

Sveiki, dalinuosi C++ kodu, kurio principas toks: įvedame a, b ir c kvadratinės lygties reikšmes ir programa suskaičiuoja diskriminantą, jei jis didesnis arba lygus 0, randa sprendinius. Kitą lygtį spresti galima neišjungus programos. Įkeliu kodo .exe failą (jei kas nors tiesiog norės naudotis programa) ir .css mokymo tikslais. Sėkmės.

 

Parsisiuntimas: http://www.failai.lt/16snyi8ilzqb/kvadratiniu_lygciu_skaicuoklis.exe

Jei kas nors abejoja failo skaidrumu: https://www.virustotal.com/lt/file/0068725f9e8cc6dd425d7313f608f5ece79d6d8b5daed6604f52b39ea229b82d/analysis/1457271663/


#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    bool vykdyti = 1;
    while(vykdyti == 1)
    {
        double a, b, c, diskriminantas, x1, x2;
        cout << "ax^2 + bx + c = 0" << endl << endl;
        cout << "Pilnosios kvadratines lygties diskriminanto ir sprendiniu apskaiciavimas" << endl << endl;
        cout << "Iveskite 'a' reiksme: "; cin >> a;
        cout << "Iveskite 'b' reiksme: "; cin >> b;
        cout << "Iveskite 'c' reiksme: "; cin >> c;
        cout << endl << endl;
        if(a > 0 and b > 0 and c > 0)
        {
            diskriminantas = pow(b, 2) - (4 * a * c);
            cout << "D.= " << diskriminantas << endl;
            if(diskriminantas > 0)
            {
                cout << "Lygtis turi du skirtingus sprendinius." << endl << endl;
                x1 = (-b + sqrt(diskriminantas)) / (2 * a);
                x2 = (-b - sqrt(diskriminantas)) / (2 * a);
                cout << "x1 = " << x1 << endl;
                cout << "x2 = " << x2 << endl;
            }
                else if(diskriminantas == 0)
            {
                cout << "Lygtis turi du vienodus sprendinius." << endl << endl;
                x1 = (- / (2 * a);
                cout << "x1 = x2 = " << x1 << endl;
            }
            else
            {
                cout << "Lygtis sprendiniu neturi." << endl;
            }
            cout << endl << endl;
            cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
            cout << string( 100, '\n' );
        }
        else
        {
        cout << "a, b arba c negali buti lygus 0!" << endl;
        cout << "Ar norite spresti is naujo?(1 - taip ; 0 - ne):  "; cin >> vykdyti;
        cout << string( 100, '\n' );
        }
    }
    cout << "Programa darba baige"  << endl;
    return 0;
}

Ne geriau būtų naudoti While(true) ?

Kam tau tas begalinis ciklas? Jis čia gerai ciklo lifecycle yra padaręs ir be while(true). Čia stabdymui yra naudojamas 'vykdyti' kintamasis, kuris yra perrašomas po kiekvieno ciklo.

Įdomi užuomena: begalinius ciklus paprastai nerašo while(true) , o užrašo biški trumpiau for( ;; ) arba while(1)

Redaguota , nario D34DC0D3
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Kam tau tas begalinis ciklas? Jis čia gerai ciklo lifecycle yra padaręs ir be while(true). Čia stabdymui yra naudojamas 'vykdyti' kintamasis, kuris yra perrašomas po kiekvieno ciklo.

Įdomi užuomena: begalinius ciklus paprastai nerašo while(true) , o užrašo biški trumpiau for( ;; ) arba while(1)

Atsiprašau nepastebėjau jog pakeičia reikšmę bool. :s

O dėl trumpesnių užrašų tikrai nežinojau! ^^

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 11 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2628 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...