Trouver les racines de l'équation du second degré

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Une équation du second degré est une équation de la forme ax²+bx+c=0, où a, b et c sont des constantes. Dans ce laboratoire, nous allons apprendre à écrire un programme pour trouver les racines d'une équation du second degré.

Pour résoudre l'équation du second degré, nous allons utiliser la formule suivante :

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

Note : Vous devez créer le fichier ~/project/main.c vous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter à l'aide de gcc.

cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) 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{{"Trouver les racines de l'équation du second degré"}} c/operators -.-> lab-123254{{"Trouver les racines de l'équation du second degré"}} c/if_else -.-> lab-123254{{"Trouver les racines de l'équation du second degré"}} c/math_functions -.-> lab-123254{{"Trouver les racines de l'équation du second degré"}} c/user_input -.-> lab-123254{{"Trouver les racines de l'équation du second degré"}} c/output -.-> lab-123254{{"Trouver les racines de l'équation du second degré"}} end

Obtenir les coefficients d'entrée

Nous allons prendre en entrée les coefficients de l'équation du second degré, tels que a, b et c, saisis par l'utilisateur. Ces coefficients seront utilisés pour calculer les racines de l'équation du second degré.

float a, b, c, determinant, r1, r2, real, imag;
printf("\nEntrez les coefficients a, b et c : ");
scanf("%f%f%f", &a, &b, &c);

Calculer le déterminant

Nous allons ensuite calculer la valeur du déterminant de l'équation du second degré en utilisant la formule :

déterminant = b*b - 4*a*c;

déterminant = b*b - 4*a*c;

Vérifier la nature des racines

Nous allons ensuite vérifier la nature des racines de l'équation du second degré en fonction de la valeur du déterminant calculé à l'étape 2. Si le déterminant est supérieur à 0, alors les racines sont réelles et distinctes. Si le déterminant est égal à 0, alors les racines sont réelles et égales. Si le déterminant est inférieur à 0, alors les racines sont complexes et imaginaires.

if(determinant > 0)    // les deux racines sont réelles
{
    r1 = (-b + sqrt(determinant))/2*a;  // Les parenthèses sont importantes
    r2 = (-b - sqrt(determinant))/2*a;
    printf("\n\n\nLes racines sont : %.2f et %.2f ", r1, r2);
}
else if(determinant == 0)   // les deux racines sont réelles et égales
{
    r1 = r2 = -b/(2*a); // les parenthèses sont importantes
    printf("\n\n\nLes racines sont : %.2f et %.2f ", r1, r2);
}
/*
    Le déterminant < 0 - les deux racines sont imaginaires de la
    forme réel + i*imaginaire
*/
else
{
    réel = -b/(2*a);
    imag = sqrt(-déterminant)/(2*a);
    printf("\n\n\nLes racines sont %.2f + i%.2f et %.2f - i%.2f ", réel, imag, réel, imag);
}

Afficher les racines

Enfin, nous allons afficher les racines de l'équation du second degré en fonction de la nature des racines calculées à l'étape 3.

Écrire le code complet

#include<stdio.h>
#include<math.h>  // Cela est nécessaire pour utiliser la fonction sqrt()

int main()
{
    float a, b, c, déterminant, r1, r2, réel, imag;
    printf("\nEntrez les coefficients a, b et c : ");
    scanf("%f%f%f", &a, &b, &c);

    déterminant = b*b - 4*a*c;

    if(déterminant > 0)    // les deux racines sont réelles
    {
        r1 = (-b + sqrt(déterminant))/2*a;  // Les parenthèses sont importantes
        r2 = (-b - sqrt(déterminant))/2*a;
        printf("\n\n\nLes racines sont : %.2f et %.2f ", r1, r2);
    }
    else if(déterminant == 0)   // les deux racines sont réelles et égales
    {
        r1 = r2 = -b/(2*a); // les parenthèses sont importantes
        printf("\n\n\nLes racines sont : %.2f et %.2f ", r1, r2);
    }
    /*
        Le déterminant < 0 - les deux racines sont imaginaires de la
        forme réel + i*imaginaire
    */
    else
    {
        réel = -b/(2*a);
        imag = sqrt(-déterminant)/(2*a);
        printf("\n\n\nLes racines sont %.2f + i%.2f et %.2f - i%.2f ", réel, imag, réel, imag);
    }
    printf("\n\n\n\n\t\t\tCoder est amusant!\n\n\n");
    return 0;
}

Récapitulatif

Dans ce laboratoire, nous avons appris à écrire un programme C pour trouver les racines d'une équation du second degré. Nous avons pris les entrées de l'utilisateur pour les coefficients de l'équation du second degré et calculé les racines en fonction de la nature des racines déterminée par la valeur du déterminant. Nous avons ensuite affiché les racines de l'équation du second degré en fonction de la nature des racines.