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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    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
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    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;
    }

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    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