Probleme avec mon algo (java)

Résolu
patriot01 -  
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   -
bonjour tout le monde, je suis debutant en programmation j'ai cree un petit programme qui calcul le discriminant
mais j'ai probleme avec les saisies au clavier (System.in.read) voici mon programme sil vous plait corrigé la
"public class discriminant {

public static void main(String[] args){
double a,b,c,x1,x2,delta;
System.out.print("a= ");
System.in.read();
System.out.print("b= ");
System.in.read();
System.out.print("c= ");
System.in.read();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);
}

} "
Merci davance
A voir également:

15 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
C'est normal, il y a un petit '\n' qui se balade automatiquement dans le buffer.
Utilise plutôt la classe Scanner.
import java.util.Scanner;

public class discriminant {

    public static void main(String[] args){
        double a,b,c,x1,x2,delta;
        Scanner scan=new Scanner(System.in);
        System.out.print("a= ");
        a = scan.nextDouble();
        System.out.print("b= ");
        b = scan.nextDouble();
        System.out.print("c= ");
        c = scan.nextDouble();
        delta=(b*b)-(4*a*c);
        System.out.println("Le discriminant est= "+delta);
    }

}


Cdlt
1
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
Le soucis est que vous ne récupérez pas les valeur entrée. Il faut procéder ainsi :

public class discriminant {

public static void main(String[] args){
double a,b,c,x1,x2,delta;
System.out.print("a= ");
int a = System.in.read();
System.out.print("b= ");
int b = System.in.read();
System.out.print("c= ");
int c = System.in.read();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);
}

}
0
patriot01
 
slt NookZ le compilateur signale des erreur ds le programme ,au niveu des valeur qui son devant int (a, b, c)
j'utilise eclipse
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514 > patriot01
 
Pouvez-vous me copier l'erreur exact s'il vous plaît?
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
le compilateur affiche
"Duplicate local variable a
Duplicate local variable b
Duplicate local variable c

at discriminant.main(discriminant.java:6)
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
J'avais pas vu la déclaration des variables :

public class discriminant {

public static void main(String[] args){
double a,b,c,x1,x2,delta;
System.out.print("a= ");
a = System.in.read();
System.out.print("b= ");
b = System.in.read();
System.out.print("c= ");
c = System.in.read();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);
}

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
now le compilateur affiche cet message:
Unhandled exception type IOException
Unhandled exception type IOException
Unhandled exception type IOException

at discriminant.main(discriminant.java:6)
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
public class discriminant {

public static void main(String[] args){
double a,b,c,x1,x2,delta;

try {
System.out.print("a= ");
a = System.in.read();
System.out.print("b= ");
b = System.in.read();
System.out.print("c= ");
c = System.in.read();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);
}
catch (IOException e){
System.out.println("Erreur de lecture de l'utilisateur");
}
}

}

ça veut juste dire que tu n'as pas gérer le cas où une erreur IO (donc InputOutput, c'est à dire d'entrée sortie) surviendrait. Ce que j'ai fait veut dire que dans le cas où une telle erreur (appelée aussi exception) serait levée, on écrit "Erreur de lecture de l'utilisateur"
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
ya un autre probleme
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
IOException cannot be resolved to a type

at discriminant.main(discriminant.java:16)
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
Ajoute cette ligne avant le début de ta classe :
import java.io.IOException;
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
pardon pour le derangemen NookZ mai j'ai un blem avec l'algo encore g n'arrive pa a rentré les valeurs de (b) et de (c) le compilateur affiche
a= 2
b= c= Le discriminant est= -1831.0
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
vous voulez dire que le programme ne vous laisse pas entrer de valeur pour b et c?
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
oui c'est exactemen ça
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
Je ne suis pas sûre de mon coup, mais je tenterai ça :

public static void main(String[] args){
double a,b,c,x1,x2,delta;
boolean fin = false;
while(!fin){
try {
System.out.print("a= ");
a = System.in.read();
System.out.print("b= ");
b = System.in.read();
System.out.print("c= ");
c = System.in.read();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);
fin = true;
}
catch (IOException e){
System.out.println("Erreur de lecture de l'utilisateur");
}
}

}
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
non cè plein d'erreur encore
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
faut me dire quelles erreurs, sinon je risque pas de pouvoir aider ^^"
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
le compilateur souligne
void , while,le croché devan string
le compilateur ne demare meme pas la compilation
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
tu n'as pas oublié de remettre :
public class discriminant {
devant et
} après?
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
t'avai raison mai je n'arrive toujours pas a renté la valeur de b et c
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
Je crois que je vois le prob :

Public class discriminant {

public static void main(String[] args){
double a,b,c,x1,x2,delta;

System.out.print("a= ");
a = lire();
System.out.print("b= ");
b = lire();
System.out.print("c= ");
c = lire();
delta=(b*b)-(4*a*c);
System.out.println("Le discriminant est= "+delta);

}

public static int lire()
{
int retour = -1;
try {
retour = System.in.read();
while ((char)System.in.read() != '\n');
}
catch (IOException e){
System.out.println("Erreur de lecture de l'utilisateur");
}
return retour;
}

}
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
ça marche merci bcp
la classe scanner g la connè pas
. avec cette classe ta pa eu besoin de (java.io.IOException) pourquoi,di g peu l'utilisé ds toute mes saisies clavier?

si ta des cours sur les classe svp pouvez vou me l'envoyez
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
La classe scanner utilise la levée de l'exception IOException comme la fin de la chaîne entrée par l'utilisateur.
On a pas besoin de l'importer car elle n'est pas utiliser dans ta classe directement.

Voici un tutoriel de la classe Scanner :
http://www.javafr.com/tutoriaux/CLASSE-SCANNER_514.aspx
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
La classe scanner est apparue depuis la version 1.5, voilà pourquoi elle n'est pas super connue. Mais, elle est recommandée et simple d'utilisation.
Premier lien que j'ai trouvé par une simple recherche : http://www.javafr.com/tutoriaux/CLASSE-SCANNER_514.aspx
Il doit y en avoir des plus complets (je ne l'ai pas lu).

Sinon la référence : https://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html

g peu l'utilisé ds toute mes saisies clavier?
Oui.
0
patriot01 Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   6
 
merci a vous deux vous etes tro gentils
je vai voir les tutaux sur ces sites
di g peu avoir vos mails en cas de bug ds la programmation g vous envoi l'algo
0