TOP
tetris Programmez un Tetris en Java
360 pages PDF pour apprendre à votre rythme.
Développez des jeux vidéo en Java.
www.jdevmaker.com
Gimp 2.4
Documentation
Tutoriels
Ressources
Divers

Dernière mise à jour le 07 avr 2008
consultée 6270 fois
Apprendre  ›  Écrire un script-fu  ›  Tutoriel partie 5

 

Scheme, Tutoriel : Initiation partie 5

Ce document est sous un contrat Creative Commons.

 

Avant d'aller plus loin, il va nous falloir comprendre ce qu'est une variable et une fonction. Aussi n'échapperez vous pas à une étape théorique essentielle et indispensable pour continuer. Comme toujours je zapperais le jargon, au profit d'un discours plus intelligible pour le profane, aussi ne vous décourager pas. J'espère parvenir à vous initier.

Les variables et les fonctions ne sont pas des notions propre à l'informatique, mais directement empruntées aux mathématiques. Et les mathématiques dans bien des cas, empruntent ces concept dans la vie, la nature, notre monde. Aussi les variables et les fonctions ne vous sont-elles sûrement pas si étrangères que cela. Ce sont d'ailleurs des notions assez simple a comprendre.

 

Les variables

Je vais d'abord tenter de vous faire appréhender la notion de variable. Sachez qu'il vous faut comprendre plus que savoir, cela vous sera bien plus profitable.

Imaginer qu vous ayez un meuble avec 3 portes, soit la porte bouffe pour chat, bouffe pour chien et bouffe pour poisson, que pour plus de commodité vous avez numéroté respectivement 1, 2 et 3. Vous partez en vacances et un amis s'occupe de votre maison. Votre amis est perdu, il ne sait pas comment nourrir vos chers animaux, il ignore où sont rangés leurs aliments (admettons qu'il ne veut pas se casser). Il vous téléphone. Vous lui dite que cela se trouve dans tel meuble. Mais ce meuble a 3 portes !! Suivant l'animal qu'il voudra nourrir, il lui faudra ouvrir une porte différente et approprié a la situation. Ainsi le facteur porte est-il variable. Il peut prendre la valeur de 1 (chat), de 2 (chien) ou de 3 (poisson). Vous me suivez ? Si votre réponse est oui, alors vous avez compris la notion de variables. Dans cet exemple la porte est le nom de la variable, et cette variable peut prendre les valeurs de 1, 2 ou 3, suivant les circonstances.

Un autre exemple :

Prenons une bouteille de pinard de 75 cl. Elle est malheureusement vide (attention, je n'encourage pas à l'alcoolisme !). Vous la remplissez d'eau. Bon, mais vous n'êtes pas obliger de la remplir totalement. Vous conviendrez que vous pouvez la remplir un peu, moyen, beaucoup, a fond, etc... Donc le facteur bouteille est variable. Comme cela est assez imprécis, nous dirons que vous pouvez la remplir par centilitres, donc suivant une valeur pouvant aller de 1 cl à 75 cl. Dans cette exemple, le nom de notre variable est bouteille, et a cette variable peut-être attribuée une valeur allant de 1 à 75, suivant la quantité d'eau que vous mettez.

Ainsi une variable a un nom (un identificateur) pour savoir de laquelle nous parlons. Et à cette variable correspond une valeur. Cette valeur peut être un chiffre ou un nombre (valeur numérique) comme dans nos deux exemples, mais aussi un mot ou une phrase (valeur alphanumérique, on parle aussi de chaîne, sous-entendu de caractères).

On peut considérer les variables comme des petites boites, dans lesquelles ont range des valeurs. Ses petites boites sont étiquetées afin de pouvoir, quand on en a besoin, les ressortir et savoir ce que l'on a rangés dedans.

Tel est le concept des variables, qui se nomme ainsi parce qu'elles varient, et que l'on ne peut déterminer à l'avance qu'elle sera leurs valeurs. Cela dépend des circonstances.

Par opposition, nous trouvons des constantes. Les constantes sont identifié avec un nom auxquelles ont a attribuées une valeur (numérique ou alphanumérique) qui ne sera jamais modifiée (donc constante). Dans notre premier exemple, porte est une variable, qui peut prendre les valeurs 1, 2 ou 3. Mais porte du chat a toujours la valeur 1, porte du chien la valeur 2, porte du poisson la valeur 3. Ce sont des constantes, leur valeur, ne change jamais. Dans notre second exemple, nous trouverions la constante capacité totale de la bouteille, qui aurait la valeur de 75, la bouteille ne pouvant contenir plus de 75 cl. Quoi que vous fassiez la bouteille aura toujours une capacité totale de 75 cl, même si vous pouvez ne pas la remplir a fond.

