Die Lösungen einer quadratischen Gleichung finden

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} c/operators -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} c/if_else -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} c/math_functions -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} c/user_input -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} c/output -.-> lab-123254{{"Die Lösungen einer quadratischen Gleichung finden"}} end

Eingabe der Koeffizienten

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);

Berechne die Determinante

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üfe die Natur der Lösungen

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);
}

Gebe die Lösungen aus

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

Schreibe den vollständigen Code

#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.