Le C pour l'ingénieur¶
Cet ouvrage est destiné aux étudiants de première année Bachelor HEIG-VD, département TIN et filières Génie électrique. Il est une introduction à la programmation en C. Il couvre la matière vue durant le cycle des cours Info1 et Info2.
Le contenu de ce cours est calqué sur les fiches d'unités de cours et de modules suivantes :
La version actuelle : v0.3.0-31-gcddb9f1
Date : févr. 18, 2022
Table des matières
- 1 Introduction
- 2 La programmation
- 3 Généralités du langage
- 4 Numération
- 5 Opérateurs
- 5.1 Opérateurs relationnels
- 5.2 Opérateurs arithmétiques
- 5.3 Opérateurs bit à bit
- 5.4 Opérateurs d'affectation
- 5.5 Opérateurs logiques
- 5.6 Opérateurs d'incrémentation
- 5.7 Opérateur ternaire
- 5.8 Opérateur de transtypage
- 5.9 Opérateur séquentiel
- 5.10 Opérateur sizeof
- 5.11 Priorité des opérateurs
- 5.12 Valeurs gauches
- 5.13 Optimisation
- 6 Types de données
- 7 Structures de contrôle
- 8 Programmes et Processus
- 9 Entrées Sorties
- 10 Fonctions
- 11 Types composites
- 12 Les fichiers
- 13 Gestion de la mémoire
- 14 Pointeurs
- 14.1 Pointeur simple
- 14.2 Arithmétique de pointeurs
- 14.3 Pointeur et chaînes de caractères
- 14.4 Structures et pointeurs
- 14.5 Pointeurs et paramètres de fonctions
- 14.6 Transtypage de pointeurs (cast)
- 14.7 Pointeurs de fonctions
- 14.8 La règle gauche-droite
- 14.9 Initialisation par transtypage
- 14.10 Enchevêtrement ou Aliasing
- 15 Bibliothèques
- 16 Préprocesseur
- 17 Algorithmes et conception
- 18 Compilation séparée
- 19 Portée et visibilité
- 20 Qualité et Testabilité
- 21 Structures de données
- 21.1 Types de données abstraits
- 21.2 Tableau dynamique
- 21.3 Buffer circulaire
- 21.4 Listes chaînées
- 21.5 Liste doublement chaînée
- 21.6 Liste chaînée déroulée (Unrolled linked list)
- 21.7 Arbre binaire de recherche
- 21.8 Heap
- 21.9 Queue prioritaire
- 21.10 Tableau de Hachage
- 21.11 Piles ou LIFO (Last In First Out)
- 21.12 Queues ou FIFO (First In First Out)
- 21.13 Performances
- 22 Avancé
- 23 Pièges
- 24 Philosophie
Annexes
Références
Colophon¶
L'écriture du présent ouvrage a été réalisée en utilisant reStructuredText, un langage couramment utilisé pour l'écriture de documentation et largement utilisé dans la communauté Python. Ce langage s'intègre dans le projet Docutils qui s'inspire d'outils tels que Javadoc. La compilation des sources est réalisée sous Sphinx, un paquet Python permettant de générer une documentation HTML ainsi qu'un ouvrage PDF via LaTeX.
L'ensemble des sources est compilé dans un environnement isolé sous Docker en utilisant un service donnant accès à la suite logicielle texlive.
Les sources sont hébergées sous GitHub. Un système d'intégration continue permet de vérifier à chaque changement que l'ensemble compile sans erreur.