Errata

Seules les erreurs marquées d'une astérisque rouge (*) sont importantes, ou empêcheraient les programmes de compiler ou fonctionner. Les petites fautes d'orthographe et de typographie sont regroupées à la fin.

Dernière mise à jour : 10 août 2017

Page 35

Les messages montrés dans l'affichage ne correspondent pas exactement aux instructions montrées. On devrait voir « taxe » au lieu de « TPS ».

Page 42

Dans l'exercice 5, pour rendre bien clair qu'on ne doit pas demander ou tester si la personne prendra sa retraite, on peut remplacer « , si la retraite est prise à 65 ans. » par « . On suppose que la retraite est prise à 65 ans. ».

Page 251*

Il y a un point-virgule de trop à la fin de la première ligne, il faut simplement :

if (nombres.All(n => n % 2 == 0))

Page 266*

Il manque un using static System.String :

using static System.Console;
using static System.String;
using static Utilitaires.Util;

Page 268*

Le type de la variable moyenneDesPommesMangéesParJour devrait être double :

double moyenneDesPommesMangéesParJour =  // Calcul simple plus rapide que Average() ici

Page 274*

Dans les exemples à la fin de l'exercice 2, la formulation est boîteuse et pour qu'ils fonctionnent, il faudrait remplacer 41 et 21 par 40 et 20. En fait, on devrait donner de meilleurs exemples, et reformuler légèrement ainsi :

plus de points possibles, donc selon l'écart en x ou en y le plus grand. Par exemple, une ligne de (0, 1) à (40, 2) mettra 41 astérisques, une dans chaque colonne de 0 à 40, alors qu'une ligne entre (10, 18) et (25, 34) en mettra 17, une à chaque ligne de 18 à 34.

Page 283

Pour rendre bien clair le fait qu'on doit mettre un commentaire normal aux constructeurs des classes, le dernier paragraphe devrait être :

Les constructeurs seront commentés comme les méthodes normales (voir les exemples à la section 10.9). On ajoutera aussi un commentaire XML à la classe, ainsi qu'à chacune des propriétés : la section summary, générée lorsqu'on tape ///, est suffisante. Par exemple :

Page 297

Comme expliqué dans le commentaire initial du fichier, les commentaires //** indiquent des commentaires explicatifs que l'on ne retrouverait normalement pas dans les programmes. Le commentaire sur les using static System.DateTime; devrait être de ce type :

using static System.DateTime; //** Pour Today, voir explication dans le code

Page 301

La fin du commentaire sur DateTime et Today devrait être :

//** par sa propriété Year. DateTime sera expliqué en détail à la section 10.15.

Page 420*

Selon les chapitres, le livre décrit une fonction appelée DateValide avec paramètres (j, m, a) et une autre appelée EstDateValide avec paramètres (a, m, j). Elles ne font pas exactement les mêmes validations (EstDateValide vérifie spécifiquement que les paramètres sont valables pour DateTime). Si les deux sont dans les utilitaires, il vaudrait mieux que l'ordre des paramètres soit identique, mais l'idéal est vraiment d'en n'avoir rien qu'une, EstDateValide. Il faut donc corriger :

if (!EstDateValide(2004, p_mois, p_jour))


Quelques fautes d'orthographe (ou de choix de vocabulaire)

Page 40, dans le dernier paragraphe, il faudrait « erreurs de logique » au lieu de « erreurs de logiques ».

Page 62, dans l'algorithme au bas de la page, il faudrait "manteau d'hiver" au lieu de "manteau d'hivers".

Page 98, première ligne, c'est évidemment C-dièse et non C-dièze.

Page 147, Le TAUX_RÉDUCTION_FAMILLE sera appliquée à devrait être Le TAUX_RÉDUCTION_FAMILLE sera appliqué à.

Page 151, dans le dernier paragraphe, il faudrait « paramètres nommés » au lieu de « paramètres nommées ».

Page 171, au début du premier paragraphe après la puce, il serait préférable d'avoir « Ce genre de démarche » au lieu de « Ce genre de méthode ».

Page 251, la note de bas de page devrait commencer par « On aurait pu coder », et se terminer par « recherche de la bibliothèque. ».

Page 261, dans le troisième paragraphe de la fin, il faudrait « donc pas reliée à un vecteur. » au lieu de « donc pas relié à un vecteur. ».

Page 269, dernière ligne de l'avant-dernier paragraphe, il faudrait « comme on l'a montré » au lieu de « comme on l'a montrée ».

Pages 295 et 297, pour respecter la nomenclature utilisée ailleurs, le namespace devrait être Chapitre10Section9 au lieu de Chap10Section9.

Pages 332 et 334, pour respecter la nomenclature utilisée ailleurs, le namespace devrait être Chapitre10Section17 au lieu de Chap10Section17.

Page 416 et suivantes, le programme déclare et utilise une classe ÉvènementNommée qui devrait évidemment s'appeler ÉvènementNommé. Les évènements dans ce programme ont longtemps été appelés fête (dont FêteNommée bien sûr), partout dans le programme, pour éviter la discussion sur l'orthographe événement/évènement (les deux sont acceptées, mais évidemment pas en combinaison dans un programme informatique). Fête était trop restrictif, mais le mot évènement est en conflit avec la notion informatique du même nom. L'idéal serait donc de trouver et utiliser un autre synonyme...

Page 426, pour faire suite aux corrections pour les pages 416 et suivantes, il faudrait parler de CréerÉvènementÀDateFixe au lieu de CréerFêteÀDateFixe. Cependant, pour des raisons de mise en page, on donnera plutôt CréerAnniversaire comme exemple.

Page 427 et 428, toujours pour faire suite aux corrections pour les pages 416 et suivantes, il faut remplacer fête par évènement à quatre endroits et ajuster les phrases en conséquence :

(p. 427) " - un évènement à date [f]ixe,\n" +
(p. 427) string nom = LireStringNonVide("Nom de l’évènement à date fixe : ");
(p. 428) jour = LireInt32DansIntervalle("Numéro du jour de l’évènement : ", 1, 31);
(p. 428) mois = LireInt32DansIntervalle("Mois de l’évènement : ", 1, 12); N.B. Il y avait aussi un point-virgule superflu à la fin de cette ligne.


Quelques erreurs de typographie (mineures)

Page 9, il semble y avoir un pied de page contenant une barre verticale à droite. C'est une erreur.

Page 112, il y a une espace de trop entre la parenthèse fermante et la virgule, dans l'avant-dernier paragraphe.