-----------------------------------------------------------------------------
I N T R O D U C T I O N   À   L A   P R O G R A M M A T I O N   
A V E C   I S O   C + +
-----------------------------------------------------------------------------
P A R   M I C H E L   M I C H A U D

Loze-Dion éditeur inc., 2006, ISBN 2-921180-94-4


Avant-Propos

Table des matières

1     INTRODUCTION À LA PROGRAMMATION

1.1     Programme et langage de programmation                               2
1.2     Étapes du développement des programmes                              2
1.3     Notion d'algorithme                                                 6

2     NOTIONS DE BASE

2.1     Constantes                                                          9
2.2     Variables                                                          13
2.3     Types de données simples                                           15
2.4     Déclarations dans les algorithmes                                  16
2.5     Notion d'instructions                                              17
2.6     Instruction d'affectation                                          17
2.7     Expressions arithmétiques et opérateurs                            18
Exercices-Série A                                                          24

3     PSEUDO-CODE ET ALGORITHMES

3.1     Présentation des algorithmes en pseudo-code                        26
3.2     Standard de présentation du pseudo-code                            27
3.3     Instruction de lecture                                             33
3.4     Instruction d'écriture                                             35
3.5     Essais manuels des algorithmes : la trace                          40
Exercices-Série B                                                          42

4     STRUCTURES DE CONTRÔLE

4.1     Structure séquentielle                                             43
4.2     Structure conditionnelle simple et opérateurs relationnels         44
4.3     Structures conditionnelles imbriquées                              52
4.4     Applications des structures imbriquées au problème du prix du
        repas                                                              57
4.5     Structure conditionnelle multiple                                  58
Exercices-Série C                                                          62
4.6     Conditions composées et opérateurs logiques                        64
4.7     Priorité des opérateurs                                            70
4.8     Évaluation court-circuit                                           73
4.9     CHOIX-QUAND et conditions composées                                74
4.10    Exemples récapitulatifs                                            74
Exercices-Série D                                                          77
4.11    Structures itératives                                              80
4.12    Étapes pour l'écriture d'une boucle                                83
4.13    Les sentinelles                                                    86
4.14    La boucle POUR                                                     89
4.15    Structures imbriquées                                              92
4.16    Initialisation significative des variables                         93
Exercices-Série E                                                          95

5     ÉLÉMENTS DE BASE DE C++

5.1     Conversion des algorithmes en C++                                  98
5.2     Structure générale d'un programme C++                             103
5.3     Déclarations et définitions des variables et constantes, 
        types de données                                                  108
5.4     Opérations de lecture et  d'écriture : <iostream>                 114
5.5     Affectation et autres opérateurs                                  117
5.6     Structures de contrôle                                            120
5.7     Règles de visibilité                                              129
5.8     Exemples récapitulatifs                                           130
5.9     Cycle de développement d'un programme                             134
5.10    Mise au point des programmes                                      136
Exercices-Série F                                                         138

6     QUALITÉS DES PROGRAMMES

6.1     Facilité d'utilisation                                            142
6.2     Fiabilité et validation                                           143
6.3     Qualité du code                                                   145
6.4     Standard de programmation                                         146

7     MODULARITÉ

7.1     Définition d'un module                                            151
7.2     Types de modules                                                  155
7.3     Nom et appel des modules                                          155
7.4     Écriture des modules                                              158
7.5     Les paramètres                                                    160
7.6     Module pour CHOIX-QUAND                                           166
7.7     Fonctions de bibliothèques                                        166
7.8     Développement de modules réutilisables                            167
7.9     Modularité en C++ : fonctions                                     168
7.10    Techniques spéciales                                              173
Exercices-Série G                                                         178

8     ENTRÉES-SORTIES EN C++

8.1     Les entrées-sorties interactives                                  182
8.2     Contrôle de la présentation des données                           189
8.3     Sérialisation et gestion des fichiers                             193
8.4     Format des données dans les fichiers                              198
8.5     Validation des lectures interactives                              199
8.6     Un exemple : la consommation de pommes                            200
Exercices-Série H                                                         202

9     TYPES DE DONNÉES PERSONNELS

9.1     Types par énumération                                             204
9.2     Les structures                                                    212
9.3     Récapitulation : les pommes                                       222
Exercices-Série I                                                         225

10    VECTEURS

