Initiation à la programmation en C, École normale supérieure, année 2006-2007
Note:
Cette page est une archive correspondant au cours de l'année 2006-2007.
À partir de l'année 2007-2008, ce cours est assuré par
Damien Vergnaud.
Ce cours est une initiation à la programmation
en langage C
pour non informaticiens.
Le cours a lieu tous les jeudis de 18h30 à 20h30.
Il commence par une présentation théorique en salle R,
suivie d'une séance de travaux pratiques en salle S.
Le cours est fini.
Le dernier cours a eu lieu le 10/05/2007.
Table des matières
Cours et TPs
- [15/02/2007] cours 1, le
TP 1 correspondant et son corrigé.
- [22/02/2007] cours 2, le
TP 2 correspondant et son corrigé.
- [01/03/2007] cours 3, le
TP 3 correspondant et son corrigé.
- [08/03/2007] cours 4, le
TP 4 correspondant et son corrigé.
- [15/03/2007] cours 5, le
TP 5 correspondant (dont un
programme à déboguer)
et le corrigé.
- [22/03/2007] cours 6, le
TP 6 correspondant et son corrigé.
- [29/03/2007] pas de cours
car je serai là,
mais voici un sujet de TP
(partiellement) corrigé.
- [05/04/2007] cours 7, le
TP 7 correspondant et son corrigé.
- [12/04/2007] cours 8, le
TP 8 correspondant et son corrigé.
- [19/04/2007] pas de cours (vacances),
- [26/04/2007] cours 9, le
TP 9 correspondant, le fichier
tab.h, et le corrigé.
- [03/05/2007] pas de cours.
- [10/05/2007] dernier cours: cours 10, le
TP 10 correspondant,
et le corrigé.
Fiches
Ces fiches proposent quelques compléments facultatifs au cours.
Elles comportent généralement plusieurs parties largement indépendantes
et développent des thèmes en marge du cours.
D'autres contiennent des tables de références utiles.
Il ne s'agit donc pas de les lire intégralement et dans l'ordre, mais
plutôt de s'y référer pour répondre à un besoin précis ou élargir
sa culture.
Description
Ce cours est ouvert aux élèves de toutes les disciplines, littéraires comme
scientifiques.
Aucune connaissance préalable en programmation n'est requise.
Le cours n'est pas orienté à priori vers une application particulière.
Il s'adaptera aux besoins des élèves.
Il sera utile au non informaticien qui aura un jour à programmer rapidement
une simulation, mais aussi à tout personne souhaitant comprendre comment
sont fait les programmes informatiques.
Il a pas d'examen pour ce cours. Le cours ne délivre pas d'ECTS.
Livre de référence
La référence du langage C:
-
Brian W. Kernighan et Dennis M. Ritchie.
Le Langage C (Norme ANSI), seconde édition.
Masson, 1990.
ou en version originale:
-
Brian W. Kernighan et Dennis M. Ritchie.
The C Programming Language (Ansi C), Second Edition.
Prentice Hall, Inc., 1988.
Pensez bien à prendre la seconde édition, qui décrit le langage à
la norme ANSI.
Autres livres
Il existe de nombreux autres livres, de plus ou moins bonne facture.
Voici quelque conseils pour choisir:
-
Avant d'ouvrir un livre, vérifiez la version du langage décrite.
Bien que globalement compatible, le langage a subit quelques
mutations depuis 1978.
On distingue les versions suivantes:
- Le C original K&R, tel que décrit dans la première édition du livre
de Kernighan et Ritchie. À éviter si possible.
- C ANSI, tel que normalisé en 1989
par l'ANSI.
C'est la version qu'on utilisera.
- C99, normalisé par l'ISO en 1999.
C'est la dernière version en date.
Elle est compatible avec la version ANSI et
apporte quelques améliorations (qu'on ne détaillera pas).
Un livre sur le C99 fera donc l'affaire.
-
Évitez les livres qui traitent d'un environnement ou d'un compilateur
particulier (par exemple, programmation en C sous Windows avec Visual Studio).
Ils peuvent décrire des extensions très locales du langage.
Dans le cours, on mettra à l'inverse l'accent sur la portabilité,
c'est à dire, l'écriture de programmes qui marchent sur tous types
d'ordinateurs et de systèmes d'exploitations.
-
Ne pas prendre de livre sur le C++ ou le C# qui sont des langages différents!
Il existe de nombreux cours de C en ligne.
Pour travailler chez vous, il vous faudra un compilateur C.
Si vous n'avez pas déjà de compilateur préféré,
je vous conseille GCC.
Il existe pour de nombreux systèmes et c'est lui qu'on utilisera en TP:
- GNU/Linux: GCC est installé par défaut.
- MacOS X:
GCC est inclus dans l'environnement Xcode (anciennement nommé Developer's tools) qu'il faut installer à partir des CD/DVDs fournis
avec le système.
- Windows: je conseille d'installer l'environnement de programmation
libre MinGW qui propose un GCC pour Windows.
Une alternative est l'environnement cygwin qui contient
également GCC.
Enfin, certaines versions de l'environnement de programmation propriétaire
Visual Studio de Microsoft sont téléchargeables gratuitement, par exemple
Visual Studio C++ 2005 Express (qui fait aussi le C, pas
uniquement le C++).
Antoine Miné