Hack Poké
Venez vous inscrire sur notre nouveau forum :

http://www.hackpoke.toile-libre.org/forum

Hack Poké

Venez vous inscrire sur notre nouveau forum : http://www.hackpoke.toile-libre.org/forum
 
AccueilAccueil  CalendrierCalendrier  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Chat IRCChat IRC  ConnexionConnexion  

Partagez | 
 

 Chapitre 3: L'invasion des variables

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Denekar
Membre sympa
Membre sympa
avatar

Messages : 29
Date d'inscription : 04/04/2009
Age : 22
Localisation : Gironde(33)

MessageSujet: Chapitre 3: L'invasion des variables   Mer 3 Juin - 19:19

Maintenant que vous connaissez le principe de l’affichage de texte, je vous propose de rendre vos programmes plus attractifs avec des variables.

Question : C’est quoi ça ?
Réponse : Il s’agit d’une manière de faire stocker des nombres à votre ordinateur.
Mais j’ai tout un cours pour vous l’expliquer, donc, allons-y^^

Définition d’une variable et déclaration


Une variable, concrètement, peut stocker un nombre, du texte, et tout plein d’autres choses.
Il en existe de plusieurs sortes ; certaines peuvent stocker des petits nombres, mais d’autres peuvent aussi stocker des nombres complètement ahurissants ! Pour reprendre l’exemple du jeu de tir, le nombre de munitions de votre arme est stockée dans une variable, ainsi que le nombre de vie restantes, etc…
Allons-y, déclarons une variable :
Code:
 #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   
    long variable;
   
  system("PAUSE");
  return 0;
}

Voyons de quoi est composée une variable :

long : C’est le type de la variable. Nous verrons plus tard à quoi cela correspond.
variable : Il s’agit du nom de la variable. J’aurais pu tout aussi bien mettre nombreDeVieRestante ou nombreDeMunitionsRestantes (du moment que cela ne contient pas d’espaces, et certains symboles tels que +, -, *, etc… il n’y a aucun problème^^).
; : Puisqu’une déclaration de variable est une instruction, il faut terminer le ligne par un point-virgule^^

Compilez…et il ne se passe absolument rien de différent^^

Question : Mais pourquoi il ne se passe rien ?
Réponse : Vous savez ce que vous venez de faire ? Vous venez de dire à votre ordinateur :
« Réserve une place en mémoire à ma variable »
En gros, vous venez de demander à votre Pc de réserver un peu de place à vote variable, pour qu’on puisse y stocker un nombre. Il est donc complètement normal qu’il ne se passe rien à l’affichage dans la console.

Bon, entraînez vous bien à déclarer plein de variables, et comprenez bien leur utilité. C’est en essayant ces codes que vous comprendrez comment ils fonctionnent.

Bien, maintenant, je vais vous apprendre à assigner une valeur à une variable !

Une variable qui stocke un nombre !


Regardez attentivement ce bout de code(je pense que vous êtes assez grand pour savoir où mettre ce code pour tester^^)

Code:
long age = 14;

Testez-le, il fonctionne très bien^^
Là, on vient tout simplement de dire :
« Réserve une place à ma variable nommée age et met à cette place la valeur 14 »
Mais il existe aussi une autre façon de déclarer une variable. Regardez ça :
Code:
long age;
age = 14;

Cela revient exactement au même. Maintenant, imaginons que vous ayez plusieurs variables comme :
Code:
 long vie;
  long munitions;
  long force;

Ce code marche…mais c’est vite lassant de devoir faire un saut de ligne à chaque fois. C’est pourquoi il est tout à fait possible de faire :
Code:
 long vie, munitions, force;

Différents types de variables


Je pense qu’il est temps de vous expliquer quelque chose sur les types de variables :
Il existe beaucoup d’autres types de variables, dont voici la liste :

