Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2023 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème d'execution d'un logiciel compilé. (Noob inside)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'execution d'un logiciel compilé. (Noob inside)

n°1234587
Willits
La réponse est 42
Posté le 30-10-2005 à 19:38:45  profilanswer
 

Bonjour,
 
Je suis en train d'apprendre (seul) le java, et j'ai un petit problème.
 
J'ai pris et réecris un exemple de logiciel sur Internet (j'ai changé deux trois truc), et j'ai un problème de déclaration des variables.
 
Voici mon code:
 

Citation :


 
import java.io.*;
 
public class impots {
     
    public static void main(String arg[]){
 
 // données
 
 // limites des tranches d'impôts
 double Limites[]={12620, 13190, 15640, 24740, 31810, 39970, 48360, 55790, 92970, 127860, 151250, 172040, 195000, 0};
 // Coefficient appliqué
 double Coeffn[]={0,631,1290.5,2072.5,3309.5,4900,6898.5,9316.5,12106,16754.5,23147.5,30710,39312,49062};
 
 // Le programme
 
 // Création du flux d'entrée du Clavier
 BufferedReader Keyb=null;
 try{
     Keyb=new BufferedReader(new InputStreamReader(System.in));
 }
 catch(Exception e){
     erreur("Creation du flux d'entrée", e, 1);
 }
 
 // Récupération du statut Marital
 
 boolean OK=false;
 String answer=null;
 // Création du While, tant que OK n'est pas true, j'attend
 while(! OK){
     try{
  System.out.print("Etes vous marrié(e) (O/N) ?" );
  answer=Keyb.readLine();
  answer=answer.trim().toLowerCase();
  // Début du if (sur plusieur lignes)
  if (! answer.equals("o" ) && ! answer.equals("n" ))
      System.out.println("Réponse incorrecte. Recommancez" );
  else  
      OK=true;
  // Fin du if
     } catch(Exception e){
  erreur("Lecture état marital",e,2);
     }
 }
 boolean Marie = answer.equals("o" );
 // On a le statut Marital, dans le boolean Marie
 
 // Nombre d'enfant
 OK=false;
 int NbEnfant;
 // Création du While
 while(! OK){
     try{
  System.out.print("Nombre d'enfants : " );
  answer=Keyb.readLine();
  try{
      NbEnfant=Integer.parseInt(answer);
      // Le if à été contracté en une seule ligne.
      if(NbEnfant>=0) OK=true;
      else System.err.println("Réponse incorrecte. Recommencez" );
  } catch(Exception e){
      System.err.println("Réponse incorrecte. Recommencez" );
  } // Fin du 2e try
     } catch(Exception e){
  erreur("Lecture Salaire",e,4);
     } // Fin du 1er try
 } // Fin du While
 // Maintenant on a le nombre d'enfant, storé dans l'integrer int
 
 // Maintenant, on récupère le salaire.
 OK=false;
 long Salaire=0;
 while(! OK){
     try{
  System.out.print("Salaire annuel : " );
  answer=Keyb.readLine();
  try{
      Salaire=Long.parseLong(answer);
      if(Salaire>=0) OK=true; // Le if à encore été contracté
      else System.err.println("Réponse incorrecte. Recommencez" );
  } catch(Exception e){
      System.err.println("Réponse incorrecte. Recommencez" );
  } // Fin du try
   
     } catch(Exception e){
  erreur("Lecture salaire",e,4);
     } // Fin du try
 } // Fin du While
 // On a maintenant le salaire, on peut calculer l'impot.
 
 // Calcul du nombre de part
 double NbParts;
 if(Marie) NbParts=(double)NbEnfant/2+2;
   else NbParts=(double)NbEnfant/2+1;
 if (NbEnfant>=3) NbParts+=0.5;
 
 // Revenue imposable
 double Revenue;
 Revenue=0.72*Salaire;
 
 // Quotient familiale
 double QF;
 QF=Revenue/NbParts;
 
 // Recherche de la tranche d'impots correspondant à QF.
 int i;
 int NbTranches=Limites.length;
 Limites[NbTranches-1]=QF;
 i=0;
 while(QF>Limites[i]) i++;
 // L'impots
 long impots=(long)(i*0.05*Revenue-Coeffn[i]*NbParts);
 
 // On affiche le résultat
 System.out.println("Impot à payer : " );
 
    } // main
     
    // ---------- Erreur
    private static void erreur(String msg, Exception e, int exitcode){
 System.err.println(msg+"("+e+" )" );
 System.exit(exitcode);
    } // erreur
     
}
 
