14189-apprenez-a-programmer-en-c

Telechargé par Paul Busmuth
Apprenez à
programmer en C !
Par Mathieu Nebra (Mateo21)
www.openclassrooms.com
Licence Creative Commons 6 2.0
Dernière mise à jour le 8/01/2013
Sommaire
2Sommaire ...........................................................................................................................................
6Lire aussi ............................................................................................................................................
8 Apprenez à programmer en C ! ..........................................................................................................
8Partie 1 : Les bases de la programmation en C ..................................................................................
9Vous avez dit programmer ? .............................................................................................................................................
9Programmer, c'est quoi ? ............................................................................................................................................................................................
10Programmer, dans quel langage ? ............................................................................................................................................................................
10Un peu de vocabulaire ..............................................................................................................................................................................................
11Pourquoi choisir d'apprendre le C ? ..........................................................................................................................................................................
12Programmer, c'est dur ? ............................................................................................................................................................................................
13Ayez les bons outils ! .......................................................................................................................................................
14Les outils nécessaires au programmeur ...................................................................................................................................................................
14Choisissez votre IDE .................................................................................................................................................................................................
15Code::Blocks (Windows, Mac OS, Linux) ..................................................................................................................................................................
15Télécharger Code::Blocks .........................................................................................................................................................................................
17Créer un nouveau projet ............................................................................................................................................................................................
19Visual C++ (Windows seulement) .............................................................................................................................................................................
20Installation .................................................................................................................................................................................................................
20Créer un nouveau projet ............................................................................................................................................................................................
23Ajouter un nouveau fichier source .............................................................................................................................................................................
24La fenêtre principale de Visual ..................................................................................................................................................................................
25Xcode (Mac OS seulement) ......................................................................................................................................................................................
25Xcode, où es-tu ? ......................................................................................................................................................................................................
25Lancement de Xcode ................................................................................................................................................................................................
26La fenêtre de développement ...................................................................................................................................................................................
27Ajouter un nouveau fichier ........................................................................................................................................................................................
28En résumé .................................................................................................................................................................................................................
28Votre premier programme ...............................................................................................................................................
29Console ou fenêtre ? .................................................................................................................................................................................................
29Les programmes en fenêtres ....................................................................................................................................................................................
30Les programmes en console .....................................................................................................................................................................................
31Un minimum de code ................................................................................................................................................................................................
31Demandez le code minimal à votre IDE ....................................................................................................................................................................
32Analysons le code minimal ........................................................................................................................................................................................
34Testons notre programme .........................................................................................................................................................................................
35Écrire un message à l'écran ......................................................................................................................................................................................
36Dis Bonjour au Monsieur ...........................................................................................................................................................................................
37Les caractères spéciaux ...........................................................................................................................................................................................
38Le syndrome de Gérard ............................................................................................................................................................................................
39Les commentaires, c'est très utile ! ...........................................................................................................................................................................
41Un monde de variables ...................................................................................................................................................
41Une affaire de mémoire .............................................................................................................................................................................................
41Les différents types de mémoire ...............................................................................................................................................................................
42La mémoire vive en photos .......................................................................................................................................................................................
43Le schéma de la mémoire vive .................................................................................................................................................................................
45Déclarer une variable ................................................................................................................................................................................................
45Donner un nom à ses variables ................................................................................................................................................................................
45Les types de variables ...............................................................................................................................................................................................
47Déclarer une variable ................................................................................................................................................................................................
48Affecter une valeur à une variable .............................................................................................................................................................................
49La valeur d'une nouvelle variable ..............................................................................................................................................................................
50Les constantes ..........................................................................................................................................................................................................
50Afficher le contenu d'une variable .............................................................................................................................................................................
52Afficher plusieurs variables dans un même printf .....................................................................................................................................................
52Récupérer une saisie ................................................................................................................................................................................................
55Une bête de calcul ...........................................................................................................................................................
55Les calculs de base ...................................................................................................................................................................................................
56La division .................................................................................................................................................................................................................
57Le modulo .................................................................................................................................................................................................................
57Des calculs entre variables .......................................................................................................................................................................................
58Les raccourcis ...........................................................................................................................................................................................................
59L'incrémentation ........................................................................................................................................................................................................
59La décrémentation ....................................................................................................................................................................................................
60Les autres raccourcis ................................................................................................................................................................................................
60La bibliothèque mathématique ..................................................................................................................................................................................
61fabs ............................................................................................................................................................................................................................
62ceil .............................................................................................................................................................................................................................
62floor ...........................................................................................................................................................................................................................
62pow ............................................................................................................................................................................................................................
62sqrt ............................................................................................................................................................................................................................
63sin, cos, tan ...............................................................................................................................................................................................................
63asin, acos, atan .........................................................................................................................................................................................................
63exp .............................................................................................................................................................................................................................
63log ..............................................................................................................................................................................................................................
63log10 ..........................................................................................................................................................................................................................
2/410
www.openclassrooms.com
63En résumé .................................................................................................................................................................................................................
63Les conditions .................................................................................................................................................................
64La condition if... else .................................................................................................................................................................................................
64Quelques symboles à connaître ................................................................................................................................................................................
64Un if simple ...............................................................................................................................................................................................................
66Le else pour dire « sinon » ........................................................................................................................................................................................
67Le else if pour dire « sinon si » .................................................................................................................................................................................
67Plusieurs conditions à la fois .....................................................................................................................................................................................
69Quelques erreurs courantes de débutant ..................................................................................................................................................................
69Les booléens, le coeur des conditions ......................................................................................................................................................................
69Quelques petits tests pour bien comprendre ............................................................................................................................................................
70Des explications s'imposent ......................................................................................................................................................................................
70Un test avec une variable ..........................................................................................................................................................................................
71Cette variable majeur est un booléen .......................................................................................................................................................................
71Les booléens dans les conditions .............................................................................................................................................................................
72La condition switch ....................................................................................................................................................................................................
72Construire un switch ..................................................................................................................................................................................................
73Gérer un menu avec un switch ..................................................................................................................................................................................
75Les ternaires : des conditions condensées ...............................................................................................................................................................
75Une condition if... else bien connue ..........................................................................................................................................................................
75La même condition en ternaire ..................................................................................................................................................................................
76En résumé .................................................................................................................................................................................................................
76Les boucles .....................................................................................................................................................................
77Qu'est-ce qu'une boucle ? .........................................................................................................................................................................................
77La boucle while ..........................................................................................................................................................................................................
79Attention aux boucles infinies ....................................................................................................................................................................................
80La boucle do… while .................................................................................................................................................................................................
80La boucle for ..............................................................................................................................................................................................................
81En résumé .................................................................................................................................................................................................................
82TP : Plus ou Moins, votre premier jeu .............................................................................................................................
82Préparatifs et conseils ...............................................................................................................................................................................................
82Le principe du programme ........................................................................................................................................................................................
82Tirer un nombre au sort .............................................................................................................................................................................................
83Les bibliothèques à inclure ........................................................................................................................................................................................
83J'en ai assez dit ! .......................................................................................................................................................................................................
84Correction ! ................................................................................................................................................................................................................
84La correction de « Plus ou Moins » ...........................................................................................................................................................................
84Exécutable et sources ...............................................................................................................................................................................................
85Explications ...............................................................................................................................................................................................................
85Idées d'amélioration ..................................................................................................................................................................................................
86Les fonctions ...................................................................................................................................................................
87Créer et appeler une fonction ....................................................................................................................................................................................
88Schéma d'une fonction ..............................................................................................................................................................................................
88Créer une fonction .....................................................................................................................................................................................................
89Plusieurs paramètres, aucun paramètre ...................................................................................................................................................................
90Appeler une fonction .................................................................................................................................................................................................
93Des exemples pour bien comprendre .......................................................................................................................................................................
93Conversion euros / francs .........................................................................................................................................................................................
94La punition .................................................................................................................................................................................................................
95Aire d'un rectangle ....................................................................................................................................................................................................
96Un menu ....................................................................................................................................................................................................................
97En résumé .................................................................................................................................................................................................................
98Partie 2 : Techniques « avancées » du langage C ............................................................................
98La programmation modulaire ..........................................................................................................................................
98Les prototypes ...........................................................................................................................................................................................................
98Le prototype pour annoncer une fonction ..................................................................................................................................................................
99Les headers ...............................................................................................................................................................................................................
99Plusieurs fichiers par projet .......................................................................................................................................................................................
100Fichiers .h et .c ........................................................................................................................................................................................................
103Les include des bibliothèques standard ..................................................................................................................................................................
104La compilation séparée ...........................................................................................................................................................................................
106La portée des fonctions et variables .......................................................................................................................................................................
106Les variables propres aux fonctions ........................................................................................................................................................................
107Les variables globales : à éviter ..............................................................................................................................................................................
108Variable statique à une fonction ..............................................................................................................................................................................
109Les fonctions locales à un fichier ............................................................................................................................................................................
109En résumé ...............................................................................................................................................................................................................
111À l'assaut des pointeurs .................................................................................................................................................
111Un problème bien ennuyeux ....................................................................................................................................................................................
112La mémoire, une question d'adresse ......................................................................................................................................................................
112Rappel des faits .......................................................................................................................................................................................................
113Adresse et valeur .....................................................................................................................................................................................................
114Le scoop du jour ......................................................................................................................................................................................................
115Utiliser des pointeurs ...............................................................................................................................................................................................
115Créer un pointeur .....................................................................................................................................................................................................
118À retenir absolument ...............................................................................................................................................................................................
119Envoyer un pointeur à une fonction .........................................................................................................................................................................
120Une autre façon d'envoyer un pointeur à une fonction ............................................................................................................................................
122Qui a dit : "Un problème bien ennuyeux" ? .............................................................................................................................................................
123En résumé ...............................................................................................................................................................................................................
123Les tableaux ..................................................................................................................................................................
Sommaire 3/410
www.openclassrooms.com
124Les tableaux dans la mémoire ................................................................................................................................................................................
124Définir un tableau ....................................................................................................................................................................................................
126Les tableaux à taille dynamique ..............................................................................................................................................................................
127Parcourir un tableau ................................................................................................................................................................................................
128Initialiser un tableau ................................................................................................................................................................................................
128Une autre façon d'initialiser .....................................................................................................................................................................................
129Passage de tableaux à une fonction .......................................................................................................................................................................
130Quelques exercices ! ...............................................................................................................................................................................................
132En résumé ...............................................................................................................................................................................................................
133Les chaînes de caractères ............................................................................................................................................
133Le type char .............................................................................................................................................................................................................
133Afficher un caractère ...............................................................................................................................................................................................
134Les chaînes sont des tableaux de char ...................................................................................................................................................................
136Création et initialisation de la chaîne ......................................................................................................................................................................
138Récupération d'une chaîne via un scanf .................................................................................................................................................................
138Fonctions de manipulation des chaînes ..................................................................................................................................................................
139Pensez à inclure string.h .........................................................................................................................................................................................
139strlen : calculer la longueur d'une chaîne ................................................................................................................................................................
140strcpy : copier une chaîne dans une autre ..............................................................................................................................................................
142strcat : concaténer 2 chaînes ..................................................................................................................................................................................
143strcmp : comparer 2 chaînes ...................................................................................................................................................................................
144strchr : rechercher un caractère ..............................................................................................................................................................................
145strpbrk : premier caractère de la liste ......................................................................................................................................................................
146strstr : rechercher une chaîne dans une autre ........................................................................................................................................................
147sprintf : écrire dans une chaîne ...............................................................................................................................................................................
148En résumé ...............................................................................................................................................................................................................
148Le préprocesseur ..........................................................................................................................................................
149Les include ..............................................................................................................................................................................................................
150Les define ................................................................................................................................................................................................................
152Un define pour la taille des tableaux .......................................................................................................................................................................
153Calculs dans les define ...........................................................................................................................................................................................
153Les constantes prédéfinies .....................................................................................................................................................................................
153Les définitions simples ............................................................................................................................................................................................
154Les macros ..............................................................................................................................................................................................................
154Macro sans paramètres ...........................................................................................................................................................................................
155Macro avec paramètres ...........................................................................................................................................................................................
157Les conditions .........................................................................................................................................................................................................
157#ifdef, #ifndef ...........................................................................................................................................................................................................
158#ifndef pour éviter les inclusions infinies .................................................................................................................................................................
159En résumé ...............................................................................................................................................................................................................
159Créez vos propres types de variables ...........................................................................................................................
160Définir une structure ................................................................................................................................................................................................
160Exemple de structure ..............................................................................................................................................................................................
161Tableaux dans une structure ...................................................................................................................................................................................
162Utilisation d'une structure ........................................................................................................................................................................................
162Le typedef ................................................................................................................................................................................................................
163Modifier les composantes de la structure ................................................................................................................................................................
164Initialiser une structure ............................................................................................................................................................................................
165Pointeur de structure ...............................................................................................................................................................................................
166Envoi de la structure à une fonction ........................................................................................................................................................................
167Un raccourci pratique et très utilisé .........................................................................................................................................................................
168Les énumérations ....................................................................................................................................................................................................
168Association de nombres aux valeurs ......................................................................................................................................................................
169Associer une valeur précise ....................................................................................................................................................................................
169En résumé ...............................................................................................................................................................................................................
170Lire et écrire dans des fichiers ......................................................................................................................................
171Ouvrir et fermer un fichier ........................................................................................................................................................................................
171fopen : ouverture du fichier ......................................................................................................................................................................................
175Tester l'ouverture du fichier .....................................................................................................................................................................................
176fclose : fermer le fichier ...........................................................................................................................................................................................
177Différentes méthodes de lecture / écriture ..............................................................................................................................................................
177Écrire dans le fichier ................................................................................................................................................................................................
180Lire dans un fichier ..................................................................................................................................................................................................
184Se déplacer dans un fichier .....................................................................................................................................................................................
184ftell : position dans le fichier ....................................................................................................................................................................................
184fseek : se positionner dans le fichier .......................................................................................................................................................................
185rewind : retour au début ..........................................................................................................................................................................................
186Renommer et supprimer un fichier ..........................................................................................................................................................................
186rename : renommer un fichier .................................................................................................................................................................................
186remove : supprimer un fichier ..................................................................................................................................................................................
187L'allocation dynamique ..................................................................................................................................................
188La taille des variables ..............................................................................................................................................................................................
190Une nouvelle façon de voir la mémoire ...................................................................................................................................................................
193Allocation de mémoire dynamique ..........................................................................................................................................................................
193malloc : demande d'allocation de mémoire .............................................................................................................................................................
194Tester le pointeur .....................................................................................................................................................................................................
194free : libérer de la mémoire .....................................................................................................................................................................................
195Exemple concret d'utilisation ...................................................................................................................................................................................
196Allocation dynamique d'un tableau ..........................................................................................................................................................................
198En résumé ...............................................................................................................................................................................................................
199TP : réalisation d'un Pendu ...........................................................................................................................................
199Les consignes .........................................................................................................................................................................................................
Sommaire 4/410
www.openclassrooms.com
199Déroulement d'une partie ........................................................................................................................................................................................
202Dictionnaire de mots ...............................................................................................................................................................................................
204La solution (1 : le code du jeu) ................................................................................................................................................................................
204Analyse de la fonction main ....................................................................................................................................................................................
207Analyse de la fonction gagne ..................................................................................................................................................................................
207Analyse de la fonction rechercheLettre ...................................................................................................................................................................
208La solution (2 : la gestion du dictionnaire) ...............................................................................................................................................................
209Préparation des nouveaux fichiers ..........................................................................................................................................................................
209La fonction piocherMot ............................................................................................................................................................................................
211La fonction nombreAleatoire ....................................................................................................................................................................................
212Le fichier dico.h .......................................................................................................................................................................................................
212Le fichier dico.c .......................................................................................................................................................................................................
213Il va falloir modifier le main ! ....................................................................................................................................................................................
217Idées d'amélioration ................................................................................................................................................................................................
217Télécharger le projet ...............................................................................................................................................................................................
217Améliorez le Pendu ! ...............................................................................................................................................................................................
218La saisie de texte sécurisée ..........................................................................................................................................
219Les limites de la fonction scanf ...............................................................................................................................................................................
219Entrer une chaîne de caractères avec des espaces ...............................................................................................................................................
220Entrer une chaîne de caractères trop longue ..........................................................................................................................................................
221Récupérer une chaîne de caractères ......................................................................................................................................................................
221La fonction fgets ......................................................................................................................................................................................................
222Créer sa propre fonction de saisie utilisant fgets ....................................................................................................................................................
227Convertir la chaîne en nombre ................................................................................................................................................................................
227strtol : convertir une chaîne en long ........................................................................................................................................................................
229strtod : convertir une chaîne en double ...................................................................................................................................................................
229En résumé ...............................................................................................................................................................................................................
230Partie 3 : Création de jeux 2D en SDL ............................................................................................
231Installation de la SDL ....................................................................................................................................................
231Pourquoi avoir choisi la SDL ? ................................................................................................................................................................................
231Choisir une bibliothèque : pas facile ! .....................................................................................................................................................................
231La SDL est un bon choix ! .......................................................................................................................................................................................
232Les possibilités offertes par la SDL .........................................................................................................................................................................
233Téléchargement de la SDL ......................................................................................................................................................................................
234Créer un projet SDL : Windows ...............................................................................................................................................................................
234Création d'un projet SDL sous Code::Blocks ..........................................................................................................................................................
238Création d'un projet SDL sous Visual C++ ..............................................................................................................................................................
240Créer un projet SDL : Mac OS (Xcode) ...................................................................................................................................................................
244Créer un projet SDL : Linux .....................................................................................................................................................................................
245En résumé ...............................................................................................................................................................................................................
246Création d'une fenêtre et de surfaces ...........................................................................................................................
246Charger et arrêter la SDL ........................................................................................................................................................................................
246SDL_Init : chargement de la SDL ............................................................................................................................................................................
247SDL_Quit : arrêt de la SDL ......................................................................................................................................................................................
248Canevas de programme SDL ..................................................................................................................................................................................
248Gérer les erreurs .....................................................................................................................................................................................................
249Ouverture d'une fenêtre ..........................................................................................................................................................................................
250Choix du mode vidéo ..............................................................................................................................................................................................
251Mettre en pause le programme ...............................................................................................................................................................................
253Changer le titre de la fenêtre ...................................................................................................................................................................................
255Manipulation des surfaces .......................................................................................................................................................................................
255Votre première surface : l'écran ..............................................................................................................................................................................
257Colorer une surface .................................................................................................................................................................................................
261Dessiner une nouvelle surface à l'écran .................................................................................................................................................................
265Centrer la surface à l'écran .....................................................................................................................................................................................
266Exercice : créer un dégradé ....................................................................................................................................................................................
267Correction ! ..............................................................................................................................................................................................................
269« Je veux des exercices pour m'entraîner ! » ..........................................................................................................................................................
269En résumé ...............................................................................................................................................................................................................
269Afficher des images .......................................................................................................................................................
270Charger une image BMP .........................................................................................................................................................................................
270Le format BMP ........................................................................................................................................................................................................
270Charger un Bitmap ..................................................................................................................................................................................................
272Associer une icône à son application ......................................................................................................................................................................
273Gestion de la transparence .....................................................................................................................................................................................
273Le problème de la transparence .............................................................................................................................................................................
275Rendre une image transparente ..............................................................................................................................................................................
277La transparence Alpha ............................................................................................................................................................................................
279Charger plus de formats d'image avec SDL_Image ................................................................................................................................................
280Installer SDL_image sous Windows ........................................................................................................................................................................
282Installer SDL_image sous Mac OS X ......................................................................................................................................................................
282Charger les images .................................................................................................................................................................................................
284En résumé ...............................................................................................................................................................................................................
284La gestion des événements ..........................................................................................................................................
285Le principe des événements ...................................................................................................................................................................................
285La variable d'événement .........................................................................................................................................................................................
286La boucle des événements .....................................................................................................................................................................................
286Récupération de l'événement ..................................................................................................................................................................................
287Analyse de l'événement ..........................................................................................................................................................................................
288Le code complet ......................................................................................................................................................................................................
289Le clavier .................................................................................................................................................................................................................
289Les événements du clavier .....................................................................................................................................................................................
Sommaire 5/410
www.openclassrooms.com
1 / 409 100%

14189-apprenez-a-programmer-en-c

Telechargé par Paul Busmuth
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 !