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 ........................................................................................................................................................................................................
Advertisement
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
Advertisement
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 .................................................................................................................................................................................................................
Advertisement
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
Advertisement
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 .............................