Información

Autor(es) Olivier Bonaventure
Fecha de entrega Sin fecha de envío
Tiempo límite de envío Sin límite de envío

Inicia sesión

Comparaison de fonctions

Parfois il est intéressant de comparer le résultat de fonctions sans nécessairement savoir quel est le code de ces fonctions. Dans cet exercice, vous devez écrire une fonction compare qui reçoit comme arguments un intervalle fermé et deux pointeurs vers des fonctions qui retournent chacune un entier.


Pregunta 1: Corps de la fonction compare

Pour illustrer cette fonction compare, considérons les fonctions identite et abs:

int identite(int x) { return x; }
int abs(int x) {
  if (x>=0)
      return x;
  else
     return -x;
}

Dans l'intervalle [0,2] (min=0, max=2), compare retourne la valeur 3 lorsque elle est appliquée aux fonctions identite et abs. Dans l'intervalle [-1,1] (min=-1, max=1), elle retourne 2 lorsqu'elle est appliquée aux mêmes fonctions.

Proposez le corps de la fonction compare dont la spécification est reprise ci-dessous:

/*
 * @pre min<max, f1!=NULL, f2!=NULL
 * @post applique les fonctions f1 et f2 à tous les entiers dans l'intervalle fermé [min,max]
 *       et retourne le nombre de fois où ces deux fonctions donnent le même résultat
 */
int compare(int min, int max, int f1(int), int f2(int)) {
Pregunta 2: Fonctions supplémentaires

Insérez ici les fonctions supplémentaires éventuelles dont vous avez besoin.

Pregunta 3: Fonction de test

Insérez votre code de test optionnel ci-dessous. Vous pouvez utiliser printf dans cette fonction pour débugger votre programme.

void test_func(void) {