Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Langage C - Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)

Langage C Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)

2 avis

Informations

Livraison possible dès le 22 avril 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-409-03101-4
  • EAN : 9782409031014
  • Ref. ENI : RI2PROPC

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-409-03102-1
  • EAN : 9782409031021
  • Ref. ENI : LNRI2PROPC
Ce livre s'adresse aux développeurs débutants qui souhaitent maîtriser la conception algorithmique en s'appuyant 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 modularité et la généricité du langage C vont permettre au lecteur d'acquérir un savoir-faire fondamental en programmation informatique. Au-delà du fonctionnement du langage, l'auteur fournit ce qu'il faut de précision et de pratique...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 900 pages
  • Parution juillet 2021
  • Niveau Initié à Confirmé
  • Parution juin 2021
Ce livre s'adresse aux développeurs débutants qui souhaitent maîtriser la conception algorithmique en s'appuyant 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 modularité et la généricité du langage C vont permettre au lecteur d'acquérir un savoir-faire fondamental en programmation informatique.

Au-delà du fonctionnement du langage, l'auteur fournit ce qu'il faut de précision et de pratique pour que le lecteur se l'approprie et le 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 dix premiers chapitres concernent l'apprentissage du langage C et les premières armes en algorithmique : variables et opérations, concepts de sauts, de branchements, de boucles et de fonctions, structures, tableaux, unions et bien entendu les pointeurs. La suite du livre apporte des approfondissements avec l'étude des listes en C. Les listes chaînées dynamiques, mais également les piles et les files ainsi que les arbres, essentiellement les arbres binaires, sont expliqués. Pour ce faire, un chapitre expose la récursivité, élément incontournable pour l'implémentation des arbres. Pour finir, un chapitre consacré à la bibliothèque multimédia Allegro 5 fournit une introduction au graphisme et à la programmation de jeu vidéo.

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



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Téléchargements

Introduction
  1. Objectif : apprendre à programmer avec le C
  2. Contenu
  3. Librairies graphiques
  4. Public visé
  5. Organisation du livre
    1. 1. Chapitres
    2. 2. Des questions pour faciliter apprentissage et synthèse
    3. 3. Solutions des exercices
  6. 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
    4. 4. La programmation comme écriture
Installations
  1. Qu'est-ce que programmer ?
  2. Le positionnement par rapport à l'ordinateur
  3. Les logiciels de la programmation
    1. 1. Le compilateur
    2. 2. L’IDE : environnement de développement
  4. Travailler avec Visual Studio (conseillé)
    1. 1. Installer Visual Studio
    2. 2. Créer un projet sous Visual Studio
    3. 3. Premier programme sous Visual Studio
      1. a. Ajouter une page de code au projet vide
      2. b. La fonction main() : entrée du programme
      3. c. Afficher du texte avec la fonction printf()
      4. d. Compiler le programme
    4. 4. Lancer le programme
      1. a. Lancer le programme sans débogage depuisVisual Studio (pratique)
      2. b. Lancer le programme depuis l’exécutable surle disque dur
      3. c. Lancer le programme en mode débogage
      4. d. Lancer le programme depuis une invite de commandes
    5. 5. Conserver la fenêtre console ouverte
      1. a. Insérer un point d’arrêt en modedébogage
      2. b. Ajouter une instruction
    6. 6. Créer un modèle de projet
    7. 7. Plusieurs projets dans un même espace detravail
  5. Travailler avec Code::Blocks
    1. 1. Installer Code::Blocks
    2. 2. Créer un projet sous Code::Blocks
    3. 3. Compiler et lancer un programme sous Code::Blocks
  6. Base d'un programme
    1. 1. Des données et des instructions
    2. 2. Des librairies de fonctions
  7. Mise en pratique : découverte du compilateur
Variables simples
  1. Introduction
  2. Qu'est-ce qu’une variable en informatique ?
  3. Définir des variables dans un programme
    1. 1. Les types de variables élémentairesen C
    2. 2. Déclarer ses variables dans un programme
    3. 3. Contraintes pour le choix des noms
  4. Mise en pratique : définir des variables dans un programme
  5. Manipulations de base sur les variables
    1. 1. Affecter une valeur à une variable
    2. 2. Les suffixes L, LL et f
    3. 3. Des valeurs de type caractère (codage ASCII)
    4. 4. printf() pour afficher des valeurs
    5. 5. Obtenir des caractères accentuésdans la console (sous Windows)
    6. 6. Obtenir et afficher la taille en mémoired’une variable
    7. 7. Obtenir et afficher l’adresse mémoire d’unevariable
    8. 8. Récupérer une valeur entréepar l’utilisateur
      1. a. La fonction scanf()
      2. b. Plusieurs entrées dans un seul appel de scanf
    9. 9. scanf ou scanf_s ?
      1. a. La fonction scanf_s()
      2. b. scanf() et scanf_s() sous Visual Studio
    10. 10. Précisions pour les emplois de scanf et scanf_s
      1. a. Contrôler la saisie avec la valeur de retourde scanf et scanf_s
      2. b. Les pièges de scanf et scanf_s
  6. Mise en pratique : manipulations des variables
  7. Les constantes
    1. 1. Définition, mot-clé const
    2. 2. Macro-constantes #define
    3. 3. Suite de constantes enum
  8. Comprendre les variables
    1. 1. Codage et mesure de l’information
    2. 2. Plages de valeurs en décimal
    3. 3. Troncature
    4. 4. Codage des nombres négatifs
  9. Expérimentation : variables simples, déclaration, affectation, affichage, saisie
  10. Mise en pratique : codage des informations numériques
Les opérations
  1. Introduction
  2. La notion d'expression
  3. Opérations arithmétiques
    1. 1. Les opérateurs +, -, *, /, %
    2. 2. Les affectations combinées
    3. 3. Opérateurs d’incrémentationet de décrémentation
    4. 4. Opérations entre types différents,opérateur de conversion (cast)
    5. 5. Priorités entre opérateurs
  4. Mise en pratique : opérations arithmétiques, cast
  5. Obtenir des valeurs aléatoires
    1. 1. Principe du pseudo-aléatoire
    2. 2. La fonction rand()
    3. 3. La fonction srand()
    4. 4. Valeurs aléatoires dans des fourchettes
  6. Mise en pratique : opérations et nombres aléatoires
  7. Opérations bit à bit
    1. 1. ET : opérateur &
    2. 2. OU exclusif : opérateur ^
    3. 3. OU inclusif : opérateur |
    4. 4. Complément : opérateur ~
    5. 5. Décalages gauche et droite : opérateurs>> et <<
    6. 6. Priorités des opérateurs bit à bit
  8. Mise en pratique : opérations bit à bit
  9. 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 etde comparaison
    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éesavec 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. Principe
    2. 2. Exemple de fonction sans retour et sans paramètre
    3. 3. Déclaration et visibilité d’unefonction
    4. 4. Exemples de fonction avec paramètres
      1. a. Déplacer le curseur en écriturede la fenêtre console
      2. b. Changer le couleur des caractères
      3. c. À propos de la couleur en console
      4. d. Afficher une lettre à une position et d’unecouleur données dans la console
      5. e. Tracer une ligne horizontale
      6. f. Le programme complet
    5. 5. Exemples de fonctions avec retour
      1. a. Retourner un nombre aléatoire entre 0 et1
      2. b. Retourner le résultat d’un lancer de deuxdés à six faces
      3. c. Programme complet
    6. 6. Exemple de fonction avec retour et avec paramètres
      1. a. Conversion en chiffres romains
    7. 7. Transformer les paramètres d’entréeen sorties
      1. a. Précision sur le passage par valeur
      2. b. Passage par référence
    8. 8. 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()
    9. 9. Fonctions récursives
    10. 10. 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. Remarques 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. Création de circuits aléatoires
      2. b. Création de trajets non bouclés
      3. c. Ascenseur de la tour infernale
      4. d. 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 #define et enum
      1. a. Utiliser un #define (directive macroprocesseur)
      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
      6. f. Pas de tableau statique en valeur de retour
    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
Les unions
  1. Principe de l'union
  2. Unions discriminées
  3. Union de structures et simulation d’héritage (concept programmation objet)
  4. Tableau d'unions
Concevoir et réaliser un programme
  1. Déterminer le sujet et définir des objectifs
    1. 1. Principe de l’automate cellulaire
    2. 2. Fonctionnement envisagé
  2. Trouver une structure de données valable
  3. Identifier les fonctions principales
  4. Choisir le niveau des variables fondamentales
  5. Écrire les fonctions
    1. 1. Fonction d’initialisation
    2. 2. Fonction d’affichage
    3. 3. Fonction de calcul
    4. 4. Fonction de comptage des voisins
    5. 5. Fonction de recopie
    6. 6. Montage dans le main()
  6. Intégrer une librairie personnelle
  7. Répartir son code sur plusieurs fichiers C
    1. 1. Code réparti en quatre fichiers C
    2. 2. Problème de redéfinition
  8. Mise en pratique : structuration d'un programme
    1. 1. Simulation d’un feu de forêt
    2. 2. Tristus et rigolus
    3. 3. Simulation d’une attaque de microbes dans le sang
    4. 4. Bancs de poissons, mouvements de populations
    5. 5. Élection présidentielle
    6. 6. Chenille
    7. 7. Système de vie artificielle, colonies defourmis
    8. 8. Boutons et pages
    9. 9. Panneaux de bois et entrepôts
    10. 10. Nenuphs et clans
    11. 11. Neige 1
    12. 12. Neige 2
    13. 13. Neige 3
    14. 14. Casse-brique simple
    15. 15. Casse-brique guru
    16. 16. Space Invaders simple
    17. 17. Space Invaders more
    18. 18. Space Invaders guru
    19. 19. Pacman débutant
    20. 20. Pacman intermediate
    21. 21. Pacman guru
    22. 22. Jeu de miroirs
    23. 23. 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. Quatre 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 en même temps qu’une structure
    2. 2. Allouer un tableau avec un pointeur
    3. 3. Allouer une matrice avec un pointeur de pointeur
    4. 4. Allouer un tableau dynamique de pointeurs
      1. a. Tableau dynamique de pointeurs de structures
      2. b. Allocation dynamique d’un tableau de pointeurs surdes unions
    5. 5. Différences entre tableaux statiques et dynamiques
    6. 6. Autres fonctions d’allocation dynamique
      1. a. Fonction calloc()
      2. b. Fonction realloc()
    7. 7. 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. Subtilités à propos des tableauxen paramètre de fonction
    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. Établir des relations entre structures
    1. 1. Association de structures de types différents
    2. 2. Association de deux structures de même type
Introduction aux fichiers
  1. Fichiers (type FILE*)
  2. Notions de base
    1. 1. Le type FILE*
    2. 2. Ouverture et fermeture d’un fichier
    3. 3. Spécifier un chemin d’accès
  3. Fichiers binaires
    1. 1. Écriture et lecture en mode binaire
    2. 2. Détecter la fin d’un fichier binaire
    3. 3. Déplacements dans un fichier
  4. Écriture et lecture en mode texte
    1. 1. Détecter la fin d’un fichier : EOF et feof()
    2. 2. Lecture/écriture de caractères
    3. 3. Lecture/écriture de chaînes
    4. 4. Lecture/écriture formatées
  5. Sauvegarde d'éléments dynamiques
    1. 1. Sauvegarder et récupérer un tableaudynamique
    2. 2. Récupérer des données viades pointeurs
  6. Expérimentation : récapitulation sauvegardes binaires
  7. Mise en pratique : fichiers
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. Plus grand commun dénominateur (PGCD), algorithmed’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
      11. k. Test dans le main()
    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
      9. i. Test dans le main()
    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. Supprimer un élément selon un critère
      10. j. Détruire la liste
      11. k. Copier une liste
      12. l. Test dans le main()
    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 et écriture d’un nœud à partirde son numéro d’enregistrement
      3. c. Adaptation des fonctions pour les arbres binairesdynamiques 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
Graphisme et jeux sous Allegro 5
  1. Introduction
    1. 1. Installer la bibliothèque
      1. a. Package NuGet sous Visual Studio
      2. b. À propos de Code::Blocks
    2. 2. Paramétrages indispensables
      1. a. Choisir un type de bibliothèque
      2. b. Sélectionner des modules
      3. c. Vérifier l’installation : premier programme
    3. 3. Créer une fenêtre
    4. 4. Obtenir le clavier
      1. a. Capture simple
      2. b. Correction des répétitions
    5. 5. Obtenir la souris
      1. a. Capture simple
      2. b. Correction des répétitions
    6. 6. Création d’un modèle de projet
    7. 7. Précisions à propos de la fenêtreconsole
      1. a. Projet sans console Windows
      2. b. Console multiplateforme native Allegro 5
  2. Contrôler la fenêtre
    1. 1. Taille et position
    2. 2. Attribut de redimensionnement
    3. 3. Obtenir le plein écran
    4. 4. Contrôle des résolutions de l’écran
      1. a. Résolutions supportées
      2. b. Obtenir la plus grande résolution
  3. Dessiner
    1. 1. Couleur, transparence
    2. 2. Installation du module de dessin
    3. 3. Lignes, triangles, rectangles, cercles
    4. 4. Autres fonctions de tracés
      1. a. Arcs
      2. b. Courbe de Bézier (spline)
      3. c. Ruban
  4. Images
    1. 1. Bitmap en mémoire
      1. a. Créer une bitmap
      2. b. Dessiner dans une bitmap
    2. 2. Image
      1. a. Charger une image
      2. b. Afficher une image
      3. c. Sélectionner une image pour la modifier
      4. d. Obtenir les propriétés de l’image
      5. e. Sauvegarder une image
      6. f. Expérimentation de sauvegarde d’une image
    3. 3. L’image pixel par pixel
      1. a. Accéder aux pixels
      2. b. Expérimenter le verrouillage al_get_pixel(),al_put_pixel()
  5. Événements
    1. 1. Mettre en place une boucle d’événements
      1. a. Création d’une file d’événements
      2. b. Sélection des types d’événements à prendreen compte
      3. c. Capture des événements
      4. d. Identification de l’événement
      5. e. Autres possibilités de capture d’événements
      6. f. Récupérer le clavier et la souris dansune boucle d’événements
    2. 2. Piloter un carré avec les flèches
    3. 3. Contrôler l’exécution d’un programme avecun minuteur
    4. 4. Donner de la fluidité aux mouvements du rectangle
  6. Animation, sprites
    1. 1. Introduction
    2. 2. Un personnage marchant sur place
    3. 3. Un personnage piloté par le clavier
    4. 4. Gestion de la couleur du masque
    5. 5. Contrôle de la vitesse de l’animation
    6. 6. Récupération d’une séried’images sur un fichier unique
    7. 7. Plusieurs séquences simultanées
      1. a. Plusieurs balles qui rebondissent
      2. b. Plusieurs personnages qui se déplacent
  7. Modèle de jeu simple
    1. 1. Introduction
    2. 2. Le vaisseau
      1. a. Mouvements du vaisseau
      2. b. Structure de données du vaisseau
      3. c. Initialisation
      4. d. Affichage
      5. e. Déplacements
    3. 3. Boucle événementielle du jeu, organisationdu code
    4. 4. Lancement de missiles
      1. a. Structure de données du missile
      2. b. Initialisation
      3. c. Affichage
      4. d. Mouvement
      5. e. Lancement
      6. f. Mise à jour du code, action
    5. 5. Avancée des ennemis
      1. a. Structure de données de l’ennemi
      2. b. Initialisation
      3. c. Affichage
      4. d. Mouvement
      5. e. Apparition
      6. f. Mise à jour du code, action
    6. 6. Collisions
      1. a. Point dans un rectangle
      2. b. Point dans un triangle
      3. c. Intersection de rectangles
      4. d. Recherche d’une couleur sur un fond
    7. 7. Destruction des ennemis
      1. a. Détection de collisions missiles-ennemis
      2. b. Détection de collisions entre vaisseau etennemis
    8. 8. Code complet du programme
Annexe
  1. Priorité et associativité des opérateurs
5/5 2 avis

Super livre, très complet. Je recommande

Brandon G

RAS.

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)
  • Du C au C++ De la programmation procédurale à l'objet (2ième édition)

Nos nouveautés

voir plus