Se connecter / S'enregistrer
Votre question

Pb code source java

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
16 Mai 2005 12:01:17

Bonjour :-)
Voila je dispose dun code source en java mais a sa compilation, on me signale 5 erreurs ! et je ne voi vraiment pas dou elle vienne !!
Si quelqun peut maider, merci :


public class table_verite {

int n_var;
char var_C [];
public boolean var_L [];

table_verite(int n){
n_var=n;
var_C=new char[n];
for(int i=0;i<n;i++)
var_C=(char)(97+i);
}
}
boolean logique(String lexem)}
int i=lexem.length();
int j=0,k;
boolean bit=true,negation=false;
char car;
while(bit&&(j<i)){//des que un element est faux on sort de la boucle
if(lexem.charAt(j)=='/'){
negation=true;
j++;
}
car=lexem.charAt(j);
for(k=97;(k<=(int)car);k++);
if((var_L[k-98]==false)&&(negation==false)) bit=false;
if((var_L[k-98]==true)&&(negation==true)) bit=false;
j++;
negation=false;
}
return bit;
}

public static void main(String Arg[]){
String combi="";
int msb=Integer.parseInt(Arg[1])-1;//determination du poids le plus fort
int colonne=msb+1,ligne=(int)Math.pow(2,msb+1);
String mot="";
int combinaison[][]=new int[colonne][ligne];
binaire_reflechi b=new binaire_reflechi();
table_verite essai=new table_verite(Integer.parseInt(Arg[1]));
StringTokenizer st= new StringTokenizer(Arg[0],"+");//decoupe de l expression logique
combinaison=b.table(Integer.parseInt(Arg[1]));
for(int i=0;i<colonne;i++) mot=(char)essai.var_C+" "+mot;
System.out.println(mot);
mot="";
for(int j=0;j<ligne;j++){
for(int i=0;i<colonne;i++){
mot=combinaison[j]+" "+mot;
if (combinaison[j]==0) essai.var_L=false; else essai.var_L=true;

}
boolean resultat=false;
while((st.hasMoreTokens())&&(resultat==false)) {
combi=st.nextToken();
resultat=essai.logique(combi);
}
System.out.println(mot+" resultat : "+resultat);
mot="";
st=new StringTokenizer(Arg[0],"+");
}
combi="";
System.out.println("fin");
}
}


class binaire_reflechi{

//classe qui genere le code en binaire reflechi
boolean sequence =false ;
int nsequence;
int compteur=0;
int max_ligne;
int max;
int bit=0;
int i=0;
int [][] table(int poids){
int ligne;
max_ligne=(int)Math.pow(2,poids);
max=max_ligne;
int element[][]=new int[poids] [max];
int colonne=0;
int debut;
while(colonne<poids){
debut=(int)Math.pow(2,colonne);
nsequence=1;//sequence de 2 puissance n (poids) zeros
ligne=0;
while(max>0){
while((i<nsequence)&&(max>0)){
i++;
int n=0;
while(n<debut){
element[colonne][ligne]=bit;
ligne++;
max--;
n++;
}
if((bit==0)&&(i==nsequence)) {
bit=1;
i=0;
}
nsequence=2;//sequence de 2 puissance n+1 (poids) zeros ou de uns
if((bit==1)&&(i==nsequence)) {
bit=0;
}
}
i=0;
}
max=max_ligne;
ligne=0;
colonne++;
}
return element;
}
}



(c'est pour un log qui a partir dune equation logique, donne sa table de verité)

Autres pages sur : code source java

16 Mai 2005 13:22:16

Il y a un problème avec les accolades dans ta première classe.
Exemple:

Citation :

public class table_verite {

int n_var;
char var_C [];
public boolean var_L [];

table_verite(int n){
n_var=n;
var_C=new char[n];
for(int i=0;i<n;i++)
var_C=(char)(97+i);
}
}


Pour le compilateur, la définition de la classe est terminée. Il ne comprend pas la suite...
Il faut que tu revois la disposition de ton code (je te conseille d'utiliser un IDE, c'est plus simple pour visualiser le code).
Si tu veux mettre la classe Binaire_reflechi (en principe, les noms de classes commencent par une majuscule) dans le même fichier, il faut l'integrer à la classe principale.
Je te conseille de la mettre dans un fichier à part, la encore c'est plus simple (tu auras un fichier .java et .class pour chaque classe).

Je peux te conseiller aussi de déclarer toutes les variables qui seront utilisées dans les méthodes de la classe au début de la classe, c'est plus lisible.

Les méthodes, il faudrait leur donner un attribut public, private ou protected:
public boolean logique()
et la méthode table_verite() ne retourne rien, il faut mettre le mot clé void:
public void table_verite()
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS