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 :

Pointeurs de fonctions!


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Pointeurs de fonctions!
    Perdue dans les pointeurs de fonctions, j'ai l'impression que tout devrai marcher, cherchez l'erreur ...
    Mon programme consiste à integrer une fonction à l'aide de la fonction rectangle, je dois pouvoir choisir entre deux fonctions creneau et une autre qui deviendront un argument de la fonction rectangle.

    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
    // programme principal
    int a,b,n=100;
     	  double x;
     	  double(*p_creneau)(int x);
    	  p_creneau=creneau ;
    	  a = p_creneau(6);
    	  printf("%f\n",p_creneau(6));
    int A = rectangle(p_creneau,0,6,n);
    printf("rectangle = %d    ", A );
     
    //fonctions
    /* création de la fonction créneau*/
    double creneau (int x)
    {
     x=6;
     return x;  	
    }
     
    /*fonction pour integrer avec la méthode rectangle*/
    double rectangle ( double (*f)(), int a, int b, int n)
    {
     	   int i=0,A=0;
     	   float test;
     	   for(i=0;i<n;i++)
     	   {test=(b-a)/n;
     	   A=A+ test;
     	   printf("%d \n",test);
           A=A + f(a+i*(b-a)/n);}
     	   return A;

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par marine59
    Perdue dans les pointeurs de fonctions, j'ai l'impression que tout devrai marcher, cherchez l'erreur ...
    Mon programme consiste à integrer une fonction à l'aide de la fonction rectangle, je dois pouvoir choisir entre deux fonctions creneau et une autre qui deviendront un argument de la fonction rectangle.
    Ce code est extrêmement incomplet... Il ne compile pas du tout...

    Ceci compile, mais je ne suis pas sûr que ce code ait le moindre sens...

    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
     
    #include <stdio.h>
     
    //fonctions
    /* création de la fonction créneau*/
    double creneau (int x)
    {
       x = 6;
       return x;
    }
     
    /*fonction pour integrer avec la méthode rectangle*/
    double rectangle (double (*f) (int x), int a, int b, int n)
    {
       int i = 0, A = 0;
       float test;
       for (i = 0; i < n; i++)
       {
          test = (b - a) / n;
          A = A + test;
          printf ("%f \n", test);
          A = A + f (a + i * (b - a) / n);
       }
       return A;
    }
     
    // programme principal
    int main (void)
    {
       double (*p_creneau) (int x);
       p_creneau = creneau;
       {
          int a;
          a = p_creneau (6);
          printf ("a = %d ", a);
       }
       {
          int n = 100;
          int b = rectangle (p_creneau, 0, 6, n);
          printf ("rectangle = %d ", b);
       }
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par marine59

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    /*fonction pour integrer avec la méthode rectangle*/
    double rectangle ( double (*f)(), int a, int b, int n)
    tu dois spécifier le prototype complet de ta fonction f

    double f(int) ? double f(void) ? etc... mais pas double f()

    Et, comme l'a dit Emmanuel, essaye de nous donner un code complet.

Discussions similaires

  1. opengl et pointeur de fonction
    Par Oldhar dans le forum C
    Réponses: 5
    Dernier message: 06/11/2003, 23h56
  2. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37
  3. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03
  4. [Kylix] Pointeur de fonctions
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 03/07/2003, 10h17
  5. pointeur de fonction
    Par kardath dans le forum C
    Réponses: 4
    Dernier message: 28/12/2002, 14h39

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