Errata de
Introduction à la programmation
2. ANSI/ISO C++ et programmation Windows avec Visual C++


Dernière mise à jour : 2 février 2001.

Pour le moment, deux erreurs assez graves ont été trouvées. Leurs corrections modifient considérablement les pages 42 et 87. Pour les détails, voir ErrataV2.txt

Le reste de cet errata ne contient que des erreurs simples : celles dont la correction peut aider la compréhension ont été notées par des numéros de page rouges.

Pour les précisions sur certains points du livre, consultez la foire aux questions.

Certaines erreurs ont été corrigées dans les réimpressions du livre. Il est donc possible que les erreurs qui suivent ne s'appliquent pas à votre exemplaire.

Erreurs excluant erreurs très mineures, typographie, fautes de français, etc.

P.VERSION ORIGINALEVERSION CORRIGÉE
5double x= 1,23; // ... 23
Ici, ... 23 à affecter. (le paragraphe complet)
x= 1,23; // On aura x==1.0 au lieu de 1.23
L'expression est interprétée comme (x= 1), 23;. Le 23 est sans conséquence.
26int k= j++, i++;int k= (j++, i++);
33while ( !(JANVIER < noMois && noMois < DECEMBRE) );while ( !(JANVIER <= noMois && noMois <= DECEMBRE) );
35float prix;
}; // Ou double
float prix; // Ou double
};
37getline(cin, p_s_livre.prenom, '\t');
getline(cin, p_s_livre.nom);
getline(cin, p_s_livre.prenomAuteur, '\t');
getline(cin, p_s_livre.nomAuteur);
38<< p_livre.prenom << ' ' << p_livre.nom << ", publié en "
<< p_livre.prenomAuteur << ' ' << p_livre.nomAuteur << ", publié en "
42string noCarteCredit;
(etc.)
char noCarteCredit[LARGEUR_NO_CARTE_CREDIT+1];
(voir ErrataV2.txt)
50
typedef char TypeAdresse[NB_LIGNES_ADRESSE][LARGEUR_LIGNE_ADRESSE+1];
     
typedef char TypeLigneAdresse[LARGEUR_LIGNE_ADRESSE+1];
typedef TypeLigneAdresse TypeAdresse[NB_LIGNES_ADRESSE];
(la version originale est techniquement correcte, sauf qu'on n'a pas vu les tableaux à deux dimensions à ce point dans le livre)
50int16_t ObtenirScolarite();TypeScolarite ObtenirScolarite();
53case CADRE : ... (les deux case sont inversés)
case SOUTIEN : ...
case SOUTIEN : ...
case CADRE : ...
63Imprimer(... (trois fois en bas de la page)Afficher(...
82par la classe vector. En fait,par la classe vector, disponible quand on inclut <vector>. En fait,
87(Toute la section sur les tableaux multidimensionnels)(voir ErrataV2.txt)
100TYPE_FACTURETypeFacture
104TYPE_CLIENT (deux fois)TypeClient
122
..., p_anneeInscription)  // ERREUR
..., int p_anneeInscription)  // ERREUR
123if (uneDate.ChangerDate(jour, mois, annee))if ( ! uneDate.ChangerDate(jour, mois, annee))
130int ClDate::DateValide(...Il manque un return 0; à la fin de la fonction
133CetteFonction()CetteFonction();
135ClClient(char p_nom[], char p_prenom[], int p_noClient)ClClient(const char p_nom[], const char p_prenom[], int p_noClient)
136int p_nbPages, p_anneeParution, float p_prix)int p_nbPages, int p_anneeParution, float p_prix)
138..., ClDate p_dateLocation);..., const ClDate& p_dateLocation);
139..., ClDate p_dateLocation) (deux fois)..., const ClDate& p_dateLocation)
139class ClLocationLongTerme...Bien que ce ne soit qu'un exemple simplifié, toutes les fonctions membres, sauf le constructeur, devraient être notées const.
140m_noOutil(p_noOutil)m_nbJoursLocation(p_nbJoursLocation)
140CLocationLongTermeClLocationLongTerme
141double ClLocationLongTermer::Cout() // ...double ClLocationLongTerme::Cout() const // ...
141CLocation::Cout();ClLocation::Cout();
142virtual double Cout();virtual double Cout() const;
143/*virtual*/ double Cout();/*virtual*/ double Cout() const;
209Visualiser les moyennes...
Visualiser les aubaines...
Visualiser les moyennes...
Visualiser les aubaines...
220N.B. La variable...Enlever tout ce paragraphe.
229p_enr.numero= NO_CLIENT_INEXISTANT;Cette ligne est inutile dans la deuxième version de la fonction (donc à enlever).
232Le constructeur est déclaré virtual...Le destructeur est déclaré virtual...
242CAjoutLivre d(m_pDoc);CAjoutLivre d;
246m_ficLivres->Reinitialiser();m_ficLivres.Reinitialiser();
255BOOL CAjoutLivre::OnInitDialog()BOOL CSaisieLivre::OnInitDialog()
320
| (seconde << 17);    // pas les additionner.
| seconde;            // pas les additionner.
320...0xFC000000) >> 26) // Masquage facultatif...0xFC000000) >> 26) + 1990 // Masquage facultatif

Une liste de toutes les erreurs (y compris fautes de frappe, de français ou de typographie) est disponible ici


Retour à la page principale