Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Du C au C++ - De la programmation procédurale à l'objet (2ième édition)

Du C au C++ De la programmation procédurale à l'objet (2ième édition)

2 avis

Informations

Livraison possible dès le 30 décembre 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-7460-0902-0
  • EAN : 9782746090200
  • Ref. ENI : RI2CC

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-7460-0919-2
  • EAN : 9782746091962
  • Ref. ENI : LNRI2CC
Ce livre s'adresse aux développeurs débutants qui souhaitent maîtriser la conception algorithmique en s'appuyant sur le langage C puis sur le langage C++. Il est particulièrement adapté aux étudiants en licence d'informatique, école d'ingénieur et prépa scientifique. L'efficacité, la complémentarité mais aussi la généricité des langages C et C++ vont permettre au lecteur d'acquérir un...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 911 pages
  • Parution septembre 2014
  • Niveau Initié à Confirmé
  • Parution septembre 2014
Ce livre s'adresse aux développeurs débutants qui souhaitent maîtriser la conception algorithmique en s'appuyant sur le langage C puis sur le langage C++. Il est particulièrement adapté aux étudiants en licence d'informatique, école d'ingénieur et prépa scientifique. L'efficacité, la complémentarité mais aussi la généricité des langages C et C++ vont permettre au lecteur d'acquérir un savoir faire fondamental en programmation informatique. Au-delà du fonctionnement de ces langages, l'auteur fournit ce qu'il faut de précision et de pratique pour que le lecteur se les approprie et les maîtrise ; chaque section théorique est suivie d'une section "Mise en pratique" dédiée, composée d'exercices diversifiés et une section "Expérimentation" propose des études de cas.

Les six premiers chapitres concernent l'apprentissage du langage C et les premières armes en algorithmique, des variables simples aux structures et tableaux jusqu'aux pointeurs. Ensuite, au chapitre 7 les fonctionnalités et la dimension objet du langage C++ sont exposées. Notamment une partie sur la communication entre objets est développée. Tous les points importants sont abordés avec des petits programmes d'illustration. Le lecteur trouvera là un marchepied conséquent vers le monde de l'objet qui lui donnera aussi les clés d'autres langages objet comme C# ou Java par exemple.

La suite du livre apporte des approfondissements avec l'étude des listes en C et des conteneurs qui en sont l'implémentation en C++. En langage C sont expliqués les listes chainées dynamiques, mais également les piles et les files ainsi que les arbres, essentiellement les arbres binaires. Pour ce faire, un chapitre expose la récursivité, élément incontournable pour l'implémentation des arbres. Ensuite les conteneurs du C++ sont détaillés et leurs principales caractéristiques explorées, l'objectif étant d'en faciliter l'utilisation.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Introduction – Variables simples – Les contrôles des blocs d'instructions – Les structures – Les tableaux – Structuration d'un programme – Les pointeurs – La dimension objet, le C++ - Récursivité – Liste en C – Listes en C++ (conteneurs)

Téléchargements

Introduction
  1. Objectif : apprendre à programmer
  2. Contenu
  3. Librairies graphiques
  4. Public visé
  5. Comment apprendre à programmer ?
    1. 1. Comprendre n’est pas savoir faire
    2. 2. Trois niveaux de difficulté
      1. a. Maîtriser les outils
      2. b. Résoudre un problème
      3. c. Concevoir un programme
    3. 3. Un apprentissage non linéaire
  6. Organisation du livre
    1. 1. Chapitres
    2. 2. Solutions des exercices
  7. Environnements de développement
  8. Remerciements
  9. Conclusion : la programmation comme écriture
Variables simples
  1. Introduction dans la programmation C
    1. 1. Qu’est-ce que programmer ?
    2. 2. Le positionnement par rapport à l’ordinateur
    3. 3. Les logiciels de la programmation
      1. a. Le compilateur
      2. b. L’IDE : environnement de développement
      3. c. Installation
    4. 4. Base d’un programme
      1. a. Des données et des instructions
      2. b. Des librairies de fonctions
    5. 5. Créer un projet
      1. a. Créer un projet sous Code::Blocks
      2. b. Créer un projet sous Visual Studio 2013
      3. c. Créer un modèle de projet (template)sous Visual Studio
    6. 6. Premier programme
      1. a. La fonction main() : entrée du programme
      2. b. Afficher du texte avec la fonction printf()
      3. c. Compiler et lancer le programme
    7. 7. Mise en pratique : découverte du compilateur
  2. Variables simples
    1. 1. Qu’est-ce qu’une variable en informatique?
    2. 2. Définir des variables dans un programme
      1. a. Les types de variables élémentairesen C
      2. b. Déclarer ses variables dans un programme
      3. c. Contraintes pour le choix des noms
    3. 3. Mise en pratique : définir des variables dans un programme
    4. 4. Manipulations de base sur les variables
      1. a. Affecter une valeur à une variable
      2. b. Des valeurs de type caractère (codage ASCII)
      3. c. printf() pour afficher des valeurs
      4. d. Obtenir des caractères accentuésdans la console (sous Windows)
      5. e. Obtenir et afficher la taille en mémoired’une variable
      6. f. Obtenir et afficher l’adresse mémoire d’unevariable
      7. g. scanf() pour récupérer une valeurentrée par l’utilisateur
      8. h. Les pièges de scanf()
    5. 5. Mise en pratique : manipulations des variables
    6. 6. Les constantes
      1. a. Définition, mot-clé const
      2. b. Macro constantes #define
      3. c. Suite de constantes enum
    7. 7. Comprendre les variables
      1. a. Codage et mesure de l’information
      2. b. Plages de valeurs en décimal
      3. c. Troncature
      4. d. Codage des nombres négatifs
    8. 8. Mise en pratique : codage des informations numériques
    9. 9. Expérimentation : variables simples, déclaration, affectation, affichage, saisie
  3. Les opérations
    1. 1. La notion d’expression
    2. 2. Opérations arithmétiques
      1. a. Les opérateurs +, -, *, /, %
      2. b. Les affectations combinées
      3. c. Opérateurs d’incrémentationet de décrémentation
      4. d. Opérations entre types différents,opérateur de conversion (cast)
      5. e. Priorités entre opérateurs
    3. 3. Mise en pratique : opérations arithmétiques,cast
    4. 4. Obtenir des valeurs aléatoires
      1. a. Principe du pseudo aléatoire
      2. b. La fonction rand()
      3. c. La fonction srand()
      4. d. Valeurs aléatoires dans des fourchettes
    5. 5. Mise en pratique : opérations et nombresaléatoires
    6. 6. Opérations bit à bit
      1. a. ET : opérateur &
      2. b. OU exclusif : opérateur ˆ
      3. c. OU inclusif : opérateur |
      4. d. Complément : opérateur ~
      5. e. Décalages gauche et droite : opérateurs>> et <<
      6. f. Priorités des opérateurs bit à bit
    7. 7. Mise en pratique : opérations bit à bit
    8. 8. Expérimentation : opérations arithmétiques, valeurs aléatoires
Les contrôles des blocs d'instructions
  1. Blocs d'instructions et conditions
    1. 1. Qu’est-ce qu’un bloc d’instructions ?
      1. a. Définition
      2. b. Exemple
      3. c. Utilité d’un bloc d’instructions
    2. 2. Définir une condition
      1. a. Pourquoi une condition ?
      2. b. Comment définir une condition ?
      3. c. Les opérateurs de comparaison
      4. d. L’opérateur unaire NON : !
      5. e. Priorités des opérateurs NON etcomparaison
    3. 3. Mise en pratique : opérateurs de comparaisonet NON
  2. Sauts conditionnels
    1. 1. L’instruction if
    2. 2. Le couple d’instructions if-else
    3. 3. La forme contractée du if-else, opérateurconditionnel ?
    4. 4. La cascade d’instructions if-else if-else
    5. 5. Expérimentation : les sauts conditionnels(les trois if)
    6. 6. Mise en pratique : les sauts conditionnels
  3. Branchements
    1. 1. Branchement sélectif : switch, case et break
    2. 2. Rupture de séquence : goto avec étiquette
    3. 3. Expérimentation : branchement sélectifswitch
    4. 4. Mise en pratique : l’aiguillage switch
  4. Les tests multiconditions (ET/OU)
    1. 1. Conjonction ET : opérateur &&
      1. a. ET avec deux expressions membres
      2. b. ET avec plus de deux expressions membres
    2. 2. Disjonction OU, opérateur ||
      1. a. OU avec deux expressions membres
      2. b. OU avec plus de deux expressions membres
    3. 3. ET prioritaire sur OU
    4. 4. Priorité avec les autres opérateurs
    5. 5. Mise en pratique : les opérateurs logiquesET, OU
  5. Boucles
    1. 1. Boucle TANT QUE : le while
    2. 2. Boucle FAIRE {...} TANT QUE : ledo-while
    3. 3. Boucle comptée POUR : le for
    4. 4. Boucles imbriquées
    5. 5. Sortie et saut forcés dans une boucle
      1. a. Sortir avec l’instruction break
      2. b. Passer à l’itération suivante avecl’instruction continue
      3. c. Sortir d’une ou de plusieurs boucles imbriquées avec l’instruction goto
    6. 6. Mise en pratique : les boucles while, do-while etfor
  6. Utilisations typiques de boucles
    1. 1. Créer un menu utilisateur
    2. 2. Boucle d’événements dans un jeuvidéo
      1. a. Récupérer les entrées clavier: kbhit() et getch()
      2. b. Boucle d’événements simple
      3. c. Contrôler le temps d’exécution
    3. 3. Commencer la création d’un jeu en mode console
    4. 4. Mise en pratique : menus, boucles d’événements
  7. Fonctions
    1. 1. Qu’est-ce qu’une fonction ?
    2. 2. Écrire sa fonction
      1. a. Où écrire sa fonction ?
      2. b. Conditions à remplir
      3. c. Exemple de fonction sans retour ni paramètre
      4. d. Exemple de fonction avec retour et sans paramètre
      5. e. Exemple de fonction sans retour avec un paramètre
      6. f. Exemple de fonction avec retour et paramètre
      7. g. Conclusion : quatre cas d’écriture de fonction
    3. 3. Utiliser sa fonction
      1. a. Appel de la fonction (bonjour1)
      2. b. Récupération de la valeur de retour(bonjour2)
      3. c. Passage de valeurs aux paramètres (bonjour3 et 4)
      4. d. Précision sur le passage par valeur
      5. e. Visibilité et déclaration de lafonction
    4. 4. Fonctions avec liste variable de paramètres
      1. a. Liste variable de paramètres de mêmetype
      2. b. Liste variable de paramètres de types différents
      3. c. Transformer printf()
    5. 5. Fonctions récursives
    6. 6. Mise en pratique : fonctions
      1. a. Identifier les composants d’une fonction
      2. b. Déclaration de fonctions
      3. c. Procédures sans paramètre
      4. d. Fonctions sans paramètre
      5. e. Fonctions avec paramètres
  8. Gestion des variables
    1. 1. Visibilité des variables
      1. a. Profondeur de la déclaration
      2. b. Portée des variables
      3. c. Masquage d’une variable
    2. 2. Durée de vie des variables
      1. a. Variables globales
      2. b. Variables locales (auto)
      3. c. Variables static
    3. 3. Choix méthodologiques
    4. 4. Mise en pratique : gestion des variables
    5. 5. Expérimentations : circuit de voiture
      1. a. Principe du circuit
      2. b. Structure de données du circuit
      3. c. Structure de données de la voiture
      4. d. Étapes de l’algorithme, fonctions nécessaires
      5. e. Programme commenté
      6. f. Conclusion
    6. 6. Mise en pratique : recherches algorithmiques
      1. a. Ascenseur de la tour infernale
      2. b. Tracer des lignes
  9. Style, commentaires et indentations
    1. 1. Pourquoi soigner le style ?
    2. 2. Typographie et choix des noms
    3. 3. Indentations rigoureuses et accolades
    4. 4. Parenthèses pour dissiper les ambiguïtés
    5. 5. Commentaires pertinents
    6. 6. Mise en pratique : style, indentations, commentaires
Les structures
  1. Structure
    1. 1. Qu’est-ce qu’une structure ?
    2. 2. Disposer d’une structure dans un programme
      1. a. Définir un type de structure
      2. b. Où placer sa définition de structure
      3. c. Déclarer ses variables structure
      4. d. Utiliser un typedef
    3. 3. Utiliser une structure
      1. a. Accès aux éléments avecl’opérateur point
      2. b. Priorité de l’opérateur point
      3. c. Une structure comme champ dans une structure
      4. d. Initialiser une structure à la déclaration
      5. e. Copier une structure
    4. 4. Mise en pratique : définir, déclarer,initialiser des structures
  2. Structures et fonctions
    1. 1. Retourner une structure
    2. 2. Structures en paramètre de fonction
    3. 3. Mise en pratique : structures et fonctions
    4. 4. Expérimentation
      1. a. Fourmi 1 : une fourmi mobile à l’écran
      2. b. Voiture 2 : structure circuit, structure voiture
Les tableaux
  1. Tableaux statiques
    1. 1. Qu’est-ce qu’un tableau ?
    2. 2. Disposer d’un tableau statique dans un programme
      1. a. Définir et déclarer un tableau
      2. b. Utiliser des #define pour les tailles
    3. 3. Utiliser un tableau
      1. a. Accéder aux éléments dutableau avec l’opérateur [ ]
      2. b. Priorité de l’opérateur [ ]
      3. c. Débordement de tableau
      4. d. Initialiser un tableau à la déclaration
      5. e. Parcourir un tableau avec une boucle for
      6. f. Trier un tableau
    4. 4. Précisions sur enum et #define
      1. a. Utiliser un #define
      2. b. Utiliser un enum
    5. 5. Tableaux à plusieurs dimensions
      1. a. Déclarer un tableau à plusieursdimensions
      2. b. Initialiser la déclaration
      3. c. Parcourir un tableau à plusieurs dimensions
    6. 6. Expérimentation : tableaux statiques
    7. 7. Mise en pratique : opérations de base surles tableaux statiques (non dynamiques)
      1. a. Déclaration de tableaux, accès aux éléments
      2. b. Initialisation de tableaux à la déclaration
      3. c. Tableaux à plusieurs dimensions
      4. d. Boucles et tableaux
  2. Exemples d'utilisations de tableaux
    1. 1. Chaînes de caractères
    2. 2. Image bitmap
    3. 3. Stocker des données localisées
    4. 4. Expérimentation : utilisation de chaînesde caractères
    5. 5. Mise en pratique : tableaux
      1. a. Chaînes de caractères
      2. b. Image, terrain de jeux
      3. c. Localisation de données via plusieurs dimensions
  3. Tableaux et structures
    1. 1. Tableau comme champ dans une structure
    2. 2. Tableau de structures
    3. 3. Différences entre tableaux et structures
    4. 4. Mise en pratique : tableaux de structures
    5. 5. Expérimentations : améliorationdu programme voiture 2
      1. a. Voiture 3 : une structure trait et un tableaude traits
      2. b. Voiture 4 : tableau de structures voiture
      3. c. Voiture 5 : un circuit par voiture
      4. d. Voiture 5b : un circuit différentpour chaque voiture
  4. Tableaux et fonctions
    1. 1. Utiliser un tableau déclaré en global
    2. 2. Tableau en paramètre de fonction
      1. a. Précision sur le type tableau
      2. b. La variable pointeur
      3. c. En paramètre, conversion du tableau en pointeur
      4. d. Choix pour l’écriture des tableaux en paramètre
      5. e. Modification des données via un passage paradresse
    3. 3. Quelques fonctions de traitement de chaînesde caractères
      1. a. Récupérer une chaîne entréepar l’utilisateur
      2. b. Obtenir la taille d’une chaîne
      3. c. Copier une chaîne
      4. d. Comparer deux chaînes
      5. e. Concaténer deux chaînes
    4. 4. Expérimentation : tableaux et fonctions
    5. 5. Mise en pratique : tableaux et fonctions
      1. a. Appels de fonctions, tableaux en paramètre
      2. b. Manipulations sur les chaînes
    6. 6. Fourmi 2 : une colonie de fourmis
    7. 7. Fourmi 3 : plusieurs colonies de fourmis
Structuration d’un programme
  1. Structuration d'un programme, étude d'un automate cellulaire
    1. 1. Clarifier et définir ses objectifs
      1. a. Principe de l’automate cellulaire
      2. b. Fonctionnement envisagé
    2. 2. Trouver une structure de données valable
    3. 3. Identifier les fonctions principales
    4. 4. Choisir le niveau des variables fondamentales
    5. 5. Écrire les fonctions
      1. a. Fonction d’initialisation
      2. b. Fonction d’affichage
      3. c. Fonction de calcul
      4. d. Fonction de comptage des voisins
      5. e. Fonction de recopie
      6. f. Montage dans le main()
    6. 6. Intégrer une librairie personnelle
    7. 7. Répartir son code sur plusieurs fichiersC
      1. a. Code réparti en quatre fichiers C
      2. b. Problème de redéfinition
    8. 8. Mise en pratique : structuration d’un programme
      1. a. Simulation d’un feu de forêt
      2. b. Tristus et rigolus
      3. c. Simulation d’une attaque de microbes dans le sang
      4. d. Bancs de poissons, mouvements de populations
      5. e. Élection présidentielle
      6. f. Chenille
      7. g. Système de vie artificielle, colonies defourmis
      8. h. Boutons et pages
      9. i. Panneaux de bois et entrepôts
      10. j. Nenuphs et clans
      11. k. Neige 1
      12. l. Neige 2
      13. m. Neige 3
      14. n. Casse-brique simple
      15. o. Casse-brique guru
      16. p. Space Invaders simple
      17. q. Space Invaders more
      18. r. Space Invaders guru
      19. s. Pacman débutant
      20. t. Pacman intermediate
      21. u. Pacman guru
      22. v. Jeu de miroirs
      23. w. Simulations football
Les pointeurs
  1. Principe du pointeur
    1. 1. Qu’est-ce qu’un pointeur ?
      1. a. Mémoire RAM
      2. b. Une variable pointeur
      3. c. Quatre opérateurs
      4. d. Trois utilisations fondamentales des pointeurs
    2. 2. Déclarer un pointeur dans un programme
    3. 3. Fonctionnement des quatre opérateurs
      1. a. Opérateur adresse : &
      2. b. Opérateur étoile : *
      3. c. Opérateur flèche : ->
      4. d. Opérateur crochet : [ ]
      5. e. Priorité des quatre opérateurs
    4. 4. Allouer dynamiquement de la mémoire
      1. a. La fonction malloc()
      2. b. Libérer la mémoire allouée: la fonction free()
      3. c. Le pointeur générique void*
      4. d. La valeur NULL
    5. 5. Attention à la validité d’une adressemémoire
      1. a. Validité d’une adresse mémoire
      2. b. Pourquoi caster le retour des fonctions d’allocation?
    6. 6. Pointeurs et constantes
      1. a. Pointeur variable sur un objet constant
      2. b. Pointeur constant sur un objet variable
      3. c. Pointeur constant sur un objet constant
    7. 7. Cas des tableaux de pointeurs
      1. a. Une structure de données très utile
      2. b. Un tableau de chaînes de caractères
      3. c. Utiliser les arguments de lignes de commandes
    8. 8. Cas des pointeurs de fonction
      1. a. Une fonction est une adresse
      2. b. Reconnaître un type de fonction
      3. c. Appeler une fonction via un pointeur
      4. d. Pourquoi des pointeurs de fonction ?
    9. 9. Expérimentation : base pointeurs
    10. 10. Mise en pratique : base sur les pointeurs
      1. a. Définir et manipuler des pointeurs
      2. b. Tests tableaux/pointeurs
      3. c. Base allocation dynamique
      4. d. Attention aux erreurs
      5. e. Tableaux de chaînes
  2. Allocation dynamique de tableaux
    1. 1. Allouer un tableau avec un pointeur
    2. 2. Allouer une matrice avec un pointeur de pointeur
    3. 3. Différences entre tableaux statiques et dynamiques
    4. 4. Autres fonctions d’allocation dynamique
      1. a. Fonction calloc()
      2. b. Fonction realloc()
    5. 5. Mise en pratique : allocation dynamique
      1. a. Allouer dynamiquement des tableaux
      2. b. Allouer dynamiquement des matrices
      3. c. Allocation dynamique calloc() et realloc()
  3. Pointeurs en paramètres de fonction
    1. 1. Passage par référence
      1. a. Cas général d’une variable quelconque
      2. b. Exemple : une fonction qui retourne l’heure
      3. c. Passage par référence d’une structure
      4. d. Passage par référence d’une variablepointeur
    2. 2. Tableaux dynamiques en paramètres
    3. 3. Mise en pratique : passage par référence
      1. a. Passage par référence, base
      2. b. Passage par référence, opérateursbit à bit
      3. c. Passage de pointeurs par référence
      4. d. Passage de tableaux dynamiques
  4. Fichiers (type FILE*)
    1. 1. Notions de base
      1. a. Le type FILE*
      2. b. Ouverture et fermeture d’un fichier
      3. c. Spécifier un chemin d’accès
    2. 2. Fichiers binaires
      1. a. Écriture et lecture en mode binaire
      2. b. Détecter la fin d’un fichier binaire
      3. c. Déplacements dans un fichier
    3. 3. Écriture et lecture en mode texte
      1. a. Détecter la fin d’un fichier : EOF et feof()
      2. b. Lecture/écriture de caractères
      3. c. Lecture/écriture de chaînes
      4. d. Lecture/écriture formatées
    4. 4. Sauvegarde d’éléments dynamiques
      1. a. Sauvegarder et récupérer un tableaudynamique
      2. b. Récupérer des données viades pointeurs
    5. 5. Expérimentation : récapitulationsauvegardes binaires
    6. 6. Mise en pratique : fichiers
La dimension objet, le C++
  1. C inclus en C++
    1. 1. Un projet console en C++
      1. a. Bibliothèque <iostream></iostream>
      2. b. L’instruction using namespace std;
    2. 2. Un programme C compilé en C++
  2. C augmenté en C++
    1. 1. Entrée-sortie console : cout et cin
      1. a. Utiliser cout et cin
      2. b. Instructions de formatage en sortie
    2. 2. Variables et constantes
      1. a. Déclarations plus souples
      2. b. Type bool
      3. c. Type long long ou unsigned long long
      4. d. Type caractère unicode : wchar_t
      5. e. Typedef inutile pour les structures
      6. f. Type référence (pointeur masqué)
      7. g. Type pointeur, opérateurs new et delete
      8. h. Type auto (C++ 2011)
      9. i. Constantes (const) et énumération(enum) plutôt que #define
    3. 3. Conversions de types
      1. a. static_cast<type></type>
      2. b. const_cast<type></type>
      3. c. reinterpret_cast<type></type>
      4. d. dynamic_cast<type></type>
    4. 4. Boucle for (:) "pour chaque"
    5. 5. Fonctions
      1. a. Fonctions embarquées "inline"
      2. b. Retourner une référence
      3. c. Valeurs par défaut de paramètres
      4. d. Surcharge des fonctions
      5. e. Fonctions génériques (template)
      6. f. Fonctions comme champs de structures
    6. 6. Gestion des exceptions (base)
      1. a. Instruction throw
      2. b. Instruction de saut try-catch
      3. c. Instruction throw et appels de fonctions
      4. d. Instruction throw sans valeur de retour
      5. e. Exception non identifiée
      6. f. Bloc catch(...) par défaut
    7. 7. Espaces de noms (namespace) et raccourcis (using)
    8. 8. Intégrer d’autres langages dans le code C++
  3. Classes, objets
    1. 1. Une classe, des objets
      1. a. Qu’est-ce qu’une classe ?
      2. b. Qu’est-ce qu’un objet ?
      3. c. Définir une classe
      4. d. Déclarer un objet
      5. e. Droits d’accès
      6. f. Un programme C muté en classe et objet
    2. 2. Constructeur
      1. a. Paramétrer un objet à sa déclaration
      2. b. Le pointeur this
      3. c. Constructeur sans paramètre
      4. d. Constructeurs avec paramètres
      5. e. Constructeur et initialiseur
      6. f. Constructeur et copie d’objet
    3. 3. Destructeur
    4. 4. Propriétés encapsulées « property »
      1. a. Principe de la « property »
      2. b. Lire une variable private ou protected
      3. c. Modifier une variable private ou protected
      4. d. Lire et modifier une variable private ou protected
      5. e. Intérêt d’un appel de fonction
    5. 5. Surcharge des opérateurs
      1. a. Fonction operator globale hors classe
      2. b. Fonction operator localisée dans une classe
      3. c. Fonction operator et données dynamiques
      4. d. Objet-fonction (ou fonction-objet)
    6. 6. Classes et membres "static"
      1. a. Qualificatif static en C
      2. b. Qualificatif static et objets
    7. 7. Classes génériques (template oupatron ou modèle)
      1. a. Principe
      2. b. Syntaxe de base
      3. c. Syntaxe des constructeurs
      4. d. Syntaxe avec plusieurs types génériques
      5. e. Paramétrage d’une classe générique
      6. f. Exemple d’implémentation d’une pile générique
      7. g. Spécialisation de fonction sur un type donné
      8. h. Spécialiser une classe entière
    8. 8. Classes et fonctions "amies" (friend)
  4. Associations entre objets
    1. 1. Principes des associations pour les relations entreobjets
      1. a. Association simple
      2. b. Agrégation
      3. c. Composition
      4. d. Problème syntaxique en C++
    2. 2. Associations simples : messages en paramètres de méthodes
      1. a. Liaison non réciproque entre deux objets
      2. b. Liaison réciproque entre deux objets
    3. 3. Agrégations : pointeur d’objet enpropriété
      1. a. Liaison à sens unique
      2. b. Partage des objets pointés
      3. c. Liaison réciproque
    4. 4. Composition : interdire ou limiter le partage et la recréation d’objets internes
      1. a. De l’agrégation à la composition,comment trancher ?
      2. b. Pointeur d’objet encapsulé en propriété
      3. c. Objet en propriété
      4. d. Référence d’objet en propriété
  5. Héritage
    1. 1. Définir une classe dérivée
    2. 2. Appeler explicitement un constructeur de la classede base
    3. 3. Redéfinition de données ou de fonctions
    4. 4. Spécifier un membre de la classe de base
    5. 5. Droits d’accès locaux de la classe héritée
    6. 6. Droits d’accès globaux de la classehéritée
    7. 7. Héritage multiple
    8. 8. Héritage multiple avec une base virtuelle
    9. 9. Distinction entre héritage et association
  6. Polymorphisme, virtualité
    1. 1. Accès pointeurs par défaut aux fonctionsredéfinies
    2. 2. Accès pointeur aux fonctions virtuelles redéfinies
    3. 3. Intérêt des accès pointeursaux fonctions virtuelles
    4. 4. Classes abstraites, fonctions virtuelles pures
    5. 5. Interface
Récursivité
  1. Fonctions récursives
    1. 1. Qu’est-ce que la récursivité ?
    2. 2. Une fonction récursive basique
    3. 3. Pile d’appels et débordement
    4. 4. Retourner une valeur
    5. 5. Représentation et analyse du fonctionnement
      1. a. Analyse descendante
      2. b. Analyse ascendante
    6. 6. Choisir entre itératif ou récursif
  2. Exemples classiques de fonctions récursives
    1. 1. Calculs
      1. a. Afficher les chiffres d’un entier
      2. b. Produit factoriel
      3. c. Suite de Fibonacci
      4. d. Changement de base arithmétique d’un nombre
      5. e. Puissance
      6. f. PGCD, algorithme d’Euclide
    2. 2. Dessins
      1. a. Tracé d’une règle graduée: "diviser pour résoudre"
      2. b. Tracé de cercles
      3. c. Tracé de carrés
      4. d. Tracé d’un arbre
    3. 3. Créations et jeux
      1. a. Trouver un chemin dans un labyrinthe
      2. b. Création d’un labyrinthe
    4. 4. Les tours de Hanoï
    5. 5. Tri rapide d’un tableau de nombres
  3. Mise en pratique : récursivité
Listes en C
  1. Listes chaînées dynamiques
    1. 1. Qu’est-ce qu’une liste chaînée ?
      1. a. Une chaîne constituée de maillons
      2. b. Trois types de listes chaînées
      3. c. Les actions sur une liste chaînée
      4. d. Listes chaînées contre tableaux
    2. 2. Implémenter une liste simple
      1. a. Structure de données d’un maillon
      2. b. Début et fin de la liste
      3. c. Initialiser un maillon
      4. d. Ajouter un maillon au début d’une liste
      5. e. Insérer un maillon dans une liste
      6. f. Parcourir la liste
      7. g. Supprimer un maillon au début de la liste
      8. h. Supprimer un élément sur critère
      9. i. Détruire la liste
      10. j. Sauvegarder la liste
    3. 3. Implémenter une liste simple circulaire
      1. a. Structure de données d’une liste circulaire
      2. b. Liste vide
      3. c. Début et fin de la liste
      4. d. Initialiser un maillon
      5. e. Ajouter un maillon
      6. f. Parcourir la liste
      7. g. Supprimer un maillon
      8. h. Détruire la liste
    4. 4. Implémenter une liste symétrique
      1. a. Structure de données
      2. b. Liste vide
      3. c. Début et fin de la liste
      4. d. Initialiser un élément
      5. e. Ajouter un élément au début
      6. f. Ajouter un élément à lafin
      7. g. Parcourir et afficher la liste
      8. h. Supprimer un élément
      9. i. Détruire la liste
      10. j. Copier une liste
    5. 5. Mise en pratique : listes chaînées
  2. Piles
    1. 1. Principes de la pile
      1. a. Modèle de données pile
      2. b. Implémentation statique ou dynamique
      3. c. Primitives de gestion des piles
      4. d. Applications importantes des piles
    2. 2. Implémentation d’une pile en dynamique
      1. a. Structure de données
      2. b. Pile vide, pile pleine
      3. c. Initialisation
      4. d. Empiler
      5. e. Lire le sommet
      6. f. Dépiler
      7. g. Vider, détruire
      8. h. Affichage
      9. i. Test dans le main()
    3. 3. Implémentation d’une pile en statique (tableau)
      1. a. Structure de données
      2. b. Initialisation
      3. c. Pile vide, pile pleine
      4. d. Empiler
      5. e. Lire le sommet
      6. f. Dépiler
      7. g. Vider, détruire
      8. h. Affichage
      9. i. Test dans le main()
    4. 4. Mise en pratique : les piles
  3. Files
    1. 1. Principes de la file
      1. a. Modèle de données file
      2. b. Implémentation statique ou dynamique
      3. c. Primitives de gestion des files
      4. d. Applications importantes des files
    2. 2. Implémentation d’une file en dynamique
      1. a. Structure de données
      2. b. File vide, file pleine
      3. c. Initialisation
      4. d. Enfiler
      5. e. Lire la tête, lire la queue
      6. f. Défiler
      7. g. Vider, détruire
      8. h. Affichage
      9. i. Test dans le main()
    3. 3. Implémentation d’une file en statique (tableau)
      1. a. Structure de données
      2. b. File vide, file pleine
      3. c. Initialisation
      4. d. Enfiler
      5. e. Lire la tête, lire la queue
      6. f. Défiler
      7. g. Vider, détruire
      8. h. Affichage
      9. i. Test dans le main()
    4. 4. Mise en pratique : les files
  4. Arbres
    1. 1. Généralités sur les arbres
      1. a. Principe
      2. b. Exemples d’utilisation des arbres
      3. c. Nomenclature des arbres
    2. 2. Types d’arbre
      1. a. Arbre binaire
      2. b. Arbre n-aire
      3. c. Transformer un arbre n-aire en arbre binaire
    3. 3. Représentations en mémoire
      1. a. Arbre n-aire
      2. b. Arbre binaire
      3. c. Structures de données statiques ou dynamiques
  5. Contrôler un arbre binaire
    1. 1. Créer un arbre binaire
      1. a. Créer un arbre à partir d’un schémadescriptif
      2. b. Créer un arbre à partir des donnéesaléatoires d’un tableau
      3. c. Créer un arbre en insérant des élémentsordonnés
    2. 2. Parcourir l’arbre
      1. a. Parcours en profondeur
      2. b. Parcours en largeur, par niveau
    3. 3. Afficher l’arbre
      1. a. Afficher un arbre avec indentation
      2. b. Dessiner l’arbre sans les liens
    4. 4. Obtenir des propriétés de l’arbrebinaire
      1. a. Connaître la taille
      2. b. Connaître la hauteur
      3. c. Savoir si un nœud est une feuille
      4. d. Compter le nombre des feuilles de l’arbre
      5. e. Lister toutes les feuilles
      6. f. Faire la somme des valeurs des nœuds
      7. g. Comparer des valeurs des nœuds de l’arbre
      8. h. Ramener un nœud de l’arbre à partird’une valeur
    5. 5. Dupliquer l’arbre
    6. 6. Détruire l’arbre
    7. 7. Conversion statique-dynamique d’un arbre binaire
      1. a. Conversion d’un arbre statique en dynamique
      2. b. Conversion d’un arbre dynamique en statique
    8. 8. Sauvegarde et chargement d’un arbre binaire
      1. a. Sauvegarder un arbre dynamique
      2. b. Charger (load) un arbre dynamique
    9. 9. Arbres binaires sur fichiers
      1. a. Structure de données
      2. b. Lecture d’un nœud à partir de sonnuméro d’enregistrement
      3. c. Adaptation des fonctions pour les arbres binaires dynamiques ou statiques
    10. 10. Mise en pratique : arbre binaire
  6. Arbres binaires de recherche
    1. 1. Définition
    2. 2. Structure de données
    3. 3. Insérer un élément dansl’arbre selon sa clé
      1. a. Comparer deux clés
      2. b. Insérer un élément à labonne place
    4. 4. Rechercher dans l’arbre un élémentselon sa clé
    5. 5. Supprimer un élément dans l’arbrede recherche
      1. a. Trois cas
      2. b. Fonction de recherche du nœud max
      3. c. Fonction de suppression
    6. 6. Lister tous les éléments de l’arbre(parcours en largeur)
    7. 7. Afficher l’arbre
    8. 8. Test dans le main()
    9. 9. Mise en pratique : arbres
Listes en C++ (conteneurs)
  1. Principes des conteneurs
    1. 1. Trois catégories de conteneurs
      1. a. Conteneurs séquentiels
      2. b. Conteneurs associatifs
      3. c. Les « presque conteneurs »
    2. 2. Récapitulation des bibliothèquesconteneurs
    3. 3. Opérations sur les conteneurs
      1. a. Templates, constructeurs, destructeurs
      2. b. Accès aux éléments
      3. c. Itérateurs
      4. d. Pointeurs
      5. e. Affectation
      6. f. Opérations de liste, pile et file
      7. g. Gestion des tailles et capacités
      8. h. Fonctions de comparaison
  2. Conteneurs séquentiels
    1. 1. La classe array
      1. a. Template, constructeurs, destructeurs
      2. b. Accès éléments, itérateurs
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons
    2. 2. La classe vector
      1. a. Template, constructeurs, destructeurs
      2. b. Accès aux éléments, itérateurs
      3. c. Opérations de liste
      4. d. Opérations de pile et file
      5. e. Taille et capacité
      6. f. Comparaisons entre vecteurs
      7. g. Vecteur spécialisé de booléens
    3. 3. La classe list<>
      1. a. Template, constructeurs, destructeurs
      2. b. Accès aux éléments, itérateurs
      3. c. Opérations de liste (pile et file compris)
      4. d. Comparaisons entre listes
      5. e. Taille et capacité
    4. 4. La classe deque
      1. a. Template, constructeurs, destructeurs
      2. b. Accès aux éléments, itérateurs
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons entre files
  3. Conteneurs séquentiels spécialisés
    1. 1. La classe stack
      1. a. Templates, constructeurs
      2. b. Méthodes
      3. c. Comparaisons
    2. 2. La classe queue
      1. a. Template, constructeurs
      2. b. Méthodes
      3. c. Comparaisons
    3. 3. La classe priority_queue
      1. a. Template, constructeurs
      2. b. Méthodes
      3. c. Fonctions-objets de comparaison
  4. Conteneurs associatifs
    1. 1. La classe map
      1. a. Templates, constructeurs
      2. b. Itérateurs, accès aux éléments
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons
    2. 2. La classe multimap
      1. a. Templates, constructeurs
      2. b. Itérateurs, accès aux éléments
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons
    3. 3. La classe set
      1. a. Template, constructeurs
      2. b. Itérateurs, accès aux éléments
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons
    4. 4. La classe multiset
      1. a. Template, constructeurs
      2. b. Itérateurs, accès aux éléments
      3. c. Opérations de liste
      4. d. Taille et capacité
      5. e. Comparaisons
    5. 5. La classe pair
      1. a. Template, constructeurs
      2. b. Méthodes
  5. Conteneurs « presque conteneurs »
    1. 1. La classe string
      1. a. Template
      2. b. Constructeurs
      3. c. Accès, itérateurs
      4. d. Opérations sur chaînes de caractères
      5. e. Taille et capacités
      6. f. Comparaisons
    2. 2. La classe bitset
      1. a. Template, constructeurs
      2. b. Méthodes
      3. c. Opérateurs bits à bits, comparaison
Annexe
  1. Priorité et associativité des opérateurs
5/5 2 avis
Version papier

Très satisfait des produits. Rapport qualité prix satisfaisant

Anonyme
Version papier

Clair, bien structuré et une bonne mise en page. Rien à redire sur le prix.

Anonyme
Auteur : Frédéric DROUILLON

Frédéric DROUILLON

Frédéric DROUILLON est enseignant, chercheur et aussi créateur dans le domaine de l'informatique et des arts numériques. Il envisage la programmation et ses langages comme un moyen d'expression et de formulation d'idées, une véritable écriture, qui fait naître de la recherche et de la créativité. L'objectif de son enseignement en langage C++ est de permettre au lecteur d'acquérir un savoir-faire fondamental en programmation informatique pour qui lui donnera très certainement envie de pouvoir circuler dans les autres techniques et langages de programmation.
En savoir plus

Découvrir tous ses livres

  • Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition)
  • Langage C Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)

Nos nouveautés

voir plus