// Finis :)


 
Voilà, mon code.
 
Quand je compile ça, il me dit :
 

Citation :


 
init:
deps-jar:
Compiling 1 source file to /home/damien/Documents/Dam-pro/Learning/build/classes
/home/damien/Documents/Dam-pro/Learning/src/learning/impots.java:106: variable NbEnfant might not have been initialized
        if(Marie) NbParts=(double)NbEnfant/2+2;
/home/damien/Documents/Dam-pro/Learning/src/learning/impots.java:107: variable NbEnfant might not have been initialized
          else NbParts=(double)NbEnfant/2+1;
2 errors
BUILD FAILED (total time: 0 seconds)
 


 
Donc, je ne comprend pas car pourtant, NbEnfant à été déclaré (je l'ai mis en gras dans le code).
Les lignes qui provoque les erreurs sont en gras italique.
 
Je vous remercie.
 
Willits.


Message édité par Willits le 31-10-2005 à 09:03:16
mood
Publicité
Posté le 30-10-2005 à 19:38:45  profilanswer
 

n°1234589
rnoizet
Posté le 30-10-2005 à 19:49:21  profilanswer
 

En fait, l'erreur vient du fait que le compilateur pense que nbEnfant n'aura pas de valeur si, lors de son initialisation par une entrée clavier, le programme tombe dans l'exception.
Tu peux résoudre le problème en écrivant "int NbEnfant = 0;" au lieu de "int NbEnfant;". De cette manière, la valeur 0 sera écrasée ensuite par l'entrée clavier et le compilateur ne t'embêtera plus.


Message édité par rnoizet le 30-10-2005 à 19:50:51
n°1234717
Willits
La réponse est 42
Posté le 31-10-2005 à 08:54:43  profilanswer
 

Je te remercie rnoizet, maintenant mon application se compile, mais j'ai un autre problème (et là je ne comprend vraiment rien).
 
Donc, j'ai mon fichier impots.class qui est compilé, et quand je le lance, il me dit ça :
 

Citation :


> java impots.class
Exception in thread "main" java.lang.NoClassDefFoundError: impots/class


 
Et là je ne sais vraiment pas quoi faire :(

n°1234737
masklinn
í dag viðrar vel til loftárása
Posté le 31-10-2005 à 09:32:31  profilanswer
 

Tu as fait le Java Tutorial [:petrus dei]
 
Non parce que ça se lance pas comme ça un programme java [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1234846
Willits
La réponse est 42
Posté le 31-10-2005 à 11:34:44  profilanswer
 

J'ai pris un cours en français sur internet, et il fait comme ça le gars.
 
javac impots.java
java impots.class
 
Et quand je fait Run dans NetBeans, il me sort la même erreur.

n°1234854
masklinn
í dag viðrar vel til loftárása
Posté le 31-10-2005 à 11:43:18  profilanswer
 

Willits a écrit :

J'ai pris un cours en français sur internet, et il fait comme ça le gars.
 
javac impots.java
java impots.class


Ben il fait mal.
 
maintenant tu me fais le plaisir d'aller sur le topic Passage obligé pour débutants en Java, 2e post, tu vas faire le Java Tutorial en entier et tu lis Penser en Java [:klem3i1]
 
Après tu lis les 4 pages du topic en entier (quand t'auras fini ET le tuto ET TIJ), puis tu pourra revenir.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1235216
Willits
La réponse est 42
Posté le 31-10-2005 à 17:29:05  profilanswer
 

C'est bon, j'ai compris, c'est mon classpath qui n'est pas bon.
Bon, je cherche où est ce java.io.

n°1235494
vb11
Posté le 01-11-2005 à 09:49:41  profilanswer
 

Le nom d'une classe commence TOUJOURS par une majuscule.
On ne doit JAMAIS mettre le ".class" avec la commande "java".
Sérieux, arrête tt de suite et vas lire Penser en Java.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème d'execution d'un logiciel compilé. (Noob inside)

 

Sujets relatifs
Petit problème de CSS sur mon siteProbleme de connection base de donnée
[CSS] Probleme de menu sur un design !probleme JTable et serialisation
[Yacc/Bison] Probleme avec yylineno[ Débutant ] Erreur d'exécution en Javascript
Probleme en C++ de classeProblème de CSS
Probleme module et index VB6[Image]Probleme de rafraichissement
Plus de sujets relatifs à : Problème d'execution d'un logiciel compilé. (Noob inside)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR