Fourier

bellabella13 - 28 oct. 2012 à 00:47
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 28 oct. 2012 à 13:59
Bonjour tout le monde voila j'ai un problème au niveau de mon code ,ce qui fait que ça compile pas .


#include <stdio.h>
#include
#include <math.h>
#define NDATAMAX 10000
#define PI 3.141592653589793238462643383279
int main (void)
{
/* Ce programme est un exemple de lecture de fichier */
/* Declarations ----------------------------------- */

int ndata=0 ;
int j ,l ;
float suma, sumb ;
double t[NDATAMAX], di[NDATAMAX] ;
FILE *fd ;
float xmin, ymin, xmax, ymax ;
double calcula (double t, double di, double w) ;
double a[NDATAMAX], b[NDATAMAX] , p[NDATAMAX], w[NDATAMAX] ;
double calculb (double t, double di, double w) ;
double omegao, omegac, kc ;
double h =10. ;
double T ;
/* Executable --------------------------------------- */

fd=fopen("G117-B15A.dat","r") ;
while ( !feof(fd) && ndata < NDATAMAX )
{
fscanf (fd, "%1f %f\n", &t[ndata], &di[ndata] );
printf ("%f %f", t[ndata], di[ndata]);

ndata+=1 ;
}
T= t[ndata-1] ;
kc = T/(2*h) ;
omegac= PI/h ;
for (l=0 ;l<kc ;l++)
{

omegao = (2*PI)/T ;
suma = 0.;
sumb = 0. ;
w[1] = l*omegao ;
a[l]=suma ;
b[l]=sumb ;
p[l]=sqrt(a[l]*a[l]+b[l]*b[l]) ;

for (j=0 ;j < ndata ;j++)
suma+=0.5 *(calcula (t[j])+calcula(w[1])+calcula T)*(t[j]-w[1]) ;
sumb+=0.5 *(calculb (t[j])+calculb(W[1])+calculb T)*(t[j]-w[1]) ;
}



if ( ndata== NDATAMAX ){ printf ("NDATAMAX atteint\n") ;}
fclose(fd) ;




plinit() ;


int just ,style ;

xmin=1. ; xmax=30000. ;
ymin=-0.05 ; ymax =0.05 ;
just=0 ; style =1 ;
plenv(xmin, xmax, ymin, ymax, just, style) ;
pllab("t","di","Graphique ") ;

printf ("di=%f\tt=%f\n",t[NDATAMAX], di[NDATAMAX] );

plline (ndata ,t , di ) ;
plend() ;



double calcula (double t,double w, double T )
{
a[l] = f(t)*cos(w*T) ;
f(t)= (2/T)*(3*sin(2*PI*t)/500)+5*cos((2*PI*t)/200) ;

return f(t)*cos(w*T) ;
}
double calculb (double t,double w, double T )
{

b[l]= f(t)*cos(w*T) ;
f(t)= (2/T)*(3*sin(2*PI*t)/500)+5*cos((2*PI*t)/200) ;
return f(t)*cos(w*T) ;
}
}

voici ce que j'ai comme erreur ,merci d'avance pour votre aide .
code5.c:48: error: too few arguments to function ‘calcula’
code5.c:48: error: too few arguments to function ‘calcula’
code5.c:48: error: expected ‘)’ before ‘T’
code5.c:49: error: too few arguments to function ‘calculb’
code5.c:49: error: ‘W’ undeclared (first use in this function)
code5.c:49: error: (Each undeclared identifier is reported only once
code5.c:49: error: for each function it appears in.)
code5.c:49: error: too few arguments to function ‘calculb’
code5.c:49: error: expected ‘)’ before ‘T’
code5.c:78: error: static declaration of ‘calcula’ follows non-static declaration
code5.c:17: error: previous declaration of ‘calcula’ was here
code5.c: In function ‘calcula’:
code5.c:81: error: lvalue required as left operand of assignment
code5.c: In function ‘main’:
code5.c:85: error: static declaration of ‘calculb’ follows non-static declaration
code5.c:19: error: previous declaration of ‘calculb’ was here
code5.c: In function ‘calculb’:
code5.c:89: error: lvalue required as left operand of assignment

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
28 oct. 2012 à 02:24
Bonjour,

C# n'est pas C, je déplace sur le forum cppfrance.com.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
28 oct. 2012 à 10:48
Bonjour

"code5.c:48: error: too few arguments to function ‘calcula’ "
ton compilateur te signale déjà que tu as une erreur dans la fonction calcula :
elle est appelée avec un nombre de paramètres incorrect
et il t'indique la ligne : 48
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
28 oct. 2012 à 13:59
Hello,

double calcula (double t, double di, double w) ; 
double a[NDATAMAX], b[NDATAMAX] , p[NDATAMAX], w[NDATAMAX] ; 
double calculb (double t, double di, double w) ; 


On ne déclare pas de méthode dans une méthode! Il faut les sortir de ton main()...

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous