Recherche erreur syntaxique

Recherche erreur syntaxique - Java - Programmation

Marsh Posté le 10-09-2007 à 12:09:34    

Bonjour,
 
je recherche une ou plusieurs erreurs dans ce programme de calcul, que je n'arrive pas à compiler :pt1cable: ;
 
 
merci de votre aide!!
 
 
 
Voici le programme:

 
import java.awt.*;
import java.awt.event.*;
import java.math.*;
 
public class Calcul {
  maFonction f;
  monSeuil seuil;
  monRange range;
  double[] B,C;
  int N;
  double T;
 
public Calcul(monSeuil s,monRange r){
  seuil=s;
  range=r;
  N=range.NbPoints;
  T=seuil.valider();
}
 
public void calculer(){
  B=new double[N];
  C=new double[N];
  B=vecteurfonc();
  C=fonctionseuil(B);
  B=nvfonction(C);
}
 
public double valeur(int i){
  double y=B[i];
  return y;
}
 
 
 
 
double[][] mat(){
 
mat=new double[N][N];
 
for(int i=0;i<=N;i++)
  {for(int j=0;j<=N;j++)
    {mat[i][j]=0;}
  }
 
 
for(int i=0;i<=(N/2);i++)
  {mat[i][i*2]=1/Math.sqrt(2);
   mat[i][i*2+1]=1/Math.sqrt(2);
  }
 
int k=0;
 
for(int j=(N/2);j<=N;j++)
  {mat[j][k*2]=1/Math.sqrt(2);
   math[j][k*2+1]=-(1/Math.sqrt(2));
   k=k+1;
  }
  return mat;
 
}
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
  mat=matrice();
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
}
 
 
 
A=new double[N];
for(int i=0;i<=N;i++)
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
 
 
 
 
double[] fonctionseuil(double[] A){
  for(int i=0;i<=N;i++)
    {if(Math.abs(A[i])<T){A[i]=0;};}
   return A;
}
 
 
 
 
double[] nvfonction(double[] A){
  double[][] matt,mat;
  double[] D;
  D=new double[N];
  mat=new double[N][N];
  matt=new double[N][N];
  mat=matrice();
  for(int i=0;i<=N;i++)
     {for(int j=0;j<N;j++)
         matt[i][j]=mat[j][i];}
  for(int i=0;i<=N;i++)
     {double s=0;
      for(int j=0;j<=N;j++)
         {s=s+matt[i][j]*A[j];}
          D[i]=s;
        }
    return D;
      }
}

Reply

Marsh Posté le 10-09-2007 à 12:09:34   

Reply

Marsh Posté le 10-09-2007 à 12:12:41    

et en lisant les messages d'erreur du compilateur, ca t'aide pas ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 10-09-2007 à 12:12:53    

ne nous donne surtout pas le message d'erreur lors de la compilation

Reply

Marsh Posté le 10-09-2007 à 12:18:35    

excusez-moi:
 
Calcul.java:84: <identifier> expected
A=new double[N];
 ^
Calcul.java:85: illegal start of type
for(int i=0;i<=N;i++)
^
Calcul.java:91: <identifier> expected
  return A;
          ^
3 errors

Reply

Marsh Posté le 10-09-2007 à 12:18:36    

[:mullet] le nom des variables

 
Code :
  1. for(int i=1;i<=N;i++)
  2.   {coord[0][i]=range.Xmin+i*pas;
  3.    coord[1][i]=f.valeur(coord[0][i]);
  4.   }
  5. }


une } en trop

 


je connais pas ce genre d'indentation, ça a un nom ? [:pingouino]

Message cité 1 fois
Message édité par zapan666 le 10-09-2007 à 12:23:30

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 12:20:36    


import java.awt.*;
import java.awt.event.*;
import java.math.*;
 
public class Calcul {
  maFonction f;
  monSeuil seuil;
  monRange range;
  double[] B,C;
  int N;
  double T;
 
public Calcul(monSeuil s,monRange r){
  seuil=s;
  range=r;
  N=range.NbPoints;
  T=seuil.valider();
}
 
public void calculer(){
  B=new double[N];
  C=new double[N];
  B=vecteurfonc();
  C=fonctionseuil(B);
  B=nvfonction(C);
}
 
public double valeur(int i){
  double y=B[i];
  return y;
}
 
 
 
 
double[][] mat(){
 
mat=new double[N][N];
 
for(int i=0;i<=N;i++)
  {for(int j=0;j<=N;j++)
    {mat[i][j]=0;}
  }
 
 
for(int i=0;i<=(N/2);i++)
  {mat[i][i*2]=1/Math.sqrt(2);
   mat[i][i*2+1]=1/Math.sqrt(2);
  }
 
int k=0;
 
for(int j=(N/2);j<=N;j++)
  {mat[j][k*2]=1/Math.sqrt(2);
   math[j][k*2+1]=-(1/Math.sqrt(2));
   k=k+1;
  }
  return mat;
 
}
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
  mat=matrice();
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
}
 
 
 
