Recherche erreur syntaxique - Java - Programmation
Marsh Posté le 10-09-2007 à 12:12:41
et en lisant les messages d'erreur du compilateur, ca t'aide pas ?
Marsh Posté le 10-09-2007 à 12:12:53
ne nous donne surtout pas le message d'erreur lors de la compilation
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
Marsh Posté le 10-09-2007 à 12:18:36
 
 le nom des variables
Code :
  | 
une } en trop
je connais pas ce genre d'indentation, ça a un nom ? ![[:pingouino] [:pingouino]](https://forum-images.hardware.fr/images/perso/pingouino.gif)
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++)                                
 
  {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; 
      } 
} 
Marsh Posté le 10-09-2007 à 12:23:00
ReplyMarsh Posté le 10-09-2007 à 12:25:21
| Jamian a écrit : mais ca fait suite à la { de:   | 
 
non, c'est } a coté de return A la fin de la méthode donc après...
Marsh Posté le 10-09-2007 à 12:26:15
ReplyMarsh Posté le 10-09-2007 à 12:27:40
| Jamian a écrit :    | 
 
Je ne les trouves pas super explicite. 
 
B & C aurait comme nom titi & tata, ça me ferait le même effet je crois.
Marsh Posté le 10-09-2007 à 12:31:07
ReplyMarsh 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 :
  | 
 
trop tôt 
 
soit tu as oublié de mettre 
Code :
  | 
 
dans une méthode
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
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
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;
}
}