# Les variables

## Définition

Une variable en informatique permet de stocker une valeur dans votre ordinateur, cette dernière permet d'être mis à jour, utilisé ou supprimer.

## Les variables dans F.P.L

Tout d'abord, nous allons voir la déclaration des variables en F.P.L :

`variable [TYPE] [NOM] -> [VALEUR]`

* *variable* indique au programme que vous souhaitez déclarer une variable.
* *TYPE* est le type de votre variable. Il peut être de n'importe quel type disponible en F.P.L.
* *NOM* est le nom de votre variable. Attention à ne pas mettre deux fois le même nom.
* *->* permet d'attribuer une valeur à votre variable. Il est obligatoire !
* *VALEUR* est la valeur que contiendra votre variable. La valeur doit être en rapport avec le type.

Il est important de noter que vous ne pouvez pas mettre de chiffre dans le nom de la variable !&#x20;

### Exemples

```
variable entier a -> 5
```

```
variable texte msg -> "Yo"
```

```
variable decimal note -> 18.5
```

### Une variable qui est égale à une variable

En F.P.L il est possible de déclarer une variable qui a la même valeur d'une autre variable.

Le type de votre variable doit être le même que celui de l'autre variable !

Exemple :&#x20;

```
variable entier a -> 5
variable entier b -> a
```

Cela reprend le même format que la déclaration d'une variable de base, juste à la placer d'une valeur vous donner une variable.

### Afficher la valeur d'une variable

#### La base

Dès à présent, vous pouvez voir la valeur de votre variable grâce à l'instruction `envoyer` :&#x20;

```
variable entier a -> 5
envoyer a
```

Ce qui nous donnera dans la console `5`.

Vous pouvez faire ceci avec n'importe quel variable de n'importe quel type, cela n'a pas d'importance.

#### Insertion des variables dans l'instruction "envoyer"

En F.P.L vous pouvez insérer une variable comme une nouvelle valeur.

Voici un format possible : `envoyer NomDeLaVariable`

Exemple :&#x20;

```
variable entier a -> 5
envoyer [ "La valeur de a : " a ]
```

ATTENTION : Si vous voyez **que** la valeur de la variable et non du texte ou autre en plus, veuillez utiliser la méthode de dessus. Cela est utile que dans le cas où vous avez des autres arguments.

### Modifier la valeur d'une variable

Vous pouvez changer la valeur de votre variable grâce au mot clé *changer* :) !

Vous devez avoir déclaré votre variable obligatoirement et elle doit être mutable (non constante).

Voici le format à suivre :&#x20;

```
changer [VARIABLE] -> [VALEUR]
```

Sachez que le type de votre variable est non modifiable ! Donc si vous avez déclaré une variable avec *entier* il est impossible de mettre du texte comme dans une variable de type *texte* ! Si vous avez déclaré une variable de mauvais type, vous pouvez convertir son type en un autre avec `convertir`.

Voici un exemple :&#x20;

```
variable entier a -> 5
envoyer [ "La variable 'a' a pour valeur : " a ]
changer a -> 10
envoyer [ "La variable 'a' a change de valeur et c'est maintenant : " a ]

variable texte b -> "cc"
envoyer b
changer b -> "yo"
envoyer b
```

Ce qui nous donnera:&#x20;

```
La variable 'a' a pour valeur : 5
La variable 'a' a change de valeur et c'est maintenant : 10
cc
yo
```

### Variables constantes et globales

Une variable globale est une variable qui a la particularité d'être accessible de partout en F.P.L, c'est une variable qui est utilisé en général pour des choses importantes.

Une variable constante est une variable classique sauf que la valeur qu'elle possède est inchangeable.

Format: `constante TYPE NOM -> VALEUR`&#x20;

Format: `globale TYPE NOM -> VALEUR`

Format pour avoir une variable constante et globale : `globale constante TYPE NOM -> VALEUR` ou `constante globale TYPE NOM -> VALEUR`

Exemples:

```
constante entier a -> 10
envoyer a
constante globale entier c -> 1
envoyer c

globale texte ms -> "Bienvenue !"
envoyer ms
globale constante texte msg -> "BEYE NOOB"
envoyer msg

```

### Retirer une variable de la mémoire

Le fait de libérer la mémoire est possible en F.P.L, cela est important pour éviter que votre programme consomme de la mémoire sans utilité.

Format: `retirer VARIABLE`

Exemple:

```
variable entier a -> 5
envoyer a
retirer a
```
