Info
Commentaires Composés : Info. Rechercher de 53 000+ Dissertation Gratuites et Mémoiresquelque support que ce soit, sans autorisation de l’éditeur ou du Centre Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. © Groupe Eyrolles, 2008, ISBN : 978-2-212-12403-3
Pour Ornella, qui m’a soutenu et cajolé durant cet été 2008 pas comme les autres ! À mes chers enfants, Nathalie, Stéphanie et Nicolas.
Table des matières
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pourquoi un tel ouvrage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . À qui s’adresse ce livre ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quel est l’intérêt d’apprendre plusieurs langages ? . . . . . . . . . . . . . . . Quelles versions de Java et de C++ ? . . . . . . . . . . . . . . . . . . . . . . . . . . . Pourquoi le Standard C++ ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment est présenté cet ouvrage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . De quel matériel a-t-on besoin ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pourquoi autant d’exemples et d’exercices ? . . . . . . . . . . . . . . . . . . . . . Commentaires et suivi de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 1
XXV XXV XXV XXV XXVI XXVII XXVII XXVII XXVIII XXVIII
L’incontournable Hello world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hello world en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hello world en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La machine virtuelle Java – JRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notre premier fichier Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enfin un premier make effectif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le point d’entrée main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les paramètres de main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main() et C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main() et Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 2 4 5 6 6 8 9 9 10 10
VIII
Apprendre Java et C++ en parallèle
Analyse comparative. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jouer avec Crimson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 13 13 13
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 2
La déclaration et l’affectation des variables numériques . . .
Déclaration des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Choix des noms de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 15 16 17 21 21 23 24 24 25 26 27 27 28 29 30 31 32 32 34 35 38 40 40
Affectation des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transtypage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Positionnement des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables du type pointeur en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation des pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de malloc() en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variables constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables globales en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers d’en-tête en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opérations et opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La classe Java Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les opérateurs traditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Char et byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intervalles des types entiers en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles de priorité des opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Une diversion sur le cin (entrée) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les opérateurs d’affectation composés . . . . . . . . . . . . . . . . . . . . . . . . . . Les opérations binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Typedef et énumération en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table des matières
IX
CHAPITRE 3
Et si on contrôlait l’exécution ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recommandations pour la forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opérateurs de condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Et si c’était faux (False) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’opérateur logique NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Préconisation du bool en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les boucles for, while et do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les boucles for en Java à partir du JDK 1.5. . . . . . . . . . . . . . . . . . . . . . . . Tester plusieurs conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ceci ET cela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optimisation dans le cas de conditions multiples . . . . . . . . . . . . . . . . . . . Ceci OU cela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Éviter les tests de conditions multiples compliqués. . . . . . . . . . . . . . . . . . Plusieurs sélections avec switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’infâme goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 4
41 41 42 44 45 45 46 49 49 49 50 51 51 52 54 55 55
On fait ses classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notre première classe en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition de la classe Personne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition des objets d’une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un seul constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Une seule méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nom et définition des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code de la classe Personne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Directive include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commentaires et documentation des classes . . . . . . . . . . . . . . . . . . . . . . . Un Makefile évolué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notre première classe en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tester les classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commentaires et documentation des classes . . . . . . . . . . . . . . . . . . . . . . . Création des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57 57 57 59 59 59 60 60 62 63 65 66 68
...