Apprenez
programmer en C !
Par Mathieu Nebra (M@teo21)
www.siteduzero.com
Licence Creative Commons 6 2.0
Derni re mise jour le 29/11/2012
Sommaire
2/399
Sommaire ...........................................................................................................................................
Lire aussi ............................................................................................................................................
Apprenez programmer en C ! ..........................................................................................................
Partie 1 : Les bases de la programmation en C ..................................................................................
Vous avez dit programmer ? .............................................................................................................................................
Programmer, c'est quoi ? ............................................................................................................................................................................................
Programmer, dans quel langage ? ............................................................................................................................................................................
Un peu de vocabulaire ..............................................................................................................................................................................................
Pourquoi choisir d'apprendre le C ? ..........................................................................................................................................................................
Programmer, c'est dur ? ............................................................................................................................................................................................
Ayez les bons outils ! .......................................................................................................................................................
Les outils n cessaires au programmeur ...................................................................................................................................................................
Choisissez votre IDE .................................................................................................................................................................................................
Code::Blocks (Windows, Mac OS, Linux) ..................................................................................................................................................................
T l charger Code::Blocks .........................................................................................................................................................................................
Cr er un nouveau projet ............................................................................................................................................................................................
Visual C++ (Windows seulement) .............................................................................................................................................................................
Installation .................................................................................................................................................................................................................
Cr er un nouveau projet ............................................................................................................................................................................................
Ajouter un nouveau fichier source .............................................................................................................................................................................
La fen tre principale de Visual ..................................................................................................................................................................................
Xcode (Mac OS seulement) ......................................................................................................................................................................................
Xcode, o es-tu ? ......................................................................................................................................................................................................
Lancement de Xcode ................................................................................................................................................................................................
La fen tre de d veloppement ...................................................................................................................................................................................
Ajouter un nouveau fichier ........................................................................................................................................................................................
En r sum .................................................................................................................................................................................................................
Votre premier programme ...............................................................................................................................................
Console ou fen tre ? .................................................................................................................................................................................................
Les programmes en fen tres ....................................................................................................................................................................................
Les programmes en console .....................................................................................................................................................................................
Un minimum de code ................................................................................................................................................................................................
Demandez le code minimal votre IDE ....................................................................................................................................................................
Analysons le code minimal ........................................................................................................................................................................................
Testons notre programme .........................................................................................................................................................................................
crire un message l' cran ......................................................................................................................................................................................
Dis Bonjour au Monsieur ...........................................................................................................................................................................................
Les caract res sp ciaux ...........................................................................................................................................................................................
Le syndrome de G rard ............................................................................................................................................................................................
Les commentaires, c'est tr s utile ! ...........................................................................................................................................................................
Un monde de variables ...................................................................................................................................................
Une affaire de m moire .............................................................................................................................................................................................
Les diff rents types de m moire ...............................................................................................................................................................................
La m moire vive en photos .......................................................................................................................................................................................
Le sch ma de la m moire vive .................................................................................................................................................................................
D clarer une variable ................................................................................................................................................................................................
Donner un nom ses variables ................................................................................................................................................................................
Les types de variables ...............................................................................................................................................................................................
D clarer une variable ................................................................................................................................................................................................
Affecter une valeur une variable .............................................................................................................................................................................
La valeur d'une nouvelle variable ..............................................................................................................................................................................
Les constantes ..........................................................................................................................................................................................................
Afficher le contenu d'une variable .............................................................................................................................................................................
Afficher plusieurs variables dans un m me printf .....................................................................................................................................................
R cup rer une saisie ................................................................................................................................................................................................
Une b te de calcul ...........................................................................................................................................................
Les calculs de base ...................................................................................................................................................................................................
La division .................................................................................................................................................................................................................
Le modulo .................................................................................................................................................................................................................
Des calculs entre variables .......................................................................................................................................................................................
Les raccourcis ...........................................................................................................................................................................................................
L'incr mentation ........................................................................................................................................................................................................
Publicité
La d cr mentation ....................................................................................................................................................................................................
Les autres raccourcis ................................................................................................................................................................................................
La biblioth que math matique ..................................................................................................................................................................................
fabs ............................................................................................................................................................................................................................
ceil .............................................................................................................................................................................................................................
floor ...........................................................................................................................................................................................................................
pow ............................................................................................................................................................................................................................
sqrt ............................................................................................................................................................................................................................
sin, cos, tan ...............................................................................................................................................................................................................
asin, acos, atan .........................................................................................................................................................................................................
exp .............................................................................................................................................................................................................................
log ..............................................................................................................................................................................................................................
log10 ..........................................................................................................................................................................................................................
2
6
8
8
9
9
10
10
11
12
13
14
14
15
15
17
19
20
20
23
24
25
25
25
26
27
28
28
29
29
29
31
31
32
34
35
36
37
38
39
40
41
41
42
43
45
45
45
47
48
49
50
50
52
52
54
55
Publicité
56
57
57
59
59
59
60
60
61
62
62
62
62
62
63
63
63
63
www.siteduzero.com
Sommaire
3/399
En r sum .................................................................................................................................................................................................................
Les conditions .................................................................................................................................................................
La condition if... else .................................................................................................................................................................................................
Quelques symboles conna tre ................................................................................................................................................................................
Un if simple ...............................................................................................................................................................................................................
Le else pour dire sinon ........................................................................................................................................................................................
Le else if pour dire sinon si .................................................................................................................................................................................
Plusieurs conditions la fois .....................................................................................................................................................................................
Quelques erreurs courantes de d butant ..................................................................................................................................................................
Les bool ens, le coeur des conditions ......................................................................................................................................................................
Quelques petits tests pour bien comprendre ............................................................................................................................................................
Des explications s'imposent ......................................................................................................................................................................................
Un test avec une variable ..........................................................................................................................................................................................
Cette variable majeur est un bool en .......................................................................................................................................................................
Les bool ens dans les conditions .............................................................................................................................................................................
La condition switch ....................................................................................................................................................................................................
Construire un switch ..................................................................................................................................................................................................
G rer un menu avec un switch ..................................................................................................................................................................................
Les ternaires : des conditions condens es ...............................................................................................................................................................
Une condition if... else bien connue ..........................................................................................................................................................................
La m me condition en ternaire ..................................................................................................................................................................................
En r sum .................................................................................................................................................................................................................
Les boucles .....................................................................................................................................................................
Qu'est-ce qu'une boucle ? .........................................................................................................................................................................................
La boucle while ..........................................................................................................................................................................................................
Attention aux boucles infinies ....................................................................................................................................................................................
La boucle do& while .................................................................................................................................................................................................
La boucle for ..............................................................................................................................................................................................................
En r sum .................................................................................................................................................................................................................
TP : Plus ou Moins, votre premier jeu .............................................................................................................................
Pr paratifs et conseils ...............................................................................................................................................................................................
Le principe du programme ........................................................................................................................................................................................
Tirer un nombre au sort .............................................................................................................................................................................................
Les biblioth ques inclure ........................................................................................................................................................................................
J'en ai assez dit ! .......................................................................................................................................................................................................
Correction ! ................................................................................................................................................................................................................
La correction de Plus ou Moins ...........................................................................................................................................................................
Ex cutable et sources ...............................................................................................................................................................................................
Explications ...............................................................................................................................................................................................................
Id es d'am lioration ..................................................................................................................................................................................................
Les fonctions ...................................................................................................................................................................
Cr er et appeler une fonction ....................................................................................................................................................................................
Sch ma d'une fonction ..............................................................................................................................................................................................
Cr er une fonction .....................................................................................................................................................................................................
Plusieurs param tres, aucun param tre ...................................................................................................................................................................
Appeler une fonction .................................................................................................................................................................................................
Des exemples pour bien comprendre .......................................................................................................................................................................
Conversion euros / francs .........................................................................................................................................................................................
La punition .................................................................................................................................................................................................................
Publicité
Aire d'un rectangle ....................................................................................................................................................................................................
Un menu ....................................................................................................................................................................................................................
En r sum .................................................................................................................................................................................................................
Partie 2 : Techniques avanc es du langage C ............................................................................
La programmation modulaire ..........................................................................................................................................
Les prototypes ...........................................................................................................................................................................................................
Le prototype pour annoncer une fonction ..................................................................................................................................................................
Les headers ...............................................................................................................................................................................................................
Plusieurs fichiers par projet .......................................................................................................................................................................................
Fichiers .h et .c ........................................................................................................................................................................................................
Les include des biblioth ques standard ..................................................................................................................................................................
La compilation s par e ...........................................................................................................................................................................................
La port e des fonctions et variables .......................................................................................................................................................................
Les variables propres aux fonctions ........................................................................................................................................................................
Les variables globales : viter ..............................................................................................................................................................................
Variable statique une fonction ..............................................................................................................................................................................
Les fonctions locales un fichier ............................................................................................................................................................................
En r sum ...............................................................................................................................................................................................................
l'assaut des pointeurs .................................................................................................................................................
Un probl me bien ennuyeux ....................................................................................................................................................................................
La m moire, une question d'adresse ......................................................................................................................................................................
Rappel des faits .......................................................................................................................................................................................................
Adresse et valeur .....................................................................................................................................................................................................
Le scoop du jour ......................................................................................................................................................................................................
Utiliser des pointeurs ...............................................................................................................................................................................................
Cr er un pointeur .....................................................................................................................................................................................................
retenir absolument ...............................................................................................................................................................................................
Envoyer un pointeur une fonction .........................................................................................................................................................................
Une autre fa on d'envoyer un pointeur une fonction ............................................................................................................................................
Qui a dit : "Un probl me bien ennuyeux" ? .............................................................................................................................................................
En r sum ...............................................................................................................................................................................................................
Les tableaux ..................................................................................................................................................................
63
63
64
64
64
66
67
67
68
69
69
70
70
71
71
72
72
73
75
75
75
76
77
77
77
79
80
80
81
81
82
82
82
83
83
84
84
84
Publicité
85
85
86
87
88
88
89
90
93
93
94
95
96
97
98
98
98
98
99
99
100
103
104
106
106
107
108
109
109
111
111
112
112
113
114
115
115
118
119
120
122
123
123
www.siteduzero.com
Sommaire
4/399
Les tableaux dans la m moire ................................................................................................................................................................................
D finir un tableau ....................................................................................................................................................................................................
Les tableaux taille dynamique ..............................................................................................................................................................................
Parcourir un tableau ................................................................................................................................................................................................
Initialiser un tableau ................................................................................................................................................................................................
Une autre fa on d'initialiser .....................................................................................................................................................................................
Passage de tableaux une fonction .......................................................................................................................................................................
Quelques exercices ! ...............................................................................................................................................................................................
En r sum ...............................................................................................................................................................................................................
Les cha nes de caract res ............................................................................................................................................
Le type char .............................................................................................................................................................................................................
Afficher un caract re ...............................................................................................................................................................................................
Les cha nes sont des tableaux de char ...................................................................................................................................................................
Cr ation et initialisation de la cha ne ......................................................................................................................................................................
R cup ration d'une cha ne via un scanf .................................................................................................................................................................
Fonctions de manipulation des cha nes ..................................................................................................................................................................
Pensez inclure string.h .........................................................................................................................................................................................
strlen : calculer la longueur d'une cha ne ................................................................................................................................................................
strcpy : copier une cha ne dans une autre ..............................................................................................................................................................
strcat : concat ner 2 cha nes ..................................................................................................................................................................................
strcmp : comparer 2 cha nes ...................................................................................................................................................................................
strchr : rechercher un caract re .............................