Pour continuer a illustrer tout ça, nous pourrions dire qu'1 kilo est une constante. En effet, 1 kilo, c'est toujours 1 kilo, peut importe que ce soit 1 kilo de plomb ou 1 kilo de plume. Par contre le poids d'une plume est une variable. Une plume de colibri ne faisant certainement pas le même poids qu'une plume d'autruche !

Le nom d'une variable est arbitraire, c'est vous qui le définissez. Cependant, il est préférable de donner un nom qui soit évocateur de l'emploi ou l'utilité de la variable. Une autre convention est donner un nom qui soit assez court, ne donnez pas des noms de variable de 50 caractères ! Enfin sachez qu'un même nom ne peut être utilisé plusieurs fois, c'est un nom qui se doit d'être unique (dans l'absolu, cela n'est pas tout à fait vrai, mais a ce stade considérez le comme vrai).

Il vous suffit pour le moment d'avoir compris tout ça. Nous reviendront plus tard sur la syntaxe employée en Scheme pour définir et utiliser nos variables.

 

Les fonctions

Les fonctions sont peut-êtres plus simple a comprendre encore, bien que paradoxalement elles soient plus complexe.

Prenons le cas d'une machine à laver. Cette machine à laver possède une fonction (voyez, c'est le même mot), celle de laver le linge, autrement dit a quoi elle sert ? Pour parvenir à remplir cette fonction, elle met en oeuvre un certain nombre d'action, a savoir, mouiller le linge, introduire une lessive, laver, essorer...

Si vous avez compris ça, vous savez d'or et déjà ce qu'est une fonction en informatique.

Une fonction possède un nom. Elle sert a quelque chose, c'est son utilité. Et cette fonction accomplit des tâches.

Notez que l'on peut dans la fonction machine à laver, spécifier un fonctionnement particulier, disons personnalisé. Ainsi nous utilisons la lessive que nous voulons, ce ne sera pas forcement la même a chaque fois, nous mettons le linge que nous voulons, blanc, couleur, nous chargeons la machine plus ou moins, et enfin nous pouvons décider de faire un prélavage ou non, etc...

En informatique nous avons (généralement) cette aspect aussi présent avec nos fonctions. On parle de passer des arguments a la fonction. Ces arguments sont d'ailleurs le plus souvent des variables. Ne nous focalisons pas sur les arguments, nous verrons concrètement cela a la leçon suivante, et tout deviendra lumineux.

 

Et notre script dans tout ça ?

Vous avez peut-être déjà, par analogie, notez qu'il y a des ressemblance avec un script-fu et une fonction. Et vous n'auriez pas tort. Notre script possède un nom, une utilité (il fait quelque chose, mais pas autre chose), et il accomplit des tâches qui conditionne son utilité.

 

Et les math ?

Souvenez-vous, les fonctions... Il s'agissait de reproduire graphiquement celle-ci.

Considérons la fonction :

f(x2)

x représente une variable.

Pour chaque valeur que nous attribuons a x, nous aurons une valeur final déterminée par la fonction, ici suivant le principe de x2.

pour x = 1, f(x2) = 1 * 1 = 1

pour x = 2, f(x2) = 2 * 2 = 4

pour x = 3, f(x2) = 3 * 3 = 9

pour x = 4, f(x2) = 4 * 4 = 16

Ce qu'illustre le graphique ci-dessous :

Ainsi f(x2) est notre fonction. Son utilité est de calculer le carré de x. Ses tâches sont ici réduites a une seul tâche, qui donc correspond a son utilité, celle de calculer le carré de x. Enfin on lui passe un argument qui est la variable x.

 

Nous verrons concrètement tout ça à la leçon suivante, la théorie ne valant pas tripette sans la pratique.

 

Types

Gardez en mémoire cette autre notion essentielle. Nous avons vu (pour l'instant) qu'il y avait 2 types de variables.

Ces 2 types sont notoirement incompatible : par exemple, si vous tentez d'additionner des variables qui contiennent du texte, cela produira une erreur. A l'inverse, si vous tentez de "manipuler" (on dit traiter des chaînes) des caractères au sein de variables qui contiennent des nombres, cela produira une erreur. Bref, avec les variables, c'est chacun chez soi !

 

 

Valide XHTML 1.0 Strict
Valide CSS 2.0
Valide Accessibilité
Creative Commons License

Tous les documents et ressources sont sous un contrat Creative Commons.