Programmation langage C - Conditionnelle
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Programmation langage C - Conditionnelle



  1. #1
    invite3365ab5e

    Programmation langage C - Conditionnelle


    ------

    Bonjour ,
    Quelqu'un peu m'expliquer ce qu'il faut faire dans ce sujet s'il vous plaît ?


    Affichez le plus grand parmi trois nombres réels. Au choix vous les saisirez ou les initialiserez avec differentes
    valeurs ( et dans ce dernier cas vous recompilerez votre projet) pour tester votre programme sur plusieurs cas.

    Au lieu d'afficher le résultat vous pouvez écrire une assertion de la forme
    assert(max == 5.2); // vérifie que max vaut bien 5.2

    L'inclusion <assert.h> devra alors être ajoutée avant la fonction main ( ).

    Une insertion interrompt l'éxécution du programme avec un message d'errer si elle est fausse.
    Hélas, pour comprarer deux réels il est vivement conseillé de prévoir une marge d'erreur et d'écrire plutôt:
    double marge = 0.0001 ; // par exemple
    | max-5.2 | < marge (1)

    Rappel : |x| = -x si x<0 sinon x

    Exprimer (1) sous forme d'une expression booléeenne

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Programmation langage C - Conditionnelle

    Bonjour,

    D'après ce que je comprend, vous devez définir trois réels initialisés à trois valeurs différentes (celles que vous voulez). Il s'agit ensuite de déterminer lequel est le plus grand et l'afficher. Comme votre titre contient le mot "conditionnelle", je suppose que vous devez utiliser pour cela les opérateurs de comparaison et l'instruction "if".

    Par contre, je ne comprend pas bien pourquoi on vérifie que la variable "max" vaut (aux erreurs d'arrondis près) 5.2 ou non. Est-ce que l'énoncé que vous avez écrit est complet ?

  3. #3
    invite3365ab5e

    Re : Programmation langage C - Conditionnelle

    Donc je prend prend 3 réel comme le float ou le double ? et puis à quoi me sert le assert(max == 5.2) ?
    Oui je dois utilisé "if" .

    Et oui l'énoncé est complet.

  4. #4
    Paraboloide_Hyperbolique

    Re : Programmation langage C - Conditionnelle

    Citation Envoyé par Keshiru Voir le message
    Donc je prend prend 3 réel comme le float ou le double ?
    Si l'énoncé ne le précise pas, je choisirais l'un ou l'autre.

    Pour la question, commencez avec deux réels. Comment feriez-vous pour déterminer lequel est le plus grand ?

    Citation Envoyé par Keshiru Voir le message
    et puis à quoi me sert le assert(max == 5.2) ?
    C'est la question que je me posais (et que je me pose toujours). A priori, il n'y a aucune raison à ce que le maximum vaille 5.2, à moins que l'énoncé ne précise quelque chose à ce propos (d'où ma question de savoir si l'énoncé était complet).

    Citation Envoyé par Keshiru Voir le message
    Et oui l'énoncé est complet.
    Ok. En l'état je ne peux pas deviner ce que le professeur a en tête (ma boule de cristal est en réparation).

  5. A voir en vidéo sur Futura
  6. #5
    invite3365ab5e

    Re : Programmation langage C - Conditionnelle

    Bah pour commencer si je prend le float, il sera codé sur alors 4octecs.
    Je demanderais à l'utilisateur de saisir les nombres puis il suffit de les comparer comme par exemple
    si a > b , afficher a ou si a<b , afficher b .
    Ce serait ça non ?


    Puis il me dit "au lieu d'afficher le résultat vous pouvez écrire une assertion de la forme assert (max == 5.2 )". Ce que j'ai compris là c'est au lieu de faire printf("%d",a \n) par exemple je doit utilisé cela ? ce que je ne comprend pas. Déjà que je ne sais pas à quoi il sert l'assertion.

  7. #6
    Paraboloide_Hyperbolique

    Re : Programmation langage C - Conditionnelle

    Citation Envoyé par Keshiru Voir le message
    Je demanderais à l'utilisateur de saisir les nombres puis il suffit de les comparer comme par exemple
    si a > b , afficher a ou si a<b , afficher b .
    Ce serait ça non ?
    Presque, oui. On pourrait avoir le cas a == b. Dans ce cas vous n'affichez rien, alors qu'il faudrait afficher a ou b (peut importe quand a == b).

    Pour chercher le maximum entre 3 valeurs (a, b, c), une manière de faire est de stocker le maximum trouvé ci-dessus dans une nouvelle variable. Il suffit ensuite de comparer cette nouvelle variable à c.


    Citation Envoyé par Keshiru Voir le message
    Puis il me dit "au lieu d'afficher le résultat vous pouvez écrire une assertion de la forme assert (max == 5.2 )". Ce que j'ai compris là c'est au lieu de faire printf("%d",a \n) par exemple je doit utilisé cela ? ce que je ne comprend pas. Déjà que je ne sais pas à quoi il sert l'assertion.
    Je ne comprend pas non-plus pourquoi il est nécessaire ici d'utiliser une assertion. Ah, ma boule cristal (réparée) me dit qu'il ne s'agirait de tester si le maximum trouvé ne dépasse pas une certaine valeur seuil (à savoir 5.2).

    Une assertion reçoit en argument "vrai" ou "faux". Si la valeur reçue est "faux", alors l'assertion cause l'arrêt (brutal) du programme. Si la valeur est "vrai" alors l'assertion ne fait rien et le programme continue de se dérouler normalement.

    Une assertion sert souvent à tester si des conditions sont respectées. Par exemple "assert(a < 3)" causera l'arrêt du programme si a >= 3.

  8. #7
    invite3365ab5e

    Re : Programmation langage C - Conditionnelle

    Ah d'accord , merci beaucoup vous m'aviez beaucoup aider
    Une dernière question , est que je dois mettre les condition en en expression booléenne dans l'assertion ? Du genre assert(a<b || a>b && ...) par exemple ?

  9. #8
    Paraboloide_Hyperbolique

    Re : Programmation langage C - Conditionnelle

    Il n'y a pas "une" manière de réaliser ce qui est demandé mais, oui, vous pouvez faire ce genre de chose (tant que le résultat final retourné est une valeur booléenne.)

  10. #9
    invite3365ab5e

    Re : Programmation langage C - Conditionnelle

    D'accord merci beaucoup pour votre aide

  11. #10
    inviteb9f49292

    Re : Programmation langage C - Conditionnelle

    si tu es sous linux, "man assert", sinon google.
    Par contre j'espère que les égalités entre flottant c'est pour vous montrez que c'est une connerie, sinon bah c'est une connerie...

  12. #11
    Paraboloide_Hyperbolique

    Re : Programmation langage C - Conditionnelle

    Citation Envoyé par lou_ibmix_xi Voir le message
    si tu es sous linux, "man assert", sinon google.
    Par contre j'espère que les égalités entre flottant c'est pour vous montrez que c'est une connerie, sinon bah c'est une connerie...
    En effet, c'est le but de l'exercice il me semble...

Discussions similaires

  1. Langage de programmation
    Par invite9ee247df dans le forum Électronique
    Réponses: 231
    Dernier message: 19/05/2014, 15h32
  2. Programmation langage C
    Par invitefcb2a4e5 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 01/01/2014, 16h24
  3. Programmation en langage C
    Par inviteb67d1210 dans le forum Électronique
    Réponses: 3
    Dernier message: 27/04/2013, 19h50
  4. Langage de programmation par Google
    Par yoda1234 dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 04/04/2012, 17h17
  5. programmation pic en langage C
    Par invite313e8f19 dans le forum Électronique
    Réponses: 3
    Dernier message: 06/03/2012, 15h29