A=new double[N];
for(int i=0;i<=N;i++)                                :85:
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
                               :91:
 
 
 
double[] fonctionseuil(double[] A){
  for(int i=0;i<=N;i++)
    {if(Math.abs(A[i])<T){A[i]=0;};}
   return A;
}
 
 
 
 
double[] nvfonction(double[] A){
  double[][] matt,mat;
  double[] D;
  D=new double[N];
  mat=new double[N][N];
  matt=new double[N][N];
  mat=matrice();
  for(int i=0;i<=N;i++)
     {for(int j=0;j<N;j++)
         matt[i][j]=mat[j][i];}
  for(int i=0;i<=N;i++)
     {double s=0;
      for(int j=0;j<=N;j++)
         {s=s+matt[i][j]*A[j];}
          D[i]=s;
        }
    return D;
      }
}

Reply

Marsh Posté le 10-09-2007 à 12:23:00    

mais ca fait suite à la { de:
 
double[][] vecteurfonc(){

Reply

Marsh Posté le 10-09-2007 à 12:25:21    

Jamian a écrit :

mais ca fait suite à la { de:
 
double[][] vecteurfonc(){


non, c'est } a coté de return A la fin de la méthode donc après...


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 12:26:15    

zapan666 a écrit :

[:mullet] le nom des variables
 


 
 
quid?

Reply

Marsh Posté le 10-09-2007 à 12:27:40    


Je ne les trouves pas super explicite.
 
B & C aurait comme nom titi & tata, ça me ferait le même effet je crois.


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 12:27:40   

Reply

Marsh Posté le 10-09-2007 à 12:31:07    

oui mais bon je vois pas l'erreur de syntaxe

Reply

Marsh Posté le 10-09-2007 à 12:34:09    

Jamian a écrit :

oui mais bon je vois pas l'erreur de syntaxe


soit tu ferme

Code :
  1. double[][] vecteurfonc(){


trop tôt
 
soit tu as oublié de mettre

Code :
  1. A=new double[N];
  2. for(int i=0;i<=N;i++)                                :85:
  3.   {double s=0;
  4.    for(int l=0;l<=N;l++)
  5.      {s=s+mat[i][l]*coord[1][l];}
  6.      A[i]=s;
  7.    }
  8.   return A;
  9. }


dans une méthode


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 12:42:53    

pour la solution un si je fais :
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
  mat=matrice();
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
 
 
 
 
 
 
 
A=new double[N];
for(int i=0;i<=N;i++)
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
 
 
 
j'ai en retour:
 
Calcul.java:24: incompatible types
found   : double[][]
required: double[]
  B=vecteurfonc();
               ^
Calcul.java:39: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
mat=new double[N][N];
^
Calcul.java:43: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
    {mat[i][j]=0;}
     ^
Calcul.java:48: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  {mat[i][i*2]=1/Math.sqrt(2);
   ^
Calcul.java:49: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
   mat[i][i*2+1]=1/Math.sqrt(2);
   ^
Calcul.java:55: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  {mat[j][k*2]=1/Math.sqrt(2);
   ^
Calcul.java:56: cannot resolve symbol
symbol  : variable math  
location: class Calcul
   math[j][k*2+1]=-(1/Math.sqrt(2));
   ^
Calcul.java:59: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  return mat;
         ^
Calcul.java:76: cannot resolve symbol
symbol  : method matrice ()
location: class Calcul
  mat=matrice();
      ^
Calcul.java:96: incompatible types
found   : double[]
required: double[][]
  return A;
         ^
Calcul.java:117: cannot resolve symbol
symbol  : method matrice ()
location: class Calcul
  mat=matrice();
      ^
11 errors

n°1610027
Jamian
Posté le 10-09-2007 à 12:43:24  profilanswer
 

pour la 2 que dois-je faire??

n°1610038
zapan666
Tout est relatif
Posté le 10-09-2007 à 13:09:56  profilanswer
 

Jamian a écrit :


Calcul.java:24: incompatible types
found   : double[][]
required: double[]
  B=vecteurfonc();
               ^


le message est assez explicite
 

Jamian a écrit :


Calcul.java:39: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
mat=new double[N][N];
^
Calcul.java:43: cannot resolve symbol


mat n'est pas déclaré
 

Jamian a écrit :


symbol  : variable mat  
location: class Calcul
    {mat[i][j]=0;}
     ^
Calcul.java:48: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  {mat[i][i*2]=1/Math.sqrt(2);
   ^
Calcul.java:49: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
   mat[i][i*2+1]=1/Math.sqrt(2);
   ^
Calcul.java:55: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  {mat[j][k*2]=1/Math.sqrt(2);
   ^
Calcul.java:56: cannot resolve symbol
symbol  : variable math  
location: class Calcul
   math[j][k*2+1]=-(1/Math.sqrt(2));
   ^
Calcul.java:59: cannot resolve symbol
symbol  : variable mat  
location: class Calcul
  return mat;
         ^
Calcul.java:76: cannot resolve symbol
symbol  : method matrice ()
location: class Calcul
  mat=matrice();
      ^


bah, c'est la même erreur a chaque fois j'ai l'impression
 

Citation :


Calcul.java:96: incompatible types
found   : double[]
required: double[][]
  return A;
         ^
11 errors


cf 1er erreur
 
ça m'a l'air d'etre un truc fait en vitesse tout ça  [:ddr555]


---------------
my flick r - Just Tab it !
n°1610040
Jamian
Posté le 10-09-2007 à 13:10:38  profilanswer
 

Bon j'ai changé pas mal le prog:
 
 
import java.awt.*;
import java.awt.event.*;
import java.math.*;
 
public class Calcul {
  maFonction f;
  monSeuil seuil;
  monRange range;
  double[] A,D;
  double[][] mat;
  int N;
  double T;
 
public Calcul(monSeuil s,monRange r){
  seuil=s;
  range=r;
  N=range.NbPoints;
  T=seuil.valider();
}
 
 
 
 
 
 
double[][] mat(){
 
mat=new double[N][N];
 
for(int i=0;i<=N;i++)
  {for(int j=0;j<=N;j++)
    {mat[i][j]=0;}
  }
 
 
for(int i=0;i<=(N/2);i++)
  {mat[i][i*2]=1/Math.sqrt(2);
   mat[i][i*2+1]=1/Math.sqrt(2);
  }
 
int k=0;
 
for(int j=(N/2);j<=N;j++)
  {mat[j][k*2]=1/Math.sqrt(2);
   mat[j][k*2+1]=-(1/Math.sqrt(2));
   k=k+1;
  }
  return mat;
 
}
 
 
 
 
 
 
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
 
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
 
 
A=new double[N];
for(int i=0;i<=N;i++)
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
 
 
 
 
 
 
 
double[] fonctionseuil(double[] A){
  for(int i=0;i<=N;i++)
    {if(Math.abs(A[i])<T){A[i]=0;};}
   return A;
}
 
 
 
 
double[] nvfonction(double[] A){
  double[][] matt,mat;
  double[] D;
  D=new double[N];
  mat=new double[N][N];
  matt=new double[N][N];
  for(int i=0;i<=N;i++)
     {for(int j=0;j<N;j++)
         matt[i][j]=mat[j][i];}
  for(int i=0;i<=N;i++)
     {double s=0;
      for(int j=0;j<=N;j++)
         {s=s+matt[i][j]*A[j];}
          D[i]=s;
        }
    return D;
      }
}
 
 
 
 
 
j'ai encore une erreur: :cry:  
 
Calcul.java:82: incompatible types
found   : double[]
required: double[][]
  return A;
         ^
1 error

Reply

Marsh Posté le 10-09-2007 à 13:12:49    

utilise la balise code [ code]toncodeici[/code]
 c'est illisible sans

 


Code :
  1. double[][] vecteurfonc(){
  2.   double[] A;
  3.   [...]
  4.   return A;
  5. }


Message édité par zapan666 le 10-09-2007 à 13:17:25

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 13:15:38    

[code]
 
 
import java.awt.*;
import java.awt.event.*;
import java.math.*;
 
public class Calcul {
  maFonction f;
  monSeuil seuil;
  monRange range;
  double[] A,D;
  double[][] mat;
  int N;
  double T;
 
public Calcul(monSeuil s,monRange r){
  seuil=s;
  range=r;
  N=range.NbPoints;
  T=seuil.valider();
}
 
 
 
 
 
 
double[][] mat(){
 
mat=new double[N][N];
 
for(int i=0;i<=N;i++)
  {for(int j=0;j<=N;j++)
    {mat[i][j]=0;}
  }
 
 
for(int i=0;i<=(N/2);i++)
  {mat[i][i*2]=1/Math.sqrt(2);
   mat[i][i*2+1]=1/Math.sqrt(2);
  }
 
int k=0;
 
for(int j=(N/2);j<=N;j++)
  {mat[j][k*2]=1/Math.sqrt(2);
   mat[j][k*2+1]=-(1/Math.sqrt(2));
   k=k+1;
  }
  return mat;
 
}
 
 
 
 
 
 
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
 
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
 
 
A=new double[N];
for(int i=0;i<=N;i++)
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
 
 
 
 
 
 
 
double[] fonctionseuil(double[] A){
  for(int i=0;i<=N;i++)
    {if(Math.abs(A[i])<T){A[i]=0;};}
   return A;
}
 
 
 
 
double[] nvfonction(double[] A){
  double[][] matt,mat;
  double[] D;
  D=new double[N];
  mat=new double[N][N];
  matt=new double[N][N];
  for(int i=0;i<=N;i++)
     {for(int j=0;j<N;j++)
         matt[i][j]=mat[j][i];}
  for(int i=0;i<=N;i++)
     {double s=0;
      for(int j=0;j<=N;j++)
         {s=s+matt[i][j]*A[j];}
          D[i]=s;
        }
    return D;
      }
}
 
[code]

Reply

Marsh Posté le 10-09-2007 à 13:17:37    

l'erreur est au niveau de :
 
double[][] vecteurfonc(){
  maFonction f;
  double[][] mat,coord;
  double[] A;
  double pas=(range.Xmax-range.Xmin)/(N-1);
  f=new maFonction();
  coord=new double[2][N];
  mat=new double[N][N];
 
 
 
for(int i=1;i<=N;i++)
  {coord[0][i]=range.Xmin+i*pas;
   coord[1][i]=f.valeur(coord[0][i]);
  }
 
 
A=new double[N];
for(int i=0;i<=N;i++)
  {double s=0;
   for(int l=0;l<=N;l++)
     {s=s+mat[i][l]*coord[1][l];}
     A[i]=s;
   }
  return A;
}
 
 
 

Reply

Marsh Posté le 10-09-2007 à 13:18:18    

tu dois mettre [/code] pour fermer la balise.

Reply

Marsh Posté le 10-09-2007 à 13:18:57    

l'erreur est au niveau de :

Code :
  1. double[][] vecteurfonc(){
  2.   maFonction f;
  3.   double[][] mat,coord;
  4.   double[] A;
  5.   double pas=(range.Xmax-range.Xmin)/(N-1);
  6.   f=new maFonction();
  7.   coord=new double[2][N];
  8.   mat=new double[N][N];
  9. for(int i=1;i<=N;i++)
  10.   {coord[0][i]=range.Xmin+i*pas;
  11.    coord[1][i]=f.valeur(coord[0][i]);
  12.   }
  13. A=new double[N];
  14. for(int i=0;i<=N;i++)
  15.   {double s=0;
  16.    for(int l=0;l<=N;l++)
  17.      {s=s+mat[i][l]*coord[1][l];}
  18.      A[i]=s;
  19.    }
  20.   return A;
  21. }


 

Reply

Marsh Posté le 10-09-2007 à 13:19:38    

y'a la solution là
http://forum.hardware.fr/hfr/Progr [...] m#t1610041


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-09-2007 à 13:24:42    

??désolé je vois pas ce que je dois changer et/ou supprimer pouvez vous me préciser plus svp merci?

Reply

Marsh Posté le 10-09-2007 à 13:46:58    

bon c'est réparé,  
 
Merci de votre aide à tous!

Reply

Marsh Posté le 18-09-2007 à 16:53:24    

Utilises un environnement de dev (eclipse, Jboss, IntelliJ,...) et les erreurs ainsi que les idée de corrections apparaîssent..

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed

© 2018 Forum. All Rights Reserved.