10.1    La structure de données vecteur                                   226
10.2    Les vecteurs en C++ : la classe vector                            227
10.3    Quelques fonctions membres utiles                                 229
10.4    Exemples d'opérations et indices quelconques                      231
10.5    Vecteurs, fonctions et modularité                                 237
10.6    Sérialisation des vecteurs                                        238
10.7    Autres opérations dans les vecteurs                               241
10.8    Retour aux pommes                                                 247
Exercices-Série J                                                         251

11    POSSIBILITÉS DES VARIABLES ET DES FONCTIONS EN C++

11.1    Durée de vie des variables et portée                              253
11.2    Variables globales                                                254
11.3    Variables statiques et durée de vie                               259
11.4    Les singletons                                                    260
11.5    Contrôle de la portée des variables                               261
11.6    Les références                                                    265
11.7    Les fonctions inline                                              266
Exercices-Série K                                                         267

12    FICHIERS SOURCES MULTIPLES, FICHIERS D'EN-TÊTE 
      ET NAMESPACE ANONYME

12.1    Découpage en fichiers sources multiples                           269
12.2    Déclarations et fichiers d'en-tête                                274
12.3    Possibilités du préprocesseur                                     277
12.4    Rôle de l'éditeur de liens, projets et makefile                   280
12.5     Les fonctions inline dans les fichiers d'en-tête                 281
12.6    Restriction des accès : le namespace anonyme                      282

13    TYPES DE DONNÉES DE C++

13.1    Types de données de base                                          284
13.2    Types synonymes (typedef)                                         286
13.3    Imbrications des déclarations de types                            286
13.4    Quelques typedef et types imbriqués de la bibliothèque standard   288
13.5    Les pointeurs                                                     289
13.6    Allocation dynamique                                              292
13.7    Quelques possibilités du type string                              297
13.8    Conversions et <sstream>                                          301
Exercices-Série L                                                         304

14    OPÉRATEURS ET EXCEPTIONS

14.1    Opérateurs : valeurs dans les expressions                         306
14.2    Opérateurs spéciaux                                               309
14.3    Opérateurs de manipulations de bits                               311
14.4    Fonctions operator                                                314
14.5    Exceptions                                                        317
Exercices-Série M                                                         321

15    CLASSES ET ENCAPSULATION

15.1    Données, traitements, validité et invariants                      324
15.2    Classes et droits d'accès                                         326
15.3    Fonctions membres                                                 327
15.4    Constructeurs                                                     335
15.5    Validation, constructeur et exceptions                            340
15.6    Validation et autres fonctions membres                            342
15.7    Fonctions membres const                                           343
Exercices-Série N                                                         345
15.8    Fonctions membres static                                          346
15.9    Destructeurs                                                      347
Exercices-Série O                                                         350
15.10   Constructeurs dans les structures                                 351
15.11   Constantes et types imbriqués                                     352
15.12   Classe de valeurs et classe de traitement                         354
15.13   Données membres constantes et références                          356
15.14   Sérialisation des données d'un type classe                        356
15.15   Un exemple complet                                                359
15.16   Déclarations des classes                                          364
15.17   Classes et fonctions operator                                     367
15.18   Fonction membre operator=                                         371
15.19   Conversions par constructeur et explicit                          373
15.20   Fonctions friend                                                  374
Exercices-Série P                                                         377

16    HÉRITAGE ET POLYMORPHISME

16.1    Réutilisation des classes par composition                         378
16.2    Dérivation et héritage                                            381
16.3    Polymorphisme et fonctions virtuelles                             387
16.4    Fonction virtuelle pure et classe abstraite                       390
16.5    Programmation orientée objet                                      392
16.6    Fonctions membres privées                                         400
16.7    Un exemple complet                                                402
Exercices-Série Q                                                         415

17    COMPLÉMENTS

17.1    Vecteurs de base et chaînes C                                     417
17.2    Itérateurs et arithmétiques de pointeurs                          418
17.3    Autres fonctions de <algorithm>                                   420
17.4    Fonctions de std::vector préservant l'ordre                       422
17.5    Position du const et pointeurs                                    423
17.6    Données membres static                                            424
17.7    Macros                                                            426
17.8    Sortie rapide du programme                                        427
17.9    Classes singleton                                                 428

ANNEXES

Annexe A  Fonctions de la bibliothèque standard                           429
Annexe B  Ressources accessibles par Internet                             433
Annexe C  Priorité des opérateurs de C++                                  434

BIBLIOGRAPHIE                                                             435
INDEX                                                                     436