Die Lösungen einer quadratischen Gleichung finden

CBeginner
Jetzt üben

Einführung

Eine quadratische Gleichung ist eine Gleichung der Form ax²+bx+c=0, wobei a, b und c Konstanten sind. In diesem Lab werden wir lernen, wie man ein Programm schreibt, um die Lösungen einer quadratischen Gleichung zu finden.

Um die quadratische Gleichung zu lösen, werden wir die folgende Formel verwenden:

x = (-b ± sqrt(b² - 4ac)) / 2a

Hinweis: Sie müssen die Datei ~/project/main.c selbst erstellen, um zu üben, wie man codiert und wie man sie mit gcc kompiliert und ausführt.

cd ~/project
## main.c erstellen
touch main.c
## main.c kompilieren
gcc main.c -o main
## main ausführen
./main

Eingabe der Koeffizienten erhalten

Wir werden vom Benutzer die Koeffizienten der quadratischen Gleichung wie a, b und c eingeben lassen. Diese Koeffizienten werden verwendet, um die Lösungen der quadratischen Gleichung zu berechnen.

float a, b, c, determinant, r1, r2, real, imag;
printf("\nGeben Sie die Koeffizienten a, b und c ein: ");
scanf("%f%f%f", &a, &b, &c);

Die Determinante berechnen

Wir werden dann den Wert der Determinante der quadratischen Gleichung mit der Formel berechnen:

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

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

Prüfen der Natur der Wurzeln

Anschließend werden wir die Natur der Lösungen der quadratischen Gleichung anhand des in Schritt 2 berechneten Determinantenwerts prüfen. Wenn der Determinante größer als 0 ist, dann sind die Lösungen reell und unterschiedlich. Wenn der Determinante gleich 0 ist, dann sind die Lösungen reell und gleich. Wenn der Determinante kleiner als 0 ist, dann sind die Lösungen komplex und imaginär.

if(determinant > 0)    // beide Lösungen sind real
{
    r1 = (-b + sqrt(determinant))/2*a;  // Klammern sind wichtig
    r2 = (-b - sqrt(determinant))/2*a;
    printf("\n\n\nLösungen sind: %.2f und %.2f ", r1, r2);
}
else if(determinant == 0)   // beide Lösungen sind real und gleich
{
    r1 = r2 = -b/(2*a); // Klammern sind wichtig
    printf("\n\n\nLösungen sind: %.2f und %.2f ", r1, r2);
}
/*
    Determinante < 0 - beide Lösungen sind imaginär
    von der Form real + i*imaginär
*/
else
{
    real = -b/(2*a);
    imag = sqrt(-determinant)/(2*a);
    printf("\n\n\nLösungen sind %.2f + i%.2f und %.2f - i%.2f ", real, imag, real, imag);
}

Die Wurzeln ausgeben

Schließlich werden wir die Lösungen der quadratischen Gleichung anhand der in Schritt 3 berechneten Natur der Lösungen ausgeben.

Den vollständigen Code schreiben

#include<stdio.h>
#include<math.h>  // Dies ist erforderlich, um die sqrt()-Funktion zu verwenden

int main()
{
    float a, b, c, determinant, r1, r2, real, imag;
    printf("\nGeben Sie die Koeffizienten a, b und c ein: ");
    scanf("%f%f%f", &a, &b, &c);

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

    if(determinant > 0)    // beide Lösungen sind real
    {
        r1 = (-b + sqrt(determinant))/2*a;  // Klammern sind wichtig
        r2 = (-b - sqrt(determinant))/2*a;
        printf("\n\n\nLösungen sind: %.2f und %.2f ", r1, r2);
    }
    else if(determinant == 0)   // beide Lösungen sind real und gleich
    {
        r1 = r2 = -b/(2*a); // Klammern sind wichtig
        printf("\n\n\nLösungen sind: %.2f und %.2f ", r1, r2);
    }
    /*
        Determinante < 0 - beide Lösungen sind imaginär
        von der Form real + i*imaginär
    */
    else
    {
        real = -b/(2*a);
        imag = sqrt(-determinant)/(2*a);
        printf("\n\n\nLösungen sind %.2f + i%.2f und %.2f - i%.2f ", real, imag, real, imag);
    }
    printf("\n\n\n\n\t\t\tCoding ist Spaß!\n\n\n");
    return 0;
}

Zusammenfassung

In diesem Lab haben wir gelernt, wie man ein C-Programm schreibt, um die Lösungen einer quadratischen Gleichung zu finden. Wir haben die Eingaben des Benutzers für die Koeffizienten der quadratischen Gleichung entnommen und die Lösungen basierend auf der Natur der Lösungen berechnet, die durch den Wert der Determinante bestimmt werden. Anschließend haben wir die Lösungen der quadratischen Gleichung basierend auf der Natur der Lösungen ausgegeben.