Je suis ici pour attirer l'attention sur ce qui me semble être une petite erreur:
Dans le chapitre 'à l'assaut des pointeurs', Le nombre d'heures actuel n'est pas pris en quand le recalcule le nombre d'heures. En effet, la fonction qui sert comme fil rouge dans ce chapitre se contente de redéfinir "heures" comme le nombre de minutes modulo soixante:
*heures = *minutes / 60;
Or, pour bien faire marcher la fonction, ce nombre devrait être ajouté et "heures" ne devrait pas être remplacé par lui.Voici donc la ligne de code telle qu'elle aurait dû être à mon avis:
*heures += *minutes / 60;
Notez bien qu'il faut mettre ce "+" à deux endroits, c'est à dire dans au début et à la fin du chapitre.
J'espère que cela peut être corrigé parce que ce chapitre est tellement bien écrit en dehors de cette petite erreur. À mon avis vous méritez bien quelques plus de plus!
Si je parle de ce code là qui est à la fin du chapitre
void decoupeMinutes(int* pointeurHeures, int* pointeurMinutes);
int main(int argc, char *argv[])
{
int heures = 0, minutes = 90;
// On envoie l'adresse de heures et minutes
decoupeMinutes(&heures, &minutes);
// Cette fois, les valeurs ont été modifiées !
printf("%d heures et %d minutes", heures, minutes);
return 0;
}
void decoupeMinutes(int* pointeurHeures, int* pointeurMinutes)
{
/* Attention à ne pas oublier de mettre une étoile devant le nom
des pointeurs ! Comme ça, vous pouvez modifier la valeur des variables,
et non leur adresse ! Vous ne voudriez pas diviser des adresses,
n'est-ce pas ? ;o) */
*pointeurHeures = *pointeurMinutes / 60;
*pointeurMinutes = *pointeurMinutes % 60;
}
Tout dépend de ta spécification ! Qui te dit que tu es sensé prendre en compte la variable heures ?
Il faut alors lire le "fil rouge", qui est :
> Supposons que je veuille écrire une fonction à laquelle on envoie un nombre de minutes. Celle-ci renverrait le nombre d'heures et minutes correspondantes
Le problème initial était donc le suivant : écrire une fonction qui "renvoie" le nombre d'heures et de minutes à partir d'un nombre de minutes
Le langage C n'a pas de moyen syntaxique d'exprimer ça (au contraire de certains langages comme Ada), mais en terme informatique, on dit que pointeurHeures est une sortie de la fonction, et pointeurMinutes est une entrée-sortie
Bref, tout ça pour dire que la fonction écrire par l'auteur est correcte vis-à-vis de sa spécification. On aurait très bien pu avoir une autre spécification et une autre fonction, mais ça c'est un choix de conception du tutoriel.
> Supposons que je veuille écrire une fonction à laquelle on envoie un nombre de minutes. Celle-ci renverrait le nombre d'heures et minutes correspondantes
Le problème initial était donc le suivant : écrire une fonction qui "renvoie" le nombre d'heures et de minutes à partir d'un nombre de minutes
Le langage C n'a pas de moyen syntaxique d'exprimer ça
> Supposons que je veuille écrire une fonction à laquelle on envoie un nombre de minutes. Celle-ci renverrait le nombre d'heures et minutes correspondantes
Le problème initial était donc le suivant : écrire une fonction qui "renvoie" le nombre d'heures et de minutes à partir d'un nombre de minutes
Le langage C n'a pas de moyen syntaxique d'exprimer ça
Ne serait-il pas plus propre d'utiliser les commentaires doxy ? Cela permet d'avoir accès à la description d'une fonction et de ses arguments lors de la frappe :
Les commentaires de lignes, bien qu'utiles à la description de ce que l'on cherche à faire, nécessitent de se rendre à la ligne de déclaration.
C'est du boulot, mais ça vaut le coût quand le nombre de fonction devient conséquent.
l'opérateur % étant à manipuler avec des pincettes pour des nombres négatifs (non, c'est pas modulo).
petite erreur dans "À l'assaut des pointeurs".
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Bonhomme !! | Jeu de plateforme : Prototype.