Exercice Java corrigé les opérateurs – expression polynômiale

Le but est d’écrire un petit programme permettant d’évaluer un polynôme du 3ème degré de la forme:

((a+b)/2)x3 + (a+b)2x2 + a + b + c

On commence par lire les coefficients du polynôme:

import java.util.Scanner;
class Degre3 {
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.print("Entrez le coefficient a (int): ");
        int a = scanner.nextInt();
        System.out.print("Entrez le coefficient b (int) ");
        int b = scanner.nextInt();
        System.out.print("Entrez le coefficient c (int) ");
        int c = scanner.nextInt();
    }
}

on fait pareil pour la variable, mais cette fois c’est un double:

import java.util.Scanner;
class Degre3 {
    private static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {
        System.out.print("Entrez le coefficient a (int): ");
        int a = scanner.nextInt();
        System.out.print("Entrez le coefficient b (int) ");
        int b = scanner.nextInt();
        System.out.print("Entrez le coefficient c (int) ");
        int c = scanner.nextInt();

        System.out.print("Entrez la valeur de la variable x (double) ");
        double x = scanner.nextDouble();
    }
}

Ensuite il faut coder la formule. On peut remarquer alors que a+b et x*x interviennent plusieurs fois dans le calcul. Pour éviter d’avoir à les recalculer deux fois, on peut les stocker dans des variables intermédiaires. On fait ensuite le calcul et on affiche le résultat:

import java.util.Scanner;
class Degre3 {
    private static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {
        System.out.print("Entrez le coefficient a (int) : ");
        int a = scanner.nextInt();
        System.out.print("Entrez le coefficient b (int) : ");
        int b = scanner.nextInt();
        System.out.print("Entrez le coefficient c (int) : ");
        double c = scanner.nextInt();

        System.out.print("Entrez la valeur de la variable x (double) : ");
        double x = scanner.nextDouble();

        double xx =  x *  x;
        double aux = a + b;
        double valeur = aux/2 * x * xx + aux * aux * xx + aux +c;
        System.out.println("La valeur de l'expression est: " + valeur);
    }
}

Attention! Pour que le calcul de (a+b)/2 se fasse correctement (sans troncature due à la division entière), il est indispensable que la variable intermédiaire aux soit déclarée comme double.

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *