IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 3 - Variables, formats et maths

Déclaration

Toutes les variables doivent être 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 chaines 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 être 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.
À 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 variables 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 chaine qui fait 6 caractères = 20 au total.


précédentsommairesuivant

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 ni 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.