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.
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];