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: expected ')' before '*' token


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut error: expected ')' before '*' token
    désolée de poster ça mais je vois pas l'erreur quelqu’un peut m'aider :
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
     #include <stdlib.h>
    #include <stdio.h>
    #include <assert.h>
     
     
    double calcIndicatorValue(sac* p_ind_a, sac* p_ind_b, int indicator, double rhot, int nbfcts, range* bounds);
     
     
    double calcHypervolume(sac *p_ind_a, sac *p_ind_b, int nbfcts)
    /* calculates the hypervolume of that portion of the objective space that
       is dominated by individual a but not by individual b */
    {
        double a, b, r, max;
        double volume = 0;
     
        r = rhot * (bounds[nbfcts - 1].max - bounds[nbfcts - 1].min);
        max = bounds[nbfcts - 1].min + r;
     
        assert(p_ind_a != NULL);
        a = p_ind_a->profit[nbfcts - 1];
        if (p_ind_b == NULL)
    	b = max;
        else
    	b = p_ind_b->profit[nbfcts - 1];
     
        assert(nbfcts > 0);
        if (nbfcts == 1)
        {
    	if (a < b)
    	    volume = (b - a) / r;
    	else
    	    volume = 0;
        }
        else
        {
    	if (a < b)
    	{
    	    volume = calcHypervolume(p_ind_a, NULL, nbfcts - 1) *
    		(b - a) / r;
    	    volume += calcHypervolume(p_ind_a, p_ind_b, nbfcts - 1) *
    		(max - b) / r;
    	}
    	else
    	{
    	    volume = calcHypervolume(p_ind_a, p_ind_b, nbfcts - 1) *
    		(max - b) / r;
    	}
        }
     
        return (volume);
    }
     
    double calcHypervolumeIndicator(sac *p_ind_a, sac *p_ind_b, int nbfcts){
      if (dominates(p_ind_a, p_ind_b))
      return -calcHypervolume(p_ind_a, p_ind_b, nbfcts);
      else return calcHypervolume(p_ind_b, p_ind_a, nbfcts);
    }
     
    double calcAddEpsIndicator(sac *p_ind_a, sac *p_ind_b)
    /* calculates the maximum epsilon value by which individual a must be
       decreased in all objectives such that individual b is weakly dominated */
    {
        int i;
        double r;
        double eps = 0;
     
        r = bounds[0].max - bounds[0].min;
        eps = (p_ind_a->profit[0] - bounds[0].min) / r -
    	(p_ind_b->profit[0] - bounds[0].min) / r;
        for (i = 1; i < nbfcts; i++)
        {
    	double temp_eps;
     
    	r = bounds[i].max - bounds[i].min;
    	temp_eps = (p_ind_a->profit[i] - bounds[i].min) / r -
    	    (p_ind_b->profit[i] - bounds[i].min) / r;
    	if (temp_eps > eps)
    	    eps = temp_eps;
        }
     
        return (eps);
    }
     
    double calcBentleyIndicator(sac *a, sac *b){
     /* 1 if a dominates b 0 otherwise
         to be used with indicator_merge=0! */
      int i;
      float res=0.0;
      for (i=0; i<nbfcts; i++)
        if (a->profit[i]<b->profit[i]) res-=1.0;
        else if (a->profit[i]==b->profit[i]) res-=0.5;
      return res;
    }
     
    double calcFonsecaIndicator(sac *a, sac *b){
      /* 1 if a dominates b 0 otherwise
         to be used with indicator_merge=0! */
      if (dominates(a,b)) return -1; else return 0;
    }
     
    double calcDebIndicator(sac *a, sac *b){
      /* fit(a)+1 if a dominates b fit(b) otherwise
         to be used with indicator_merge=2! */
      if (dominates(a,b)) return a->fitness-1; else return max_value;
    }
     
    double calcZitzlerIndicator(sac *a, sac *b){
      /* 1 if b dominates a 0 otherwise
         to be used with indicator_merge=0! */
      if (dominates(b,a)) return 0; else return -1;
    }
     
    double calclex1Indicator(sac *a, sac *b){
      if ((a->profit[0]<b->profit[0]) || ((a->profit[0]==b->profit[0])&&(a->profit[1]<b->profit[1]))) return -1;
      else return 0;
    }
     
    double calclex2Indicator(sac *a, sac *b){
      if ((a->profit[1]<b->profit[1]) || ((a->profit[1]==b->profit[1])&&(a->profit[0]<b->profit[0]))) return -1;
      else return 0;
    }
     
    double calcIndicatorValue(sac *p_ind_a, sac *p_ind_b, int indicator, float r, int d, range *b){
        rho=r;
        dim=d;
        bounds=b;
        if (indicator == 0) return calcAddEpsIndicator(p_ind_a,p_ind_b);
        else if (indicator == 1) return calcHypervolumeIndicator(p_ind_a,p_ind_b,nbfcts);
        else if (indicator == 2) return calcBentleyIndicator(p_ind_a,p_ind_b);
        else if (indicator == 3) return calcFonsecaIndicator(p_ind_a,p_ind_b);
        else if (indicator == 4) return calcDebIndicator(p_ind_a,p_ind_b);
        else if (indicator == 5) return calcZitzlerIndicator(p_ind_a,p_ind_b);
        else if (indicator == 6) return calclex1Indicator(p_ind_a,p_ind_b);
        else if (indicator == 7) return calclex2Indicator(p_ind_a,p_ind_b);
        else return 0;
    }
    le compilateur me sort 11 erreurs de type : error: expected ')' before '*' token
    a chaque déclaration de fonction lignes : 6,9,53,59,84,95,101,107,113,118,123

  2. #2
    Membre éprouvé
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 417
    Points : 1 248
    Points
    1 248
    Par défaut
    Salut,

    Ton type sac n'est pas défini. Tu as surement oublié d'inclure un .h. Il est également probable que le type range ne soit pas défini lui aussi.

    A+

  3. #3
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 860
    Points : 2 197
    Points
    2 197
    Par défaut
    Au lieu d'avoir un gros if, else if, else if, (...), else bien deguelasse tu ferais mieux d'utiliser un switch.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Il faudrait que tu nous donne les autres parties de ton code, car l'erreur n'est pas (je crois) dans ce fichier.
    Avec tes headers aussi, si tu en as.

    Cordialement.

Discussions similaires

  1. error: expected ']' before ';' token
    Par bertry dans le forum Débuter
    Réponses: 3
    Dernier message: 27/03/2015, 11h13
  2. erreur: expected ‘)’ before ‘*’ token
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 12/10/2010, 22h24
  3. Réponses: 5
    Dernier message: 01/02/2010, 15h06
  4. "expected ';' before '(' token" étrange
    Par argonath dans le forum C++
    Réponses: 10
    Dernier message: 31/01/2010, 13h11
  5. Réponses: 1
    Dernier message: 21/03/2009, 17h04

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