322 membres inscrits | 5 connectés | 74 sujet(s) sur le forum dont 363 post(s) | Mardi 2 décembre 2008 à 10h16
fleche Tutorial
Lecture du tuto

Chapitre 4: Les variables en C

Nous allons voir les variables, un chapitre important puisque nous allons voir les différents types de variables, leur utilisation, leur récupération et aussi comment créer son propre type de variables.

Une variable : c'est quoi?



Une variable sert à contenir des données, en C, ce sera surtout des nombres. Une variable en C sera stocker dans la mémoire de votre ordinateur. Ainsi, on est limité en variable, c'est pourquoi il faudra en utiliser le moins possibles. Imaginez que votre mémoire est un tableau avec l'adresse de la variable (on verra ce que c'est plus tard avec les pointeurs) et la valeur de la variable, celle que vous lui donnerais, ce tableau a une limite, elle varie suivant les configurations de votre ordinateur, c'est-à-dire la RAM (ou mémoire vive). A chaque déclaration de variable, votre système d'exploitation lui attribuera une place dans la RAM.

Je ne rentre pas dans le côté matériel, sinon ce serait trop long à vous expliquez et vous risqueriez d'être perdu.

Maintenant, déclarons nos variables.

Déclaration d'une variable



Donc en résumé, notre variable pourra contenir des nombres comme par exemple l'âge de l'utilisateur, un nombre de munitions dans un jeu vidéo ...

Les variables, on s'en sert pour tout et partout, c'est pourquoi vos programmes seront composés de variables. Cependant, il faudra faire attention à une chose, et c'est ce que nous allons voir.

Le nom de la variable :

Il faut qu'elle soit compréhensible, pour que vous sachiez de quoi il s'agit.
Vous pouvez utilisez les lettres de a à z et de A à Z (faire la différence entre minuscule et majuscule), les chiffres de 0 à 9 (vous pouvez donc mettre n'importe quel nombre) et le underscore : _ . Ne pas mettre d'espace ni de caractères accentués et ne peut commencer par un chiffre.
Les noms que vous pouvez former ne peuvent pas être composé uniquement de chiffres, si vous voulez faire un nom de variable avec des chiffres uniquement : vous devez rajoutez un _ devant le nombre :

Code C:


//nom de variables corrects

azerty;
_555;
AGE;
SommE;

//incorrect

a a;
différence;
123;
2vie;

 


Mais les déclarations ci-dessus sont quand même incorrect, car en C, il faut préciser le type de la variable, un peu comme des ensembles de nombres quoi. Sauf que suivant le type de variable, la variable prendra plus ou moins de place en mémoire.

Voyons les différents types.

Il en existe 5 principaux :

- int
- long
- char
- float
- double

int et long permettent de stocker des nombres entiers positif ou négatif(-1, 400, 30...).
char permet de stocker un caractère unique de A à Z, mais nous verrons que l'on peut aussi utiliser des chiffres.
float permet de stocker des nombres réels avec une simple précision.
double est quasiment identique à float, sauf qu'il est beaucoup plus précis, on l'utilisera surtout pour des tout petits nombres ou de très grands nombres.

Voyons maintenant leurs étendues qui sont toutes différentes :

int : -2 147 483 648 à 2 147 483 647
long : -2 147 483 648 à 2 147 483 647
char : -128 à +127
float : -3.4x10^38 à 3.4x10^38
double: -1.7x10^308 à 1.7x10^308

Vous remarquez que on a de très grandes possibilités.

Maintenant, si vous n'utilisez que des nombres positifs, vous pouvez utiliser un modificateur appelé unsigned. Il vous permettra d'utiliser que des nombres positif et fonctionne avec n'importe quel type de variables. Il se placera avant le type de la variable.
Et pour les négatifs me dirait vous? il suffit d'utiliser signed de la même manière que unsigned :D.

Nous pouvons déclarer des variables :

Code C:

double argent; //un double est suffisant (sauf si vous êtes supra-riche, permis de rêver)
unsigned int age; //l'âge est toujours positif est entière.
 



Vous avez compris le principe je pense que je n'ai pas besoin de continuer.

Toutes les variables doivent être déclarer au début d'une fonction , donc ici le main, entre les accolades. Si vous les déclarez hors d'une fonction, on appelle ceci une variable globale, mais l'on verra que l'on peut s'en passer plus tard. Avant, il faut apprendre à affecter une valeur à une variable et à l'afficher.

Pour affecter une valeur à une variable, vous devez faire suivre le nom de la variable d'un signe = et de la valeur numérique.

Code C:


unsigned int age = 20;

 


Dès le départ, prenez l'habitude d'utiliser les bons types de variables avec les bons modificateurs.


Maintenant nous allons voir quelques particularités :

On peut définir plusieurs variables en une instruction, si elles ont le même type :

Code C:


unsigned int note, age, vitesse; //il vous suffit de mettre une , entre les deux noms

 


Aussi, si vous avez déclaré des variables comme si dessus, vous pouvez faire une affection sur plusieurs variables :

Code C:


unsigned int note, age, vitesse; //toujours définir des variables pour travailler avec.

note = age = 18;
vitesse = 90;

//on aurait aussi pu faire :

unsigned int note, age = 18;

unsigned int vitesse = 90;

//Ce qui vous optimise votre code
 


Maintenant, s'il vous le voulez bien, compilez le code ci-dessous :

Code C:


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

int main()
{
    unsigned int age=20;//oui, je simplifie, une variable pour commencer c'est pas mal
   
    system("PAUSE");
    return 0;
}

 


Une déclaration toute bête qui... affiche rien !

Nous allons voir maintenant comment afficher une variable simplement, après promis, on va s'amuser avec les variables ...

Afficher une variable



Tout d'abord, sachez que l'on utilisera printf pour cela. Je vais vous donner le code, puis je l'expliquerai :

Code C:


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

int main()
{
    unsigned int age=20;

    printf("Vous avez %d ans\n", age);
   
    system("PAUSE");
    return 0;
}

 


Le code affiche par magie :

Code console:


Vous avez 20 ans
Appuyer sur une touche pour continuer...



On a rajouter deux petites chose : %d, et le nom de la variable après le texte.

%d permet d'afficher la valeur à l'endroit où il est placé dans le texte.
Le nom de la variable, permet au programme de savoir laquelle affichées.

Si vous utilisez plus de variables, vous mettrez les variables après le texte dans le MEME ordre que leur apparition dans le texte.

Si vous utilisez des types float ou double, au lieu de %d, vous utiliserez %f.

Maintenant, récupérons des variables.

Récupérer des variables



Et si vous vouliez que votre utilisateur rentre lui même son âge, ce qui est un peu plus logique que lui donner un âge ?.

Vous utiliserez une autre fonction scanf. Avec printf, ces deux fonctions sont celles de bases à connaître en C.

Comment on l'utilise?


Il faut premièrement avoir défini la variable, puis après seulement, vous pourrez récupérer au près de l'utilisateur une variable :


Code C:


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

int main()
{
    unsigned int age;//dans ce cas, je n'affecte pas de valeurs
   
    printf("Bonjour, quel age as-tu? ");
    scanf("%d", &age); //et voilà vous récupérer la variable...
    printf("\nVous avez %d ans\n", age);//ici cela ne change pas, à part un petit \n
   
    system("PAUSE");
    return 0;
}

 


Simple non?
On récupère une valeur, on met le %d entre guillemet suivit de & + le nom de la variable, nous verrons plus tard comment cette forme de la variable s'appelle.

Voici ce qui s'affiche à l'écran :

Code console:

Bonjour, quel age as-tu? 20

Vous avez 20 ans
Appuyez sur une touche pour continuer...


Voilà c'est pas magique !

On peut s'amuser à récupérer ce que l'on veut comme çà, mais pour un caractère ou une chaîne de caractères, c'est différents car scanf n'est pas assez sécurisé. Nous verrons ceci plus tard.

Faisons des calculs



Maintenant que l'on a les clés en mains sur les variables, on va faire des petits calculs simples.

Nous allons voir les opérations, il y en a 5 à connaître de bases : addition, soustraction, multiplication, division, modulo.

Vous vous demandez tous sûrement ce que peut bien être le modulo, il s'agit du reste d'une division.

Voici leur signe en C :

Addition +
Soustraction -
Multiplication *
Division /
Modulo %

Maintenant, il y a plusieurs méthodes :

Code C:


int i=0;
i= i+2;

 


ou

Code C:


int i=0;
i += 2;

 


Je préfère la deuxième à la première, mais ces deux codes font exactement la même chose. Après, vous pouvez remplacer l'opérateur par n'importe lequel.
Retenez de ceci que l'on mets le nom de la variable pour résultat, et après l'opération ou ce qu'elle contient(comme on le verra plus tard), sinon vous aurez de jolies erreurs de compilations.


Nombres d'entre vous font l'erreur de créer une variable pour le résultat, il serait totalement inutile de faire ceci :

Code C:


int i;
int resultat;

resultat = i+2;
 


Non seulement vous alourdissez votre code, mais vous risquez de ne plus vous y retrouver. A l'avenir pensez-y, çà vous fera des codes plus clairs et plus optimisés.


Cependant, si vous faites un calcul avec plusieurs variables, vous devez en créer une pour recevoir le résultat.

Maintenant, on peut enchainez les opérations à la suite sur la même variable.

Code C:


int i=4;

i *=3;
i -=2;
i /=5;

//Affichons le résultat :

printf("i vaut %d", i);

 


Vous voyez que lorsque vous compilez, vous obtenez :

Code console:


i vaut 2



Bien sûr, je n'ai pas mis le code complet, je pense que vous avez compris que le code que je donne doit être mis dans le main, et avant system("pause).

Avant de passer à la suite, nous allons voir deux opérateurs celui de l'incrémentation et celui de ce la décrémentation.

L'incrémentation est le fait d'augmenter de 1 une valeur.

En C, on utilise ++ après le nom de la variable pour incrémenter.

Code C:

int i=24;

i++;
 


Vous n'êtes pas obligés de mettre i=, car pour le compilateur, on a écrit i +=1.

Pour la décrémentation, on utilise --, donc :

Code C:


int i=2;

i--;
 


De même, pour le compilateur, on a fait i -=1.
Maintenant, je vais vous donner une paire de problème pour vous entraînez tous seul comme des grands (à partir de maintenant, il y en aura à chaque chapitre).


Excercez-vous !



Ces exercices ne sont pas obligatoires, mais conseillés et vous permettront de progresser. Si vous bloquez à un endroit, utilisez le forum C/C++ du site, qui est là pour çà.

Exercice 1 :

On cherche a faire la moyenne de deux notes. Après avoir demandé les deux notes, vous afficherez la moyenne, et ceux pour n'importe quels nombres entiers positifs.

Rappel :
- La moyenne (note1+note2)/2

Dans le même esprit :
- Faites la même chose mais avec des nombres décimaux positifs.


Après amusez vous à faire des listes de calculs à partir d'un nombre donné par l'utilisateur, et affichez-le.

Conclusion



Voilà, on a vu ce que sont les variables, mais bon, je ne suis pas du tout rentrer dans les détails, je me les réserve pour plus tard.

Pour l'instant, les programmes que vous faîtes ne sont pas intéressant, mais cela va changer,dès les prochains chapitres. On va voir les boucles et les structures conditionnelles, on codera plein de choses dans les chapitres les suivant, vous verrez alors que votre niveau de débutant vous permet de faire de belle chose.


précédentsommairesuivant