Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 3 - Variables, formats et maths

Déclaration

Toutes les variables doivent êtres préalablement déclarées avant d'être utilisées dans le programme, c'est-à-dire qu'on leur affecte un type (voir les types de variables).
Elles peuvent être déclarées :

  • Au tout début du programme, avec la syntaxe VAR nom_de_la_variable : type;. Elles seront alors valables pour le programme dans son intégralité (sous-programmes, fonctions, procédures...).
    On les appellera variables globales.
  • Au début d'une procédure ou fonction, avec la syntaxe précédente. Elles ne seront valables que dans la procédure.
    On les appellera variables locales.

Prise de valeurs

Les variables sont faites pour varier, il faut donc pouvoir leur donner différentes valeurs au moyen de l'opérateur d'affectation := (deux points égale) ou de certaines fonctions. Il faut bien sûr que la valeur donnée soit compatible avec le type utilisé. Ainsi, on ne peut donner la valeur 'bonjour' à un nombre entier (Integer).

Exemples :

 
Sélectionnez

Y := 2009;

On donne ainsi la valeur 2009 à la variable Y (déclarée préalablement en Integer).

 
Sélectionnez

Lettre := 'a';

On affecte la valeur 'a' à la variable Lettre (déclarée préalablement en Char).

 
Sélectionnez

Continuer := true;

On donne la valeur true (vrai) à la variable Continuer (déclarée préalablement en Boolean).

 
Sélectionnez

Nombre := Y + 103;

Il est également possible d'utiliser les valeurs d'autres variables, du moment qu'elles sont de même type; sinon, il faut faire des conversions au préalable.

 
Sélectionnez

Delta := Sqr(b) - 4 * (a * c);

On peut donc également utiliser une expression littérale mathématique dans l'affectation de variables. Mais attention à la priorité des opérateurs (voir opérateurs).

 
Sélectionnez

Phrase := 'Bonjour' + Chr(32) + Nom;

On peut aussi concaténer (ajouter) des variables String (voir chapitre 13 sur les chaînes de caractères).

Fonctions

Fonctions mathématiques Pascal de base :

Syntaxe Fonction
Sin(a) sinus
Cos(a) cosinus
ArcTan(a) arctangente
Abs(a) valeur absolue
Sqr(a) carré
Sqrt(a) racine carrée
Exp(a) exponentielle
Ln(a) logarithme népérien


L'argument des fonctions trigonométriques doit être exprimé en radians (Real), à vous donc de faire une conversion si nécessaire. De plus, on peut voir que les fonctions tangente, factorielle n'existent pas : il faudra donc créer de toutes pièces les fonctions désirées (voir fonctions).

Emplois

Les variables peuvent êtres utilisées dans de nombreux emplois :

  • Pour des comparaisons dans une structure conditionnelle (voir chapitre 5 sur les conditions);
  • Pour l'affichage de résultats (voir chapitre 1 sur l'affichage);
  • Pour le dialogue avec l'utilisateur du programme (voir chapitre 1 sur les entrées au clavier);
  • Pour exécuter des boucles (voir chapitre 6 sur les structures répétitives);
  • ...

Opérations

Syntaxe Utilisation Type des variables Description
Inc(a); Procédure Tout scalaire Le nombre a est incrémenté de 1
Inc(a,n); Procédure Tout scalaire Le nombre a est incrémenté de n
Dec(a); Procédure Tout scalaire Le nombre a est décrémenté de 1
Dec(a,n); Procédure Tout scalaire Le nombre a est décrémenté de n
Trunc(a); Fonction Tout réel Prise de la partie entière du nombre a sans arrondis
Int(a); Fonction a : tout réel
Int(a) : Longint
Prise de la partie entière du nombre a sans arrondis
Frac(a); Fonction Tout réel Prise de la partie fractionnaire du nombre a
Round(a); Fonction a : tout réel
Round(a) : Longint
Prise de la partie entière du nombre a avec arrondi à l'unité la plus proche
Pred(x); Fonction Tout scalaire Renvoie le prédécesseur de la variable x dans un ensemble ordonné
Succ(x); Fonction Tout scalaire Renvoie le successeur de la variable x dans un ensemble ordonné
High(x); Fonction Tout scalaire Renvoie la plus grande valeur possible que peut prendre de la variable x
Low(x); Fonction Tout scalaire Renvoie la plus petite valeur possible que peut prendre de la variable x
Odd(a); Fonction a : entier
Odd(a) : Boolean
Renvoie true si le nombre a est impair et false si a est pair
SizeOf(x); Fonction x : tous
SizeOf(x) : Integer
Renvoie le nombre d'octets occupés par la variable x

Format

Sachez encore que le format (le nombre de signes) d'une variable de type réel peut être modifié lors de son affichage.

Exemples :

 
Sélectionnez

WriteLn(nombre:5);

Cela signifie : afficher nombre en utilisant une largeur minimale de 5 caractères, en ajoutant si nécessaire des espaces à gauche pour atteindre cette largeur minimale (cadrage 'à droite'). S'il faut plus de 5 caractères pour afficher nombre, alors la largeur utilisée sera augmentée en conséquence.

  • Pour un entier :
 
Sélectionnez

Var
  n : Integer;
...
  n := 56;
  WriteLn(n:3);
...

donnera pour affichage ([ et ] montrent les limites du champ affiché) :

 
Sélectionnez

[ 56]

soit 1 espace + 2 caractères pour n.
Alors que :

 
Sélectionnez

Var
  n : Integer;
...
  n := 35767;
  WriteLn(n:3);
...

donnera

 
Sélectionnez

[35767]

soit plus large que ce qu'on a demandé, car on ne peut pas afficher la valeur avec la largeur demandée.

  • Pour un réel :

Si on n'a pas précisé le nombre de chiffres pour la partie décimale, il y aura affichage au format "exponentiel", c'est-à-dire quelque chose comme 5.6E+002.

 
Sélectionnez

Var
  n : Real;
...
  n := 56;
  WriteLn(n:3);
...

donnera pour affichage :

 
Sélectionnez

[ 5.6E+02]

alors que si la largeur demandée excède la longueur le nombre de caractères nécessités pour l'affichage comme ci dessus, on va compléter la partie décimale par des 0 (zéro), ceci tant qu'on n'a pas affiché un nombre de caractères maximum, variant selon le type de réel utilisé (real, single, ...). Si ce nombre maximal est dépassé, alors on complète avec des espaces à gauche.
Ainsi :

 
Sélectionnez

Var
  n : Real;
...
  n := 56;
  WriteLn(n:17);
...

donnera (on est au max de chiffres pour real) :

 
Sélectionnez

[ 5.6000000000E+01]

alors que

 
Sélectionnez

WriteLn(n:20);

donnera

 
Sélectionnez

[    5.6000000000E+01]


Autre syntaxe :

 
Sélectionnez

WriteLn(Nombre:0:5);

Cela signifie : afficher nombre (réel) sans espace avant, et en affichant 5 chiffres de la partie décimale, en complétant ces décimales par des 0 (zéro) si nécessaire.
A la longueur 5 des chiffres décimaux, s'ajoutent les chiffres de la partie entière, + le point décimal.

Exemples :

 
Sélectionnez

Var
  r : Real;
...
  r := 10.1245214;
  WriteLn(r:0:5);
...

donnera pour affichage ([ et ] montrent les limites du champ affiché) :

 
Sélectionnez

[10.12452]

alors que

 
Sélectionnez

Var
  r : Real;
...
  r := 10.12;
  WriteLn(r:0:5);
...

donnera

 
Sélectionnez

[10.12000]

Dans la définition du Pascal (Jensen et Wirth), l'affichage d'un type réel commence toujours par au moins un espace, ce qui n'est pas le cas pour tous les autres types.


Pour pouvez appliquer un format pour tous les autres types de variable de manière générale, si vous ne stipulez que le nombre d'espaces à afficher devant votre texte ou valeur.

Exemple :

 
Sélectionnez

WriteLn('Coucou':20);

Cela signifie : comme pour un nombre, on demande une largeur minimale pour l'affichage, donc ici 20 caractères, en ajoutant si nécessaire des espaces à gauche pour atteindre cette largeur minimale (cadrage "à droite").
L'affichage sera donc :

 
Sélectionnez

[              Coucou]

soit 14 espaces, puis la chaîne qui fait 6 caractères = 20 au total.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.