Difference between revisions of "Basic Pascal Tutorial/Chapter 1/Variables and Data Types/fr"

From Free Pascal wiki
Jump to navigationJump to search
m (bypass language bar/categorization template redirect [cf. discussion])
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Variables_and_Data_Types}}
+
{{Basic Pascal Tutorial/Chapter 1/Variables and Data Types}}
  
1D - Variables et types de donnée
+
[[Basic Pascal Tutorial/fr|Tutoriel de Pascal Objet]] : Bases / '''Variables et types de données'''
  
Les variables sont similaires aux constantes mais leurs valeurs peuvent changer que le programme tourne. Les variables doivent d'abord être déclarées avant de pouvoir être utilisé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 :
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
var
 
var
 
   IdentifierList1 : DataType1;
 
   IdentifierList1 : DataType1;
Line 11: Line 11:
 
   ...  
 
   ...  
 
</syntaxhighlight>
 
</syntaxhighlight>
<tt>IdentifierList</tt> est une série d'identificateurs, séparés par des virgules (<tt>,</tt>). Tous les identificateurs dans une liste sont déclarés comme étant du même type.
+
<code>IdentifierList</code> est une série d'identificateurs, séparés par des virgules (<code>,</code>). 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 types de donnée de base dans Pascal incluent :
 +
* les entiers (''integer'') ;
 +
* les réels (''real'') ;
 +
* les caractères (''char'') ;
 +
* les booléens (''boolean'').
  
* les entiers (integer)
+
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.
* les réels (real)
 
* les caractères (char)
 
* les booléens (boolean)
 
  
le Pascal standard ne prévoit pas de type chaîne 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 :
  
Plus d'informations sur les types de données de Pascal:
+
* Le type '''integer''' peut contenir des entiers de <tt>-32768</tt> à <tt>32767</tt>. 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 '''integer''' peut contenir des entiers de <tt>-32768</tt> à <tt>32767</tt>. 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 <tt>3.4x10<sup>-38</sup></tt> à <tt>3.4x10<sup>38</sup></tt>, 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 <tt>E</tt> séparant la mantisse de l'exposant. Ainsi, <tt>452.13</tt> est la même chose que <tt>4.5213e2</tt>.
 
* Le type de donnée '''real''' a une plage de <tt>3.4x10<sup>-38</sup></tt> à <tt>3.4x10<sup>38</sup></tt>, 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 <tt>E</tt> séparant la mantisse de l'exposant. Ainsi, <tt>452.13</tt> est la même chose que <tt>4.5213e2</tt>.
* Le type de donnée '''char''' contient les caractères. Assurez-vous de les délimiter par des guillemets, comme ici: <tt>'a' 'B' '+'</tt> 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 type de donnée '''char''' contient les caractères. Assurez-vous de les délimiter par des guillemets, comme ici : <tt>'a' 'B' '+'</tt> 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.
 
* 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 codes suivants sont équivalents:  
+
* 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 :
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
program one;
+
program one;
var P : PChar;
+
var P : PChar;
begin
+
begin
   P := 'This is a null-terminated string.';
+
   P := 'This is a null-terminated string.';
   WriteLn (P);
+
   WriteLn (P);
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
program two;
+
program two;
const P : PChar = 'This is a null-terminated string.';
+
const P : PChar = 'This is a null-terminated string.';
begin
+
begin
   WriteLn (P);
+
   WriteLn (P);
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
* 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:
+
* 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 :
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
variable_name : string;                    // if no length is given, it defaults to 255
 
variable_name : string;                    // if no length is given, it defaults to 255
 
variable_name : string[length];            // where:  1 < length <= 255
 
variable_name : string[length];            // where:  1 < length <= 255
 
</syntaxhighlight>
 
</syntaxhighlight>
 
* Le type prédéfini '''ShortString''' est défini comme étant une chaîne de taille 255.
 
* Le type prédéfini '''ShortString''' est défini comme étant une chaîne de taille 255.
* '''AnsiStrings''' 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.
+
* 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.
* '''Widestrings''' (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 <tt>WideChar</tt> au lieu de <tt>Chars</tt>.
+
* '''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 <tt>WideChar</tt> au lieu de <tt>Char</tt>.
* Le type de donnée '''boolean''' ne peut avoir que deux valeurs: '''TRUE''' ou '''FALSE'''.
+
* Le type de donnée '''boolean''' ne peut avoir que deux valeurs : '''TRUE''' ou '''FALSE'''.
  
Un exemple de déclaration de plusieurs variables est:
+
Un exemple de déclaration de plusieurs variables est :
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
var
 
var
 
   age, year, grade : integer;
 
   age, year, grade : integer;
Line 66: Line 65:
  
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
|+'''integer types'''
+
|+'''Types entiers'''
 
!Type !!align="center"|Plage !!Octets
 
!Type !!align="center"|Plage !!Octets
 
|-
 
|-
Line 89: Line 88:
 
|QWord ||align="center"|0 .. 18446744073709551615 ||8
 
|QWord ||align="center"|0 .. 18446744073709551615 ||8
 
|}
 
|}
Free Pascal does automatic type conversion in expressions where different kinds of integer types are used.  
+
Free Pascal effectue une conversion de type automatique dans les expressions dans lesquelles plusieurs types entiers sont utilisés.
  
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
|+'''real types'''
+
|+'''Types réels'''
!Type !!align="center"|Plage !!Significant digits !!Octets
+
!Type !!align="center"|Plage !!Chiffres significatifs !!Octets
 
|-
 
|-
 
|Real ||align="center"|platform dependent ||align="center"|??? ||4 or 8
 
|Real ||align="center"|platform dependent ||align="center"|??? ||4 or 8
Line 110: Line 109:
  
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
|+'''boolean types'''
+
|+'''Types booléens'''
 
!Type !! Octets !! Ord(True)  
 
!Type !! Octets !! Ord(True)  
 
|-
 
|-
Line 122: Line 121:
 
|}
 
|}
  
{|style=color-backgroud="white" cellspacing="20"
+
{{Tutorial page navigation/fr|Chapter 1/Constants|Chapter 1/Assignment and Operations}}
|[[Constants/fr|précédent]]
 
|[[Contents/fr|table des matières]]
 
|[[Assignment_and_Operations/fr|suivant]]
 
|}
 
 
 
[[Category:Pascal]]
 
[[Category: Object Pascal Introduction]]
 

Latest revision as of 16:17, 20 August 2022

български (bg) Deutsch (de) 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