0 Daumen
1,7k Aufrufe

Programm soll quadratische Gleichung lösen können (nach  x1/2 = -b/2a +- 1/2 Wurzel(D) )

ax^2+bx+c = 0

a=b=c = 0
a=b=0, c nicht = 0
a=0, b nicht = 0
a nicht = 0 : In diesem Fall man man die Lösungsformel x1/2 = -b/2a +- 1/2 Wurzel(D)
mit der Diskriminante D= (b/a)^2 - 4c/a. Man unterscheide nun die Fälle
D = 0, D > 0 und D<0

Mein Programm(Ansatz)

#include <iostream>
#include <math.h>

using namespace std;

/*
*
*/
int main() {
    float a,b,c,D
   
    cout << "Koeffizienten a,b,c: "
    cin >>> a >> b >> c;

D=b*b-4*a*c;

if (D==0) cout << "x = " << -b(2*a) << endl;
if (D>0) cout << " x = " << (-b+sqrt(D)) /(2*a) << "und x= "
        << (-b-sqrt(D))/(2*a) << endl;
if (D<0) cout << "x = " << -b/(2*a) << "+-"
        << sqrt (-D)/(2*a) << "*i" << endl;

    return 0;
}


Könnt ihr mir helfe, die Fehler zu beheben, sodass es nach der Formel D= (b/a)^2 - 4c/a und x1/2 = -b/2a +- 1/2 Wurzel(D) abläuft..

"nicht =" bedeutet gleich durchgestrichen...

Avatar von

1 Antwort

+1 Daumen

Code:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char** argv)
{
  float a, b, c, D, real, imag, x1, x2, temp;

  cout << "Koeffizienten a,b,c: ";
  std::cin >> a >> b >> c;

  if (a == 0)
  {
    cout << "Keine quadratische Formel !" << endl;
     
    std::cin >> temp;
    return 0;
  }

  D = b * b - 4 * a*c;

  if (D == 0)
  {
    // z.B. a=1,b=-4,c=4

    x1 = -b / (2 * a);
    cout << "x1 = x2 = " << x1 << endl;
  }

  else if (D > 0)
  {
    // z.B. a=1,b=2,c=-35
    x1 = (-b + sqrt(D)) / (2 * a);
    x2 = (-b - sqrt(D)) / (2 * a);

    cout << " x1 = " << x1 << " und x2 = " << x2 << endl;
  }

  else if (D<0)
  {
    // z.B. a=1,b=12,c=37
    real = -b / (2 * a);
    imag = sqrt(-D) / (2 * a);

    cout << "x1 = " << real << " + i* " << imag << endl;
    cout << "x2 = " << real << " + i* " << -imag << endl;
  }

  // Pause
  std::cin >> temp;

  return 0;
}
Avatar von

Sollte die Diskriminante nicht D= (b/a)2 - 4c/a sein?

wie kriegt man das hin, muss man etwa D= (b*b)/(a*a)-(4c/a)  eingeben?

Die Diskriminante ist mit D = b^2 - 4ac definiert. Eine Division mit 2*a erfolgt zu einerm späteren Zeitpunkt.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community