Affichage des articles dont le libellé est théorie. Afficher tous les articles
Affichage des articles dont le libellé est théorie. Afficher tous les articles

mardi 5 août 2008

D'un type à l'autre

Si les variables et chaînes sont typées, comme on vient de le voir juste au-dessous, là, on peut quand même effectuer des conversions d’un type à l’autre.
Attention tout de même, si vous convertissez une variable vers une autre, la variable “récepteur” doit posséder le type de destination. Vous me suivez ? J’illustre :

c = 'A';
f = float(c); // f = 65.0
i = int(f * 1.4); // i = 91
b = byte(c / 2);

Ces exemples sont sortis de la doc officielle. Ce que je vous disais plus haut c’est que, par exemple, la variable f qui reçoit c converti en décimal doit elle-même être définie comme un décimal. D’où la nécessité d’un float f; au préalable.

Et puis, cela ne vous aura pas échappé, il y a une finesse : c vaut la lettre ‘A’. Or, on vient de convertir c en décimal. En d’autres termes, un chiffre en lettre (mes amitiés à Armand Jammot. Armand, si tu nous regardes…). Vous aurez compris que 65, soit la valeur de c, est le code ASCII de A.

Les grands classiques : variables et chaînes

Dans tous les guides de langages de programmation que j’ai pu lire, le premier chapitre parlait des variables. Toujours. Et quel que soit le langage. Alors je ne vais pas jouer au plus malin, et faire pareil. En plus, c’est assez logique comme démarche, finalement. Bref, commençons.

En processing, une variable, ça se déclare. S’il s’agit d’un entier, on la déclarera par :

int a = 12;

S’il s’agit d’une variable à virgule flottante, ce sera

float b = 0.0;

On peut aussi utiliser un type booléen. Je vous dirai franchement que je vois pas trop l’intérêt, même pour faire des flags. Mais s’il existe, c’est qu’il doit y avoir une bonne raison

boolean z = true;

qui permettra de faire des tests du style :

if (!z) { ...

Et pour finir, il y a le type byte qui, comme son nom l’indique (byte = octet), peut prendre les valeurs de -128 à 128.

byte b = 32;

(oui, on peut définir une variable et lui donner une valeur dans la foulée.)

Pour ce qui est des chaînes, rien d’affolant :

String chaine="une jolie chaîne de caractères";

…Rien d’affolant, sauf que String prend une majuscule, probablement parce qu’il le vaut bien.
Les chaînes d’un seul caractère, destinées à stocker des symboles typographiques, sont définies par :

char c;
c = 'P';