Erreur "Exception in thread "main" java.lang.Error:"
Bonjour,
J'ai testé un programme Java comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public class exo1mod4 {
public static void main (String []arg)
{
char[]matiere=new char[3];
matiere[0] = 'M';
matiere[1] = 'F';
matiere[2] = 'I';
int i,j,nb;
double s;
s=0;
//saisie du nombre d'élève
System.out.println("entrez le nombre d'élèves ");
nb=Lire.i();
double [][]notes=new double [nb][4];
//saisie des notes
for (i=0;i<nb;i=i+1)
for (j=0;j<3;j=j+1)
{System.out.println("entrez la note de l'élève "+(i+1)+" en "+matiere[j]);
notes[i][j]=Lire.d();
}
//calcul des moyennes individuelles
for (i=0;i<nb;i=i+1)
{notes[i][3]=((notes[i][0]*3)+(notes[i][1]*2)+(notes[i][2]*5))/10;
System.out.println("Moyenne de l'élève "+i+": "+notes[i][3]);
if (notes[i][3]<10) System.out.println(" Elève recalé");
else System.out.println(" Elève reçu");}
//calcul de la moyenne de la classe
for (i=0;i<nb;i=i+1) s=s+notes[i][3];
System.out.print("La moyenne de la classe est: "+s/nb);
}
} |
J'ai un retour d'erreurs comme suit :
Exception in thread "main" java.lang.Error: Problèmes de compilation non résolus :
Lire ne peut pas être résolu
Lire ne peut pas être résolu
Comment faire pour que la fonction lire() puisse être reconnue ?
at exo1mod4.main(exo1mod4.java:19)
J'utilise Eclipse Java EE IDE for Web Developers.
Version: Juno Service Release 2
Build id: 20130225-0426
Quelqu'un saurait-il m'indiquer d'où vient le problème ?
Merci d'avance pour votre aide.
Lire une entrée clavier avec du java
Bonjour james_usus,
ce que tu fais là ce n'est pas de la programmation Orientée Objet mais de la programmation procédurale telle que le C.
mais bon voila ce qu'il faut faire :
1. Créer la classe Lire (ci-dessous)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import java.util.Scanner;
public class Lire {
public static int entier(){
int n = -1;
try{
Scanner entree = new Scanner(System.in);
n = Integer.parseInt(entree.nextLine());
}catch(NumberFormatException ex){
System.out.println("Nombre invalide" + ex);
System.exit(0);
return -1;
}
return n;
}
public static double reel(){
double n = -1;
try{
Scanner entree = new Scanner(System.in);
n = Double.parseDouble(entree.nextLine());
}catch(NumberFormatException ex){
System.out.println("Nombre invalide" + ex);
System.exit(0);
return -1;
}
return n;
}
} |
2. Faire quelque changement dans ta classe exo1mod4 à savoir
nb = Lire.i();
notes[i][j]=Lire.d();
et
Code:
1 2
|
notes[i][j]=Lire.reel(); |
Bonne journée