char : Peut contenir une lettre(nous le verrons plus tard), mais aussi des nombre allant de -128 à 127
short : Contient des nombre allant de -32768 à 32767
int : Contient des nombres allant de -32768 à 32767(tout comme short). Très utilisé.
long : Contient des nombres allant de -2147483648 à 2147483647
float : Contient des nombres allant de 3.4 x 10 puissance 38 à 3.4 x 10 puissance 38
double : Contient des nombres allant de -1.7 x 10 puissance 308 à 1.7 x 10 puissance 308
long double : C’est complètement démentiel. J’en ai jamais eu besoin^^ C’est de l’ordre de 1,7 puissance 4098 il me semble.

Il en existe quelques autres à ma connaissance, mais ce sont les principaux(les seuls que je connais en tous cas^^).

Remarque 1 : Pour ceux ici qui sont allergiques aux maths(bienvenue au club^^’), double peut stocker des nombres allant jusqu’à à peu près 1 avec 308 zéros derrière. Bonne chance pour le remplir !
Remarque 2 : Les virgules en C ne s’écrivent pas "," mais "."(un point).
Remarque 3 : Pour déclarer plusieurs variables sur la même ligne, elles doivent être du même type.

Des variables un peu spéciales : les constantes


Si jamais dans votre programme vous vouliez déclarer une variable qui ne changera jamais de valeur, utilisez ce que l’on appelle une constante. Une constante se déclare ainsi :

Code:
const long nombreEnnemis = 50;

Vous pouvez toujours essayer de faire :
Code:
 const long nombreEnnemis = 50;
nombreEnnemis = 70;
Mais le compilateur va afficher un message d’erreur disant quelque chose comme :
Le compilateur a écrit:
assignment of read-only variable `nombreEnnemis'


En gros, il vous dit que vous pouvez seulement "lire" la valeur de cette variable, et pas la modifier.

Maintenant que vous êtes devenus des as des variables et constantes, qu’est-ce que vous diriez de pouvoir afficher le contenu de votre variable dans la console grâce à printf ?

Affichage de notre variable


Hum…là, ça commence à devenir un peu plus dur. C’est toujours dans l’ordre du facile, puisque j’ai tendance à utiliser beaucoup d’exemples, mais c’est là qu’on comprend et on passe à la suite ou qu’on reste planté là-dessus un temps infini à essayer de comprendre le code.
Un conseil : faites une petite pause et abordez la suite la tête reposée^^
Je me rappelle être resté sur ça au moins 2 jours, jusqu’à avoir une illumination et enfin comprendre :D

Pour afficher une variable, il suffit de mettre les caractères spéciaux %d à l’endroit où vous voulez que votre variable soit affichée. Exemple :

Code:
printf("A l'heure ou je vous parle, il y a %d inscrits sur HackPoke!\n");

Certains vont vouloir essayer ce code, et vont se rendre compte que ça affiche un truc comme ça :


Malheureusement, il n‘y a pas autant d’inscrits :s

Cela bug simplement parce que nous n’avons pas dit quelle variable afficher.
Donc, on va préparer une variable pour stocker le nombre d’inscrits, puis utiliser printf d’une manière un peu spéciale :

Code:
 #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 
  int nombreMembres = 30;
  printf("A l'heure ou je vous parle, il y a %d inscrits sur HackPoke!\n", nombreMembres);

  system("PAUSE");   
  return 0;
}

Notez qu’il faut mettre une virgule après les guillemets, puis le nom de la variable. C’est très important, sinon ça plante lamentablement.
Comme vous le constatez, le contenu de la variable nombreMembres se retrouve à l’endroit où vous avez inséré les caractères %d :



Il existe aussi %f, qui sert à afficher des nombres à virgule.(il en existe plein d’autres comme par exemple %x pour les nombres hexadécimaux).

Je suis pratiquement sûr que tout le monde ici a envie de pouvoir faire de choses plus excitantes que de marquer des nombres dans la console. Et bien voilà qui en contentera plus d’un :

La fonction scanf(), pour interagir avec l’utilisateur


Voilà qui reste dans l’optique du "un peu moins facile", mais ne vous inquiétez pas, je continuerai en m’exprimant le plus simplement possible :D

Pour demander à l’utilisateur de rentrer des données dans la console, il va falloir utiliser une nouvelle fonction nommée scanf.
Elle fonctionne sur un principe un peu différent : on utilise une variable pour stocker la réponse de l’utilisateur.
Voici un exemple :
Code:
scanf("%d", &munitions);

Question : Bizarre…Pourquoi ce & ?
Réponse : Je ne pourrais pas vous l’expliquer. Ca a rapport avec la notion la plus compliquée de la programmation en C, donc on va le laisser de côté pour l’instant^^’
Retenez juste qu’il faut mettre ce symbole avant le nom de la variable dans laquelle on veut stocker la réponse, sinon, ça plante.
Regardez ce code qui résume son utilisation :
Code:
 #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    long munitions;
   
    printf("Bonjour et bienvenue au magasin de munitions! Combien en voulez-vous?\n");
    scanf("%d", &munitions);
    printf("Vous avez choisi d'acheter %d munitions!\n", munitions);
   
   
  system("PAUSE");
  return 0;
}

Ce code a aussi le mérite de vous faire réviser ce qu’on a vu avant.
Comme je suis sympa, je l’explique car c’est le code le plus compliqué qu’on ait vu jusqu’ici.

1. On déclare une variable nommée munition pour stocker le nombre de munitions
2. Une simple question pour que l’utilisateur sache quoi rentrer
3. Le scanf(). Cette ligne stocke la valeur rentrée par l’utilisateur dans la variable munitions
4. Il ne reste plus qu’à afficher le nombre de munitions choisies par l’utilisateur en guise de rappel.

Voilà un beau programme que vous pourrez faire tester à vos amis qui vont pas en revenir^^

Bon, j’ai gardé le plus facile pour la fin. Après l’effort, le réconfort :


Des commentaires s’il vous plait !



Nous allons voir comment commenter du code en C.

Question : Mais encore ?
Réponse : Imaginons que vous ayez un code de 500 lignes avec une cinquantaine de variables. Croyez moi, vous serez très vite largué et vous aurez du mal à vous y retrouver(j’ai déjà abandonné un projet à cause de ça…).
Les commentaires sont la solution !

Regardez attentivement ce code :

Code:
 #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   
    printf("Bonjour!"); //Affiche Bonjour à l'écran
   
  system("PAUSE");
  return 0;
}

Vous remarquez que j’ai inséré une phrase précédée de 2 slashs. C’est ça un commentaire.

Compilez mon code…et vous verrez que ça marche, malgré ma phrase!
Les commentaires sont très pratiques car ils vont être mis de côté par le compilateur, et ne seront pas interprétés. Utilisez les souvent !

Les commentaires que je viens de vous montrer sont appelés "commentaires unilignes" car, comme leur nom l’indique, ils ne commentent qu’une seule ligne. Il existe aussi des commentaires multilignes, dont voici un exemple :
Code:
 /*Voici des commentaires multilignes!
 On les appelle ainsi car ils permettent de commenter plusieurs lignes*/
Dorénavant, je commenterai mon code de sorte que je n’ai pas trop besoin d’expliquer! Ne vous inquiétez pas, vous comprendrez quand même !

Et bien, je trouve qu’on a bien travaillé, n’est-ce pas ?
Vous ne vous en êtes peut-être pas rendu compte, mais vous avez de bonnes bases en C à présent !
On se retrouve dans le prochain chapitre pour découvrir…vous verrez^^
Encore une fois, postez vos commentaires à la suite! Si vous avez des questions, n'hésitez surtout pas!
Revenir en haut Aller en bas
 
Chapitre 3: L'invasion des variables
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Spoil Bleach chapitre 274
» Bleach - Chapitre 322 BKT
» Bleach - Chapitre 423
» Chapitre 511
» One Piece Chapitre 535 :

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Hack Poké :: Hors Sujet :: Programmation en C et C++ :: Tutoriels-
Sauter vers: