Avatar billede nexus-6 Nybegynder
10. august 2002 - 20:35 Der er 2 kommentarer og
1 løsning

Løsning af andengradsligning.

Hej NG.
Er ved at lave et program til at løse andengradsligninger. Skal måske lige sige at det laves med objekter da jeg er ved at lære om det.

Den første del som finder determinanten har jeg lavet.

class anden
{
public:
    float CalcD(float a, float b, float c) {return (b*b) - (4*a*c);};
};

Problemet kommer så når jeg skal finde skæringspunkterne (x), her er der jo tre muligheder: d < 0, d == 0 og d >0.
Der ud over kommer, at der er to x værdier ved d > 0, i den situation jeg fik et lille hint om at bruge pointers.
Håber at der er nogen der kan hjælpe mig.
Avatar billede tosssen Nybegynder
11. august 2002 - 12:00 #1
public:
float* Solve()
{
    if (d>=0) //Her undersøges det om ligningen kan løses
    {
        solutions[0] = (-b-sqrt(d))/(2*a); //Den ene løsning kan altid bruges
        numberOfSolutions=1;
        if (d>0) // Den anden udregnes, hvis d>0
        {
            solutions[1] = (-b+sqrt(d))/(2*a);
            numberOfSolutions=2;
        }
        else //Ellers er der tale om en dobbeltrod
        {
            solutions[1]=solutions[0];
        }
    }
    return solutions;
}
private:
float a;
float b;
float c;
float d;
int numberOfSolutions;  //Denne variabel bruges til at angive hvor meget af arrayet solutions, der indeholder løsninger
float solutions[2];
Avatar billede tosssen Nybegynder
11. august 2002 - 12:04 #2
Følgende skriver løsningen til skærmen i et konsol-program:

for (int i=0 ; i < numberOfSolutions ; i++)
    {
        cout << i+1 << ": x = " << solutions[i] << endl;
    }
Avatar billede nexus-6 Nybegynder
11. august 2002 - 15:36 #3
Jeg siger mange tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester