i
MAP C
Introduction `a
la programmation en C
Antoine Cornu´
ejols
AgroParisTech (2006-2007)
Version (tr`es provisoire) du 17 mai 2007
ii
iii
Avertissement
Ce polycopi´e ne peut ˆetre reproduit qu’`a des fins p´edagogiques et non commerciales.
Remerciements
Ce polycopi´e doit beaucoup aux nombreux ouvrages excellents qui d´ecrivent le langage C. Il doit parti-
culi`erement aux documents mis en libre acc`es sur Internet. Je citerais en particulier :
le cours d’Anne Canteaut (http ://www-rocq.inria.fr/codes/Anne.Canteaut/COURS C/)
le cours de Bernard Cassagne (http ://clips.imag.fr/commun/bernard.cassagne/Introduction ANSI C)
que j’ai pill´es all`egrement.
Je tiens `a remercier tout sp´ecialement mes ´etudiants du cours de MAP C `a AgroParisTech qui ont subi
ce cours donn´e pour la premi`ere fois en 2007. Leurs tr`es nombreuses questions et suggestions m’ont
consid´erablement aid´e `a organiser le mat´eriel du cours et du polycopi´e. Naturellement, les erreurs et
approximations, qui sans doute l’´emaillent encore, me sont enti`erement imputables.
Merci donc `a : Camille Amosse, Erwann Arc, B´en´edicte Bachelot, Perrine Barillet, Vincent Briot, Marion
Charme, Marie Cognet, Etienne Damerose, Camille Delebecque, Aude Deloumeau, Sylvain Du Peloux De
Saint Romain, Florianne Fran¸cois, Axel Gamburzew, Aude Garda, Jean-Philippe Krieger, Denis Maret,
Elen Rondel, Cl´ementine Roux, Pierre Scemama, et H´el`ene Schernberg.
L’adresse Web : http ://www.lri.fr/ antoine/Courses/AGRO/MAP-C/page-agro-map-C.html contient
la page d’accueil du cours MAP C..
iv
Table des mati`
eres
Table des mati`eres v
1 Concepts fondamentaux 1
1 Introduction............................................ 2
1.1 Concepts fondamentaux en informatique . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Syst`eme d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Logiciels applicatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Niveaux de langages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Environnement de d´eveloppement . . . . . . . . . . . . . . . . . . . . . . 3
1.1.5 Ex´ecution d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Historique des langages de programmation . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Historique du langage C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Le d´eveloppement de logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Premier contact avec le langage C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Un exemple de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Directives du pr´eprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 La fonction main ..................................... 6
2.4 Identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Exercices ......................................... 7
3 Structure d’un programme C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 D´eclaration de variables et types de donn´ees . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 D´eclaration de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.3 Initialisation des variables comme constantes . . . . . . . . . . . . . . . . 8
3.2 Les types pr´ed´efinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Le type caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 Les types entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 Les types flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.1 Les constantes enti`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.2 Les constantes eelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.3 Les constantes caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.4 Les constantes chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . . 10
3.4 Les op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.1 L’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.2 Les op´erateurs arithm´etiques . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.3 Les op´erateurs logiques bool´eens . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.4 Les op´erateurs logiques bit `a bit . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.5 Les op´erateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.6 Les op´erateurs d’affectation compos´ee . . . . . . . . . . . . . . . . . . . . 13
3.4.7 Les op´erateurs d’incr´ementation et de ecr´ementation . . . . . . . . . . . 13
3.4.8 L’op´erateur virgule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.9 L’op´erateur conditionnel ternaire . . . . . . . . . . . . . . . . . . . . . . . 13
1 / 85 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !