IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

error 2064 / fonction a plusieurs arguments


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Par défaut error 2064 / fonction a plusieurs arguments
    bonjour,
    dans le cadre de mes études je travail actuellement sur un programme en C permettant de calculer un certain nombre de chose ... afin d'obtenir la modelisation mathematique de la trace d'un satellite en orbite terrestre.

    Ceci etant dit, j'ai pratiquement terminer mon programme mas la fonction principal dont j'ai besoin ne fonctionne pas ... le compilateur m'affiche "error C2064: le terme ne correspond pas à une fonction qui prend 1 arguments" (visual studio express 2008)

    voici le code source:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<stdarg.h>
     
    void main()
    {
     
    float sqrt(float);				//initialisation de la fonction racine
    double pow(double,int);			//initialisation de la fonction puissance
    double cos(double);				//initialisation de la fonction cosinus
    double sin(double);				//initialisation de la fonction sinus
    double tan(double);				//initialisation de la fonction tangente
     
    float a=0;						// rayon de l'orbite
    float e=0;						// exentricité
    float v=0;						// point de l'orbite d'anomalies vraie
    int n=0;						// nombre de v à saisir
    float i=0;						// inclinaison
    float w=0;	
    float la=0;						// latitude
     
    float TP=0;						//fonction TP de base
    float tp=0;						//temp de passage au périgée
     
    int mu=398600;					// parametre definie dans le TD 
    float tableau[28][4];			// tableau des resultats de t, tp, longitude, et latitude
     
    float A=0;						//élément A de l'expression de TP
    float B=0;						//élément B de l'expression de TP
    float C=0;						//élément C de l'expression de TP
     
     
     
     
    printf(" calcul de t a different point de l'orbite \n");
    printf(" veuillez saisir le rayon de a l'orbite \n");
    scanf("%d",&a);
    printf(" veuillez saisir le parametre 'e' de l'orbite \n");
    scanf("%d",&e);
    printf(" veuillez saisir l'inclinaison 'i'\n");
    scanf("%d",&i);
    printf("veuillez saisir le parametre 'w'\n");
    scanf("%d",&w);
     
    A=sqrt(1-pow(e,2))*sin(v);
    B=1+e*cos(v);
    C=sqrt(pow(a,3)/mu);
     
    TP=(C)(asin(A/B)-e(A/B));				//fonction TP de base
    tp=TP;									//permet de determiner le tp (pour v=0)
     
    do
    {
    	printf(" veuillez saisir un point de l'orbite V different \n");
    	scanf("%d",&v);
    	n++;
    		if(v>=120)
    		{								//correction a apporter pour v>=120
    			tableau[n-1][0]=v;
    			tableau[n-1][1]=TP-tp;
    		}
    		else	
    		{
    					if(v<=120)			//correction a apporter lorsque v<=-120
    						{
    						tableau[n-1][0]=v;
    						tableau[n-1][1]=TP-tp;
    						}
    					else				//aucune correction 
    						{
    						tableau[n-1][0]=v;
    						tableau[n-1][1]=TP-tp;
    						}
    		}
    	la=pow(sin(sin(w+v)*sin(i)),-1);							//calcul de la latitude
    	tableau[n-1][2]=la;
    	tableau[n-1][3]=pow(sin((tan(la))/(tan(i))),-1);			//calcul de la longitude
    	}while(n!=28);												//fin de la boucle aprés 28 saisie de V
     
    printf("affichage du tableau\n");
    printf(" résultats des calcul, %d\n",tableau[28][4]);
    getchar();
    }
    j'ai essayer de crée une fonction pour ce fameux TP le même message d'erreur revient ...

    De plus j'aimerai savoir si il est possible d'afficher en entier le tableau des resultats avec un printf tout simplement ...

    voila j'éspere que quelqu'un pourra m'aider

    merci d'avance

  2. #2
    Membre éclairé Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par défaut
    Une première observation, le code se met entre des balises appropriées et s'indente, ce qui permet de l'afficher ainsi sur le forum et de rendre sa lecture plus agréable, augmentant ainsi les chances d'avoir une réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <stdarg.h>
     
    int main()
    {
     
      //float sqrt(float); //initialisation de la fonction racine
      //double pow(double,int); //initialisation de la fonction puissance
      double cos(double); //initialisation de la fonction cosinus
      double sin(double); //initialisation de la fonction sinus
      double tan(double); //initialisation de la fonction tangente
     
      float a=0; // rayon de l'orbite
      float e=0; // exentricité
      float v=0; // point de l'orbite d'anomalies vraie
      int n=0; // nombre de v à saisir
      float i=0; // inclinaison
      float w=0;
      float la=0; // latitude
     
      float TP=0; //fonction TP de base
      float tp=0; //temp de passage au périgée
     
      int mu=398600; // parametre definie dans le TD
      float tableau[28][4]; // tableau des resultats de t, tp, longitude, et latitude
     
      float A=0; //élément A de l'expression de TP
      float B=0; //élément B de l'expression de TP
      float C=0; //élément C de l'expression de TP
     
     
     
     
      printf(" calcul de t a different point de l'orbite \n");
      printf(" veuillez saisir le rayon de a l'orbite \n");
      scanf("%f",&a);
      printf(" veuillez saisir le parametre 'e' de l'orbite \n");
      scanf("%f",&e);
      printf(" veuillez saisir l'inclinaison 'i'\n");
      scanf("%f",&i);
      printf("veuillez saisir le parametre 'w'\n");
      scanf("%f",&w);
     
      A=sqrt(1-pow(e,2))*sin(v);
      B=1+e*cos(v);
      C=sqrt(pow(a,3)/mu);
     
      TP=(C)*(asin(A/B)-e*(A/B)); //fonction TP de base
      tp=TP; //permet de determiner le tp (pour v=0)
     
      do
        {
          printf(" veuillez saisir un point de l'orbite V different \n");
          scanf("%f",&v);
          n++;
          if(v>=120)
            { //correction a apporter pour v>=120
              tableau[n-1][0]=v;
              tableau[n-1][1]=TP-tp;
            }
          else
            {
              if(v<=120) //correction a apporter lorsque v<=-120
                {
                  tableau[n-1][0]=v;
                  tableau[n-1][1]=TP-tp;
                }
              else //aucune correction
                {
                  tableau[n-1][0]=v;
                  tableau[n-1][1]=TP-tp;
                }
            }
          la=pow(sin(sin(w+v)*sin(i)),-1); //calcul de la latitude
          tableau[n-1][2]=la;
          tableau[n-1][3]=pow(sin((tan(la))/(tan(i))),-1); //calcul de la longitude
        }
      while(n!=28);  //fin de la boucle aprés 28 saisie de V
     
      printf("affichage du tableau\n");
      printf(" résultats des calcul, %lf\n",tableau[28][4]);
      getchar();
     
      return 0;
    }
    J'ai modifié légèrement ton code après l'avoir indenté, juste pour permettre une compilation correcte, mais sans chercher à en analyser le fonctionnement, la démarche de développement ou la validité des formules utilisées :

    - suppression des deux redéclarations des fonctions pow() et sqrt()
    - correction des scanf pour faire correspondre le type attendu avec celui de la variable, soit un float et non un int
    - correction du dernier printf pour faire correspondre le type attendu avec celui de la variable, soit un double
    - correction de la formule en ajoutant deux * afin de gérer la multiplication mathématiquement implicite mais qui doit être explicite en C (si c'est bien une multiplication que tu voulais faire).

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Par défaut
    parfait merci
    (je venez de lire le message sur les balises au moment ou j'ai reçu la reponse )

    le programme tourne, mais est-ce que j'ai la possibiliter d'afficher le tableau en entier ou il faut demander à l'operateur de saisir quelle case il faut afficher ?

  4. #4
    Membre éclairé Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par défaut
    Pour afficher le tableau complet, tu peux par exemple utiliser une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      printf("affichage du tableau\nresultats des calculs : \n\n");
      for (n=0; n<28; n++)
        {
          printf("point %2d : %f, %f, %f, %f\n",n+1,tableau[n][0],tableau[n][1],tableau[n][2],tableau[n][3]);
        }
    Je te précise encore une fois que je n'ai pas analysé ton code, mais il y a certainement dedans des valeurs à sécuriser et à encadrer.
    J'ai vu aussi que tu évitais les accents et je suppose que c'est parce que tu as un problème d'encodage à l'affichage sur console ... à corriger car lire du français sans accent, ce n'est pas très agréable !

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Par défaut
    J'ai toujours eu du mal avec les accents, alors le probleme d'encodage m'arranger bien ... lol

    il me semblait bien qu'une boucle etait la meilleur solution merci pour l'aide tout est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Prototype] Ajax.Request et onSuccess : appel de fonction avec plusieurs arguments
    Par gregbond dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 18/10/2012, 17h00
  2. fonction a plusieurs arguments.
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/08/2008, 17h05
  3. passer plusieurs argument à une fonction callback
    Par Z-fly dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 04/07/2008, 18h05
  4. Réponses: 2
    Dernier message: 23/05/2008, 18h45
  5. Réponses: 3
    Dernier message: 25/07/2006, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo