• Aide
  • Eurêkoi Eurêkoi

Livre

Pratique performante du langage C : cours, techniques et exercices corrigés

Résumé

Une présentation du langage C, des mécanismes de la programmation et des techniques de débogage.


  • Éditeur(s)
  • Date
    • DL 2013
  • Notes
    • Avant-titre : "Programmation". - IUP, licence
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (VI-371 p.) : ill., couv. ill. ; 26 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-7298-8355-3
  • Indice
  • Quatrième de couverture
    • L'ouvrage : niveau B (IUP - Licence)

      Pour atteindre une pratique performante du langage C, il ne suffit pas d'apprendre une syntaxe. Pour éviter d'être perdu face à d'incompréhensibles plantages lors de sa mise en oeuvre, il faut surtout apprendre les mécanismes de la programmation, les pièges et les techniques de débogage, et le lien avec le matériel.

      A cet effet, l'ouvrage propose une présentation rigoureuse complète du langage et des techniques de programmation. Il expose les notions fondamentales : types, opérateurs, structures de contrôle, fonctions, tableaux... Puis il en développe les avancées : pointeurs, entrées/sorties, préprocesseur et modularité, programmation multithreads... Enfin, deux chapitres plus généraux complètent le livre : le premier est une introduction à l'algorithmique via les structures de données classiques (arbres, piles, listes...) et leur implémentation en C ; le second illustre le «bien programmer» à travers une collection de recettes et de règles de programmation et de test.

      L'exposé s'appuie sur de nombreux exemples et insiste tout au long des pages sur les points délicats et les causes classiques de bogues. Il est illustré par des exercices corrigés qui en faciliteront l'assimilation et son contrôle.


  • Tables des matières
      • Pratique performante du langage C

      • Cours, techniques et exercices corrigés

      • Emmanuel Lazard

      • Ellipses

      • I Présentation 1
      • I.1 Introduction1
      • I.1.1 Histoire du C1
      • I.1.2 Présentation du langage2
      • I.1.3 Composition d'un programme4
      • I.1.4 Exemple : le «hello, world»5
      • I.1.5 Syntaxe de base du langage7
      • II Types fondamentaux et identificateurs 9
      • II.1 Types de base11
      • II.1.1 Entiers11
      • II.1.2 Réels14
      • II.1.3 Autres types16
      • II.2 Constantes21
      • II.2.1 Constantes caractères21
      • II.2.2 Constantes numériques24
      • II.2.3 Constantes chaînes de caractères26
      • II.2.4 Expression constante29
      • II.3 Définition de variables29
      • II.3.1 Identificateurs30
      • II.3.2 Déclaration31
      • II.3.3 Visibilité des variables35
      • II.3.4 Définition de type avec typedef40
      • III Expressions 41
      • III.1 Opérateurs42
      • III.1.1 Opérateurs arithmétiques42
      • III.1.2 Opérateurs bit à bit44
      • III.1.3 Opérateurs booléens47
      • III.1.4 Autres opérateurs50
      • III.2 Affectation52
      • III.2.1 Forme générale52
      • III.2.2 Forme condensée54
      • III.2.3 Incrémentation et décrémentation55
      • III.3 Conversion de types55
      • III.3.1 Conversion implicite55
      • III.3.2 Conversion explicite59
      • III.4 Évaluation des expressions61
      • III.4.1 Priorité des opérateurs61
      • III.4.2 Ordre d'évaluation63
      • IV Structures de contrôle 65
      • IV.1 Instructions65
      • IV.1.1 Principes et syntaxe65
      • IV.1.2 Instructions et expressions67
      • IV.1.3 Instructions et blocs68
      • IV.2 Instruction conditionnelle70
      • IV.2.1 Forme simple70
      • IV.2.2 Forme générale72
      • IV.2.3 Instruction de sélection74
      • IV.3 Boucles76
      • IV.3.1 Instruction de répétition76
      • IV.3.2 Instruction d'itération78
      • IV.4 Ruptures de séquence80
      • IV.4.1 Instruction de sortie de boucle80
      • IV.4.2 Instruction d'abandon d'itération81
      • IV.4.3 Instruction de sortie de fonction82
      • IV.4.4 Branchements83
      • V Première approche des entrées/sorties 87
      • V.1 Entrées/sorties par caractère88
      • V.1.1 Récupération88
      • V.1.2 Affichage89
      • V.2 Entrées/sorties formatées90
      • V.2.1 Affichage formaté90
      • V.2.2 Lecture formatée96
      • VI Tableaux et chaînes 103
      • VI.1 Tableaux103
      • VI.1.1 Définition et initialisation103
      • VI.1.2 Utilisation106
      • VI.1.3 Tableaux multidimensionnels108
      • VI.2 Chaînes de caractères111
      • VI.2.1 Initialisation et stockage111
      • VI.2.2 Utilisation113
      • VII Fonctions 115
      • VII.1 Définition118
      • VII.1.1 Syntaxe118
      • VII.1.2 Type de la fonction et des paramètres119
      • VII.1.3 Variables locales123
      • VII.2 Appel d'une fonction125
      • VII.2.1 Instruction d'appel125
      • VII.2.2 Paramètres126
      • VII.2.3 Nombre variable de paramètres128
      • VII.2.4 Récursivité130
      • VII.3 Prototype de fonction130
      • VII.3.1 Vérification par le compilateur130
      • VII.3.2 Déclaration avancée de fonction134
      • VIII Pointeurs 137
      • VIII.1 Description137
      • VIII.1.1 La mémoire137
      • VIII.1.2 Déclaration139
      • VIII.2 Utilisation142
      • VIII.2.1 Argument de type pointeur142
      • VIII.2.2 Différents types de pointeurs144
      • VIII.2.3 Arithmétique de pointeurs148
      • VIII.2.4 Pointeurs et tableaux149
      • VIII.2.5 Allocation dynamique153
      • VIII.2.6 Un exemple : tableau de pointeurs158
      • IX Structures et unions 163
      • IX.1 Structures163
      • IX.1.1 Déclaration163
      • IX.1.2 Structures et pointeurs166
      • IX.1.3 Structures et fonctions167
      • IX.1.4 Structures et récursivité168
      • IX.2 Unions170
      • IX.2.1 Définition170
      • IX.2.2 Utilisation171
      • IX.3 Champs de bits172
      • IX.3.1 Utilisation173
      • X Le préprocesseur 175
      • X.1 Macros176
      • X.1.1 Macros sans argument176
      • X.1.2 Macros avec arguments178
      • X.1.3 Utilisation179
      • X.2 Compilation conditionnelle184
      • X.2.1 Test d'existence184
      • X.2.2 Test général186
      • X.3 Modularité189
      • X.3.1 Conception d'un programme C189
      • X.3.2 Fichiers d'entête196
      • XI Les entrées/sorties 203
      • XI.1 E/S simples204
      • XI.1.1 E/S d'un caractère204
      • XI.1.2 E/S ligne par ligne204
      • XI.2 Gestion de fichiers205
      • XI.2.1 Flot caractère, flot binaire205
      • XI.2.2 Ouverture et fermeture de fichiers207
      • XI.2.3 Lecture et écriture textuelle209
      • XI.2.4 Lecture et écriture formatées213
      • XI.2.5 Opérations en mode binaire215
      • XI.2.6 Opérations diverses218
      • XII La bibliothèque standard 227
      • XII.1 Bibliothèques classiques228
      • XII.1.1 Bibliothèque standard : stdlib.h228
      • XII.1.2 Gestion des chaînes : string.h236
      • XII.1.3 Bibliothèque mathématique : math.h243
      • XII.1.4 Gestion des types : ctype.h246
      • XII.2 Autres247
      • XII.2.1 Aide à la mise au point : assert.h247
      • XII.2.2 Gestion du temps : time.h249
      • XII.2.3 Autres entêtes251
      • XIII C avancé 253
      • XIII.1 Pointeurs de fonction253
      • XIII.1.1 Utilisation253
      • XIII.1.2 Exemples255
      • XIII.1.3 Déclarations complexes259
      • XIII.2 Les normes C99 et C11261
      • XIII.2.1 C99261
      • XIII.2.2 C11264
      • XIII.3 Programmation multithreads266
      • XIII.3.1 Présentation266
      • XIII.3.2 Vie des threads269
      • XIII.3.3 Synchronisation des threads276
      • XIII.3.4 Modèles de programmation288
      • XIV Algorithmique et structures de données 293
      • XIV.1 Règles de base294
      • XIV.2 Structures de données classiques294
      • XIV.2.1 Tableau295
      • XIV.2.2 Liste chaînée297
      • XIV.2.3 Structure de pile301
      • XIV.2.4 Arbre binaire de recherche302
      • XIV.2.5 Table de hachage308
      • XIV.2.6 Tampon cyclique311
      • XV Méthodologie de bonne programmation 319
      • XV.1 Le génie logiciel319
      • XV.1.1 Les différentes étapes320
      • XV.1.2 Cycle de vie - les méthodes de développement323
      • XV.2 Bien programmer325
      • XV.2.1 Modélisation325
      • XV.2.2 Programmation327
      • XV.3 Éviter les bugs335
      • XV.3.1 Réflexes de programmation335
      • XVI Exercices 341
      • XVI.1 Exercices de base341
      • XVI.2 Exercices sur les tableaux345
      • XVI.3 Exercices sur les pointeurs349
      • XVI.4 Exercices sur les structures355
      • XVI.5 Exercices de gestion de fichiers362
      • Index 365
      • Bibliographie 372

  • Origine de la notice:
    • FR-751131015
  • Disponible - 681.229(07) LAZ

    Niveau 3 - Informatique