Les variables

Entrée, traitement, sortie

On peut schématiquement distinguer trois grandes étapes lors de l'exécution d'un programme :

Notion de variable

Lorsque l'utilisateur communique une donnée au programme celui-ci la conserve dans la mémoire de l'ordinateur. Cette zone de stockage est représentée par une variable et possède un nom qui permet de l'identifier.

Dans le programme suivant, la variable nom sert à conserver le prénom entré par l'utilisateur :

var nom=prompt("Entrez votre prénom");
print("Bonjour ");
println(nom);

Exécuter

Comment cela fonctionne-t-il ?

Les types de données

Dans le programme précédent la variable nom reçoit et stocke une chaîne de caractères : la variable nom est du type String. Une variable peut également stocker un nombre, la variable est alors de type Number.

Dans le programme suivant nous utilisons des variables de type nombre pour effectuer une addition :

var a=3;
var b=7;
var somme=a+b;

println(somme);

Exécuter

Comment cela fonctionne-t-il ?

Conversion de type

Lorsqu'un utilisateur entre une donnée par l'intermédiaire d'une boite de dialogue (instruction prompt), cette donnée est toujours du type chaîne de caractères. Lorsque la chaîne de caractères est le texte d'un nombre, il est possible de la convertir dans le type nombre. Exécutez les deux programmes qui suivent et observez les résultats obtenus :

Programme n°1

var a=prompt("Entrez le nombre a");
var b=prompt("Entrez le nombre b");

var resultat=a+b;

println(resultat);

Exécuter

Programme n°2

var a=prompt("Entrez le nombre a");
var b=prompt("Entrez le nombre b");

var resultat=parseFloat(a)+parseFloat(b);

println(resultat);

Exécuter

Que s'est-il passé ?

Programme n°1

L'expression a+b est évaluée alors que a et b sont des variables du type chaîne de caractères, l'addition de deux chaînes de caractères ne provoque pas de calcul, mais la juxtaposition des deux chaînes.

Programme n°2

L'expression parseFloat(a) donne (si possible) le nombre représenté par la chaîne de caractères a, de même parseFloat(b) donne le nombre de la chaîne de caractères b. Du coup parseFloat(a)+parseFloat(b) calcule la somme des deux nombres écrits sous forme de chaînes de caractères dans les variables a et b.

Essayez le programme n°2, en entrant des chaînes de caractères qui ne représentent pas des nombres, vous aurez comme résultat NaN, ce qui signifie : « Not a Number ».

Exercices

1. Ecrire un programme qui calcule l'aire et le périmètre d'un rectangle dont on donne les deux dimensions.

2. Ecrire un programme qui échange le contenu de deux variables a et b.

JS Bin