Variables and Data Types/fr

From Free Pascal wiki
Jump to: navigation, search

English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

Tutoriel de Pascal Objet : Bases / Variables et types de données

Les variables sont similaires aux constantes mais leurs valeurs peuvent changer pendant que le programme fonctionne. Les variables doivent d'abord être déclarées avant de pouvoir être utilisées :

var
  IdentifierList1 : DataType1;
  IdentifierList2 : DataType2;
  IdentifierList3 : DataType3;
  ...

IdentifierList est une série d'identificateurs, séparés par des virgules (,). Tous les identificateurs dans une liste sont déclarés comme étant du même type.

Les types de donnée de base dans Pascal incluent :

  • les entiers (integer) ;
  • les réels (real) ;
  • les caractères (char) ;
  • les booléens (boolean).

Le Pascal standard ne prévoit pas de type chaine mais les compilateurs modernes le font. Les développeurs Pascal expérimentés utilise aussi des pointeurs pour l'allocation dynamique de mémoire, les objets pour la programmation orientée objet et d'autres choses ; mais vous êtes ici pour débuter.

Plus d'informations sur les types de données de Pascal :

  • Le type integer peut contenir des entiers de -32768 à 32767. C'est une plage signée qui peut être contenue dans un un mot de 16 bits, c'est un héritage de l'époque où les CPU 16 bits étaient communes. En raison de la compatibilité descendante, un entier signé sur 32 bits est un longint et peut manier une plage de valeurs supérieure.
  • Le type de donnée real a une plage de 3.4x10-38 à 3.4x1038, en plus de la même plage sur le côté négatif et de 0. Les valeurs réelles sont stockées dans l'ordinateur de manière similaire à la notation scientifique, avec une mantisse et un exposant, avec quelques complications. Dans Pascal, vous pouvez exprimer les valeurs réelles soit en notation à virgule fixe soit en notation scientifique avec le caractère E séparant la mantisse de l'exposant. Ainsi, 452.13 est la même chose que 4.5213e2.
  • Le type de donnée char contient les caractères. Assurez-vous de les délimiter par des guillemets, comme ici : 'a' 'B' '+' le Pascal standard utilise des caractères sur 8 bits, non des 16 bits comme Unicode, utilisé pour représenter tous les jeux de caractères dans un système de code unifié, qui n'est pas supporté.
  • Le WideChar est un caractère sur 2 octets (un élément du jeu de caractère à double octet) et peut contenir un caractère unicode.
  • Free Pascal supporte l'implémentation du type PChar. PChar est défini comme un pointeur vers un type Char, mais permet des opérations supplémentaires. Le type PChar peut être mieux compris comme une chaîne à zéro terminal comme en C, i.e. une variable PChar est un pointeur sur un tableau de type Char qui se termine par un caractère nul (#0). Free Pascal autorise l'initialisation des constantes typées PChar ou l'affectation directe. Par exemple, les morceaux de code suivants sont équivalents :
program one;
var P : PChar;
begin
  P := 'This is a null-terminated string.';
  WriteLn (P);
end.
program two;
const P : PChar = 'This is a null-terminated string.';
begin
  WriteLn (P);
end.
  • Free Pascal supporte les types String comme définis dans Turbo Pascal : une suite de caractères avec une spécification de taille optionnelle (à la déclaration). Il supporte aussi les AnsiString (de taille illimitée) comme dans Delphi et peuvent être déclarées comme :
variable_name : string;                    // if no length is given, it defaults to 255
variable_name : string[length];            // where:  1 < length <= 255
  • Le type prédéfini ShortString est défini comme étant une chaîne de taille 255.
  • Les AnsiString sont des chaînes de taille illimitée. Elles sont munies du comptage de références et sont garanties à zéro terminal. En interne, une AnsiString est traitée comme un pointeur : le contenu réel de la chaîne est stocké dans le tas, il est alloué autant de mémoire que nécessaire pour stocker son contenu.
  • Widestring (utilisé pour représenter des chaînes de caractères unicode) sont implémentées de manière proche des AnsiString : comptage de référence, tableaux à zéro terminal, seulement elles sont implémentées comme des tableaux de WideChar au lieu de Char.
  • Le type de donnée boolean ne peut avoir que deux valeurs : TRUE ou FALSE.

Un exemple de déclaration de plusieurs variables est :

var
  age, year, grade : integer;
  circumference : real;
  LetterGrade : char;
  DidYouFail : Boolean;

Obtenu du manuel de FPC

Types entiers
Type Plage Octets
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint or longint 2 or 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8

Free Pascal effectue une conversion de type automatique dans les expressions dans lesquelles plusieurs types entiers sont utilisés.

Types réels
Type Plage Chiffres significatifs Octets
Real platform dependent ??? 4 or 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
Currency -922337203685477.5808 922337203685477.5807 8


Types booléens
Type Octets Ord(True)
Boolean 1 1
ByteBool 1 Toute valeur non nulle
WordBool 2 Toute valeur non nulle
LongBool 4 Toute valeur non nulle
Sommaire