
Partie I
Get flash to fully experience Pearltrees
Ce tutoriel est constitué de 2 parties théoriques sur le langage C ( parties I et II ) suivies d'une partie pratique ( partie III ) portant sur la bibliothèque SDL dans laquelle vous réutiliserez tout ce que vous avez appris pour créer des jeux vidéo ! Si vous avez aimé ce cours, vous pouvez retrouver le livre " Apprenez à programmer en C " du même auteur, en vente sur le Site du Zéro , en librairie et dans les boutiques en ligne comme Amazon.fr et FNAC.com . Vous y trouverez ce cours adapté au format papier avec une série de chapitres inédits. Pourquoi ne pas apprendre le C++ ?
Apprenez à programmer en C !
Un monde de variables
Croyez-moi, cette petite introduction sur la mémoire va nous être plus utile que vous ne le pensez. Maintenant que vous savez ce qu'il faut, on peut retourner programmer On dit qu'elle est "variable" car c'est une valeur qui peut changer pendant le déroulement du programme.Il faut savoir qu'en plus de n'être qu'une vulgaire calculatrice, votre ordinateur est une calculatrice très basique puisqu'on ne peut faire que des opérations très simples : Si vous voulez faire des opérations plus compliquées (des carrés, des puissances, des logarithmes et autres joyeusetés) il vous faudra les programmer, c'est-à-dire expliquer à l'ordinateur comment le faire . Fort heureusement, nous verrons plus loin dans ce chapitre qu'il existe une bibliothèque mathématique livrée avec le langage C qui contient plein de fonctions mathématiques toutes prêtes.
Une bête de calcul
Les conditions servent à "tester" des variables . On peut par exemple dire "Si la variable machin est égale à 50, fais ceci"... Mais ce serait dommage de ne pouvoir tester que l'égalité ! Il faudrait aussi pouvoir tester si la variable est inférieure à 50, inférieure ou égale à 50, supérieure, supérieure ou égale...
Les conditions
while ( /* Condition */ ) { // Instructions à répéter } C'est aussi simple que cela While signifie "Tant que". On dit donc à l'ordinateur " Tant que la condition est vraie : répète les instructions entre accolades ". Je vous propose de faire un test simple : on va demander à l'utilisateur de taper le nombre 47. Tant qu'il n'a pas tapé le nombre 47, on recommence à lui demander le nombre.
Les boucles
Nous avons vu dans les tous premiers chapitres qu'un programme en C commençait par une fonction appelée "main". Je vous avais d'ailleurs même fait un schéma récapitulatif, pour vous rappeler quelques mots de vocabulaire. Attendez que je retrouve ce schéma En haut, les directives de préprocesseur (un nom barbare sur lequel on reviendra d'ailleurs).
Les fonctions
La programmation modulaire
Dans la pratique, vos programmes ne seront pas tous écrits dans ce même fichier main.c. Bien sûr, c'est possible de le faire, mais ce n'est jamais très pratique de se balader dans un fichier de 10000 lignes (enfin personnellement je trouve ). Non, vous avez pas déjà oublié ? Bon allez je vous le réexplique, parce qu'il est important qu'on soit bien d'accord entre nous làQuelle que soit la réponse, je vous recommande très vivement d'aller relire la première partie de ce chapitre, intitulée "Une affaire de mémoire". Bien entendu, je ne peux pas vous obliger à le faire, mais ne venez pas pleurnicher ensuite en me disant que vous ne comprenez rien La première ligne représente la "cellule" du tout début de la mémoire vive. Chaque cellule a un numéro, c'est son adresse (hyper important le vocabulaire là !). La mémoire comporte un grand nombre d'adresses, commençant à l'adresse numéro 0 et se terminant à l'adresse numéro (insérez un très grand nombre ici) . Votre mémoire n'est faite que pour stocker des nombres.
A l'assaut des pointeurs
Supposons que je veuille maintenant afficher les valeurs de chaque case du tableau. Je pourrais faire autant de printf qu'il n'y a de cases. Mais bon, c'est répétitif, un peu lourd, et imaginez le bazar si le tableau contenait 8000 nombres int main ( int argc , char * argv []) { int tableau [ 4 ], i = 0 ; tableau [ 0 ] = 10 ; tableau [ 1 ] = 23 ; tableau [ 2 ] = 505 ; tableau [ 3 ] = 8 ; for ( i = 0 ; i Code : Console - Sélectionner
Les tableaux
Déclaration Un tableau de tableaux (appelé tableau à plusieurs dimensions) se déclare par précision de la taille de chaque "dimension". Si par exemple je souhaite déclarer un tableau "tridimensionnel" alors je ferais ainsi :
Tableaux, pointeurs et allocation dynamique
Les chaînes de caractères
Les chaînes de caractères sont, vous vous en doutez, fréquemment utilisées. Tous les mots, tous les textes que vous voyez à votre écran sont en fait des tableaux de char en mémoire qui fonctionnent de la manière que je viens de vous expliquer (ah on ne voit plus son ordinateur de la même façon du coup hein ? ) Afin de nous aider un peu à manipuler les chaînes, on nous fournit dans la bibliothèque string.h une pléthore de fonctions dédiées aux calculs sur des chaînes. Je ne peux pas vraiment toutes vous les présenter ici, ce serait un peu long et elles ne sont pas toutes forcément indispensables. Je vais me contenter de vous parler des principales dont vous aurez très certainement besoin dans peu de temps, ce qui fait déjà pas malAttention, malgré les apparences (notamment le nom que l'on a l'habitude de mettre en majuscules) c'est très différent des constantes que nous avons étudiées jusqu'ici, telles que : const int NOMBRE_VIES_INITIALES = 3 ; Les constantes occupaient de la place en mémoire. Même si la valeur ne changeait pas, votre nombre "3" était stocké quelque part dans la mémoire. Ce n'est pas le cas des constantes de préprocesseur
Le préprocesseur
Une macro peut être redéfinie autre part dans le programme à la seule condition que celle-ci soit exactement pareille, seul quelques espaces peuvent être rajoutés. Exemple : Notez que les parenthèses sont très importantes dans les macros dues à la priorité des opérateurs. Certaines peuvent être omises, d'autres non. Pour être sûr de ne pas avoir de mauvaise surprise je vous conseille d'abuser des parenthèses pour ne laisser aucune ambiguïté possible ! Il faut faire très attention aux effets de bords.


Le tuto de Mateo est particulièrement bien fait pour découvrir le C. En revanche, une fois la partie I terminée, le second tutoriel permet de préciser bien des points. by encelade Feb 2