trouver le minimum de deux nombres

yodarkyodark Membre
13:58 modifié dans API AppKit #1
Bonjour,

Petite question comment fait-on pour trouver le minimum entre deux nombres ?
Je sais qu'en java on fait Math.min(2,10) qui va nous retourner 2

Réponses

  • ChachaChacha Membre
    13:58 modifié #2
    dans 1219827132:

    Petite question comment fait-on pour trouver le minimum entre deux nombres ?
    Je sais qu'en java on fait Math.min(2,10) qui va nous retourner 2


    Soit tu utilises la macro MIN(), soit, si tu préfères une fonction, il faut faire la fonction toi-même avec les paramètres du bon type.
    Tu peux aussi renommer ton fichier en .mm (compilé en Objective-C++) pour accéder à  la librarie C++ standard qui te propose std::min().

    +
    Chacha
  • yodarkyodark Membre
    13:58 modifié #3
    macro ? Hum je sais pas ce que c'est... (je suis un peu nouveau  :o )

    j'ai tenté
    double c = 2.0 ; * asin(MIN(1.0, sqrt(a)));

    Ca compile ! Ca devrait marcher juste en mettant la fonction en majuscule y a-t-il une contre partie?
  • ChachaChacha Membre
    13:58 modifié #4
    dans 1219828752:

    macro ? Hum je sais pas ce que c'est... (je suis un peu nouveau  :o )


    Les Macros, ce sont des bestioles pas spécifiques à  Objective-C mais au C tout court. Cela permet (entre autre) "singer" des fonctions pour le préprocesseur C. Mais il y a des effets de bords.

    Voir cette discussion (que j'aurais dû pointer plus tôt :-) ) :
    http://www.objective-cocoa.org/forum/index.php?topic=2709.0

    +
    Chacha
  • Philippe49Philippe49 Membre
    13:58 modifié #5
    Lors de l'utilisation d'une macro en C , il y a substitution de texte dans ton programme avant que la compilation ne se fasse. La macro décrit la substitution de texte que tu veux réaliser en suivant certaines règles syntaxiques définies par le C.

    [size=12pt]Exemple de Code contenant des macros[/size]
    extern int printf(char *,...);
    #define MAX(a,b) ((a)>(b) ? (a) : (b))
    #define ECRIRE(format,truc)  printf(format,truc)

    int main(void){
    int x=5;
    int y=10;
    ECRIRE("%d\n",MAX(x,y));
    return 0;
    }



    A la précompilation, les mots MAX et ECRIRE sont purement et simplement remplacés dans ton code suivant la règle posée dans le #define.
    On peut ne faire exécuter que la précompilation à  l'aide de l'option -E , et ainsi voir ce que devient un code contenant des macros avant d'être compilé.
    [size=12pt]Précompilation[/size]
    % gcc pgm.c -E
    # 1 "pgm.c"
    # 1 "<built-in>"
    # 1 "<command line>"
    # 1 "pgm.c"
    extern int printf(char *,...);

    int main(void){
    int x=5;
    int y=10;
    printf("%d\n",((x)>(y) ? (x) : (y)));
    return 0;
    }


    Voici maintenant la compilation et l'exécution
    [size=12pt]Compilation et Execution[/size]
    % gcc pgm.c -o pgm
    pg% pgm
    10
    % gcc pgm.c -o pgm
    % pgm
    10

    %

    Pour ce qui t'intéresses, les macros MIN et MAX sont déjà  définies (par un #define) dans le fichier d'entêtes c.h, disponible automatiquement dans un projet XCode
  • AliGatorAliGator Membre, Modérateur
    13:58 modifié #6
    Y'a pas les fonctions fmin et fmax (ou fminf et fmaxf ?) dans le C99 et math.h ? Je sais meme plus si c'est du C ou C++ dans math.h, mince  :o
  • Philippe49Philippe49 Membre
    13:58 modifié #7
    fmin et fmax sont des fonctions C de math.h
Connectez-vous ou Inscrivez-vous pour répondre.