Le langage C Par informaticienzero , Lucas Pesenti (Lucas-84) , Guy Grave (Mewt
Le langage C Par informaticienzero , Lucas Pesenti (Lucas-84) , Guy Grave (Mewtow) , paraze , Taurre et tib92 www.siteduzero.com Licence Creative Commons 6 2.0 Dernière mise à jour le 5/12/2012 Sommaire 2 Sommaire ........................................................................................................................................... 3 Partager .............................................................................................................................................. 5 Le langage C ...................................................................................................................................... 6 Partie 1 : Introduction .......................................................................................................................... 6 Introduction à la programmation ....................................................................................................................................... 6 Avant-propos ............................................................................................................................................................................................................... 6 Esprit et but du tutoriel ................................................................................................................................................................................................ 6 À qui est destiné ce tutoriel ? ...................................................................................................................................................................................... 6 Allez plus loin .............................................................................................................................................................................................................. 7 La programmation, qu’est-ce que c’est ? .................................................................................................................................................................... 7 Les programmes expliqués en long, en large et en travers ........................................................................................................................................ 8 Le langage C ............................................................................................................................................................................................................... 8 L'histoire du C ............................................................................................................................................................................................................. 9 Pourquoi apprendre le C ? .......................................................................................................................................................................................... 9 La norme ..................................................................................................................................................................................................................... 10 L’algorithmique .......................................................................................................................................................................................................... 10 Le pseudo-code ......................................................................................................................................................................................................... 10 Outils ............................................................................................................................................................................... 11 Windows .................................................................................................................................................................................................................... 11 Avec un IDE ............................................................................................................................................................................................................... 21 Avec l’invite de commande ....................................................................................................................................................................................... 23 GNU/Linux - UNIX ..................................................................................................................................................................................................... 23 Les IDE ...................................................................................................................................................................................................................... 24 La compilation en ligne de commande ...................................................................................................................................................................... 25 Mac OS ..................................................................................................................................................................................................................... 25 Avec un IDE .............................................................................................................................................................................................................. 31 En ligne de commande ............................................................................................................................................................................................. 31 Rencontre avec le C ........................................................................................................................................................ 32 Notre cible ................................................................................................................................................................................................................. 33 Analyse du code source ............................................................................................................................................................................................ 33 #include ..................................................................................................................................................................................................................... 34 int main(void) ............................................................................................................................................................................................................. 34 Les instructions ......................................................................................................................................................................................................... 35 Notions de base ........................................................................................................................................................................................................ 35 Les mots-clés ............................................................................................................................................................................................................ 35 Les opérateurs .......................................................................................................................................................................................................... 36 Expressions et instructions ....................................................................................................................................................................................... 37 Les blocs d’instructions ............................................................................................................................................................................................. 37 Les séparateurs ......................................................................................................................................................................................................... 37 L’indentation .............................................................................................................................................................................................................. 38 Les commentaires ..................................................................................................................................................................................................... 39 Partie 2 : Les bases .......................................................................................................................... 40 Les variables ................................................................................................................................................................... 40 Qu’est-ce qu’une variable ? ...................................................................................................................................................................................... 40 Mémoire .................................................................................................................................................................................................................... 41 La RAM ..................................................................................................................................................................................................................... 42 Références ................................................................................................................................................................................................................ 43 Variables .................................................................................................................................................................................................................... 43 Déclarer une variable ................................................................................................................................................................................................ 43 Les types ................................................................................................................................................................................................................... 45 Les identificateurs ..................................................................................................................................................................................................... 46 D’autres mots-clés .................................................................................................................................................................................................... 47 Déclaration et initialisation ........................................................................................................................................................................................ 49 Affectation ................................................................................................................................................................................................................. 50 Utiliser des variables ................................................................................................................................................................................................. 50 Calculs de base ......................................................................................................................................................................................................... 53 Les raccourcis ........................................................................................................................................................................................................... 54 Les conversions de type ............................................................................................................................................................................................ 57 Manipulations basiques des entrées/sorties ................................................................................................................... 57 Les sorties ................................................................................................................................................................................................................. 57 printf — Écrire une chaîne de caractères de manière formatée ............................................................................................................................... 61 puts — Écrire une chaîne de caractères ................................................................................................................................................................... 61 putchar — Écrire un caractère .................................................................................................................................................................................. 62 Interagir avec l’utilisateur .......................................................................................................................................................................................... 64 Exercice ..................................................................................................................................................................................................................... 66 Les conditions ................................................................................................................................................................. 66 Conditions et booléens .............................................................................................................................................................................................. 66 Comparaisons ........................................................................................................................................................................................................... 67 Les booléens ............................................................................................................................................................................................................. 68 Les opérateurs logiques ............................................................................................................................................................................................ 68 Les opérateurs logiques de base .............................................................................................................................................................................. 69 Évaluation en court-circuit ......................................................................................................................................................................................... 70 Encore mieux ! .......................................................................................................................................................................................................... 71 La structure if ............................................................................................................................................................................................................. 2/153 www.siteduzero.com 71 L'instruction if ............................................................................................................................................................................................................ 72 L'instruction else ........................................................................................................................................................................................................ 74 If / else if .................................................................................................................................................................................................................... 76 L'instruction switch .................................................................................................................................................................................................... 78 L'opérateur ternaire ................................................................................................................................................................................................... 79 Exercice ..................................................................................................................................................................................................................... 81 Les boucles ..................................................................................................................................................................... 81 La boucle while .......................................................................................................................................................................................................... 81 Syntaxe ..................................................................................................................................................................................................................... 82 Boucles infinies ......................................................................................................................................................................................................... 83 Exercice ..................................................................................................................................................................................................................... 84 La boucle do-while .................................................................................................................................................................................................... 84 Fonctionnement ........................................................................................................................................................................................................ 84 Syntaxe ..................................................................................................................................................................................................................... 85 La boucle for .............................................................................................................................................................................................................. 85 Fonctionnement ........................................................................................................................................................................................................ 87 Utilisation avancée .................................................................................................................................................................................................... 88 Branchements inconditionnels .................................................................................................................................................................................. 89 break ......................................................................................................................................................................................................................... 90 continue ..................................................................................................................................................................................................................... 91 goto ........................................................................................................................................................................................................................... 93 Exercices ................................................................................................................................................................................................................... 93 Calcul du PGCD de deux nombres ........................................................................................................................................................................... 94 Une overdose de lapins ............................................................................................................................................................................................ 95 Des pieds et des mains pour convertir mille miles .................................................................................................................................................... 96 Puissances de trois ................................................................................................................................................................................................... 97 La disparition: le retour .............................................................................................................................................................................................. 99 Les fonctions ................................................................................................................................................................... 100 A quoi ca sert ? ........................................................................................................................................................................................................ 100 Sans fonctions ......................................................................................................................................................................................................... 100 Avec les fonctions ................................................................................................................................................................................................... 100 Déclarer une fonction .............................................................................................................................................................................................. 101 Déclarer une fonction .............................................................................................................................................................................................. 103 Le corps d'une fonction ........................................................................................................................................................................................... 104 Exemple .................................................................................................................................................................................................................. 105 Utiliser une fonction ................................................................................................................................................................................................. 107 Appel de fonctions ................................................................................................................................................................................................... 107 Les prototypes ......................................................................................................................................................................................................... 108 Exercices ................................................................................................................................................................................................................. 108 Afficher un rectangle ............................................................................................................................................................................................... 110 Afficher un triangle ................................................................................................................................................................................................... 111 Coupure ................................................................................................................................................................................................................... 113 Découper son projet ...................................................................................................................................................... 114 Portée et masquage ................................................................................................................................................................................................ 114 La notion de portée .................................................................................................................................................................................................. 115 La notion de masquage ........................................................................................................................................................................................... 116 Diviser pour mieux régner ....................................................................................................................................................................................... 116 Création d'un nouveau fichier source ...................................................................................................................................................................... 119 Les fonctions ........................................................................................................................................................................................................... 120 Les variables ........................................................................................................................................................................................................... 121 On m'aurait donc menti ? ........................................................................................................................................................................................ 121 Les fichiers d'en-têtes ............................................................................................................................................................................................. 122 Le préprocesseur .......................................................................................................................................................... 123 Le fonctionnement du préprocesseur ...................................................................................................................................................................... 123 Qu'est-ce que le préprocesseur ? ........................................................................................................................................................................... 123 Exemple d'utilisation avec les inclusions ................................................................................................................................................................ 124 Une directive : #define ............................................................................................................................................................................................ 124 Des macros simples ................................................................................................................................................................................................ 127 Avec paramètre(s) ................................................................................................................................................................................................... 129 Sur plusieurs lignes ................................................................................................................................................................................................. 130 Des macros sans définition ..................................................................................................................................................................................... 130 Des directives de condition ..................................................................................................................................................................................... 131 #if, #elif, #else et #endif .......................................................................................................................................................................................... 131 defined ..................................................................................................................................................................................................................... 132 #ifdef et #ifndef ........................................................................................................................................................................................................ 132 Constantes pré-définies .......................................................................................................................................................................................... 132 Macros standards .................................................................................................................................................................................................... 133 Détecter le compilateur et le système ..................................................................................................................................................................... 135 Math.h ............................................................................................................................................................................ 135 Les bibliothèques .................................................................................................................................................................................................... 135 Les bibliothèques en informatique .......................................................................................................................................................................... 135 Lier une bibliothèque ............................................................................................................................................................................................... 136 Découvrir math.h ..................................................................................................................................................................................................... 136 Sinus, cosinus et tangente ...................................................................................................................................................................................... 137 Mesurer un angle .................................................................................................................................................................................................... 138 Logarithme quand tu nous tiens... ........................................................................................................................................................................... 138 Calculer l'exponentielle d'un nombre ....................................................................................................................................................................... 139 Puissances .............................................................................................................................................................................................................. 140 Racine carrée .......................................................................................................................................................................................................... 140 Fonctions d’arrondis ................................................................................................................................................................................................ 141 Autres fonctions sur les flottants ............................................................................................................................................................................. 141 TP : Réalisation ....................................................................................................................................................................................................... Sommaire 3/153 www.siteduzero.com 141 Préparatifs ............................................................................................................................................................................................................... 142 Racine carrée .......................................................................................................................................................................................................... 143 Exponentielle ........................................................................................................................................................................................................... 144 Autres ...................................................................................................................................................................................................................... 144 Partie 3 : Les agrégats et leur gestion ............................................................................................ 145 Les pointeurs ................................................................................................................................................................. 145 C'est quoi ? ............................................................................................................................................................................................................. 145 Utilité ....................................................................................................................................................................................................................... 145 La RAM ................................................................................................................................................................................................................... 146 Pointeurs ................................................................................................................................................................................................................. 147 Utilisation ................................................................................................................................................................................................................. 147 Déclaration .............................................................................................................................................................................................................. 148 Référencement ........................................................................................................................................................................................................ 148 Initialisation et pointeur null ..................................................................................................................................................................................... 149 Déréférencement ..................................................................................................................................................................................................... 150 Des pointeurs comme arguments dans des fonctions ............................................................................................................................................ 151 Exercice ................................................................................................................................................................................................................... 151 Énoncés .................................................................................................................................................................................................................. 151 Correction ................................................................................................................................................................................................................ 152 Remerciements ....................................................................................................................................................................................................... Partager 4/153 www.siteduzero.com Le langage C Le tutoriel que vous êtes en train de lire est en bêta-test. Son auteur souhaite que vous lui fassiez part de vos commentaires pour l'aider à l'améliorer avant sa publication officielle. Notez que le contenu n'a pas été validé par l'équipe éditoriale du Site du Zéro. Par informaticienzero et Lucas Pesenti (Lucas-84) et Guy Grave (Mewtow) et paraze et tib92 et Taurre Mise à jour : 05/12/2012 Difficulté : Difficile Durée d'étude : 3 mois 1 596 visites depuis 7 jours, classé 89/797 Vous souhaitez apprendre à programmer, mais vous ne savez pas comment vous y prendre ? Alors, permettez-nous de vous souhaiter la bienvenue dans ce cours de programmation en C pour débutants. La programmation est devenue aujourd’hui incontournable, si bien qu’elle est utilisée partout. Tous les logiciels de votre ordinateur ont été programmés. Et ce cours va vous apprendre les bases de la programmation en C pour vous permettre de créer des programmes à votre tour. Pour pouvoir suivre ce tutoriel, vous n’avez aucun prérequis ; tout sera détaillé de la manière la plus complète possible. Nous commencerons par une introduction à la programmation et au C, puis nous avancerons peu à peu dans l'univers de la programmation, tout cela grâce à des cours, des exemples, des exercices d’applications et des travaux pratiques. PS : Si vous vous demandez ce que ce cours apporte par rapport au cours officiel sur le C de Mathieu Nebra, lisez ceci. Partager 5/153 www.siteduzero.com Partie 1 : Introduction Introduction à la programmation La programmation est un sujet qui fascine énormément. Si vous lisez ce cours, c’est que vous avez décidé de franchir le pas et de découvrir ce que c’est que programmer. Avant de commencer à apprendre quoi que ce soit sur le C et la programmation, il faudrait néanmoins se demander en quoi la programmation consiste. En effet, savez-vous réellement ce que c’est, comment programmer ou encore ce qui caractérise ce fameux langage C ? Ces questions importantes et légitimes méritent des réponses. Ce chapitre va donc faire une introduction au monde de la programmation, et plus particulièrement au langage C. Avant-propos Esprit et but du tutoriel Ce tutoriel a été écrit dans un seul but : vous enseigner le langage C de la manière la plus complète, la plus rigoureuse et la plus instructive possible. Pour ce faire, le tutoriel combinera beaucoup de théorie, de connaissances importantes, de détails et de recherches en profondeur avec de la pratique par des exemples concrets, des exercices pratiques et des TP. Cette approche va réclamer de votre part des efforts puisque le tutoriel semblera parfois complexe. Nous avons choisi cette méthode d’apprentissage, car c’est celle que nous jugeons la plus payante. Elle s’oppose à une plus rapide, qui permet certes d’acquérir des connaissances rapidement, mais qui s’avère bien souvent peu payante sur le long terme, beaucoup de programmeurs débutants étant ainsi perdus lorsqu’ils sont jetés dans la jungle de la programmation à la sortie d’un cours, n’ayant pas acquis de bonnes pratiques et de la rigueur. Nous allons donc essayer de vous enseigner non seulement un langage, mais aussi de bonnes pratiques et de la rigueur. En résumé, ce tutoriel fera un juste mélange entre théorie, détails et recherches avec de la pratique et des exemples. À qui est destiné ce tutoriel ? Le tutoriel a pour but d’être accessible à n’importe qui. Que vous soyez un programmeur expérimenté, un total débutant ou que vous vouliez réviser certaines notions du C, vous êtes le bienvenu dans ce tutoriel. Les explications seront les plus claires possible afin de rendre la lecture accessible à tous. Cependant, il y a quelques conditions. Même si uploads/Litterature/ le-langage-c.pdf
Documents similaires










-
40
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 08, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 3.4808MB