semaine 3 - input de l'utilisateur

semaine 3 - input de l'utilisateur

by Sophie Sarah Ammann -
Number of replies: 4

Bonjour,

Dans le 2e rendu de la semaine 3, le programme demande à l'utilisateur d'entrer la largeur/hauteur de l'image. Est-ce qu'on pourrait considérer l'entrée "12d" par exemple comme entrée valide et la convertir en 12, puis continuer le programme ?


In reply to Sophie Sarah Ammann

Re: semaine 3 - input de l'utilisateur

by Deleted user -

Bonjour,

Le cours de lundi sur les entrées/sorties vous éclairera sur les bonnes pratiques à adopter pour la gestion d'entrées invalides.  Cela vous sera certainement utile pour le problème que vous décrivez. Vous êtes bien évidemment libre de prendre déjà connaissance du contenu du cours en question.

In reply to Sophie Sarah Ammann

Re: semaine 3 - input de l'utilisateur

by Jean-Cédric Chappelier -

La donnée dit clairement :

>> nous **ne** vous demandons **pas** de traiter le cas d'entrées non entières composées
>> de caractères quelconques

donc pas de « 12d ».
En clair, on ne vous demande pas de rendre plus robuste la fonction `demander_dimension()` que les tests déjà effectués sur `scanf()` (ça ne veut pas dire que cette fonction ne doit pas être corrigée ;-) mais pas sur ça).


In reply to Jean-Cédric Chappelier

Re: semaine 3 - input de l'utilisateur

by Benedek Hauer -
Bonjour,

Suivant la question précédente, j'ai l'impression d'être un peu confus:
En effet pour le Travail à rendre: cas simple, il est précisé dans la consigne que vous ne traiterez pas les entrées non-entières.
Par contre, pour le Travail à rendre: second cas, plus complexe, il n'est pas précisé que vous ne testerez pas les entrées non-entières.
De plus, quand on lance l'exécutable, quand on doit entrer les données, il est marqué (sans aucune correction déjà faite dans le code):  
 "Entrez la largeur de l'image (nombre entier positif, si vous rentrez un nombre a virgule, la partie decimale sera ignoree)"
Est-ce qu'il faut donc traiter les cas où la diagonale/hauteur/largeur est donnée avec un double (donc en ignorant la partie décimale, puis après continuer l'exécution du programme), ou alors stopper l'exécution du programme en recevant un double (ce qui implique que le message d'instruction est incohérent avec ce qu'on doit faire)?

Merci d'avance et bonne fin de journée!


In reply to Benedek Hauer

Re: semaine 3 - input de l'utilisateur

by Jean-Cédric Chappelier -

Ce qu'il faut bien comprendre c'est que c'est la donnée qui fait foi, pas le programme fourni, qui n'est qu'une interprétation très très libre de la donnée (et que vous devez corriger). Il n'est jamais dit (c'est même plutôt le contraire et les prototypes le confirment) que les tailles manipulées doivent être double...
Par contre votre programme doit être robuste ; c'est tout. Si un comportement n'est pas spécifié dans la donnée, tant que le programme ne plante pas, libre à vous de choisir le traitement (adapté) qu'il vous plaît. En clair : si on entre un double, votre programme doit sortir proprement ; libre à vous de choisir comment, mais proprement.