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

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{Variables_and_Data_Types}} 1D - Variables et types de donnée Variables are similar to constants, but their values can be changed as the program runs. Variables must first...")
 
Line 3: Line 3:
 
1D - Variables et types de donnée
 
1D - Variables et types de donnée
  
Variables are similar to constants, but their values can be changed as the program runs. Variables must first be declared in Pascal before they can be used:
+
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:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
var
 
var
Line 11: Line 11:
 
   ...  
 
   ...  
 
</syntaxhighlight>
 
</syntaxhighlight>
<tt>IdentifierList</tt> is a series of identifiers, separated by commas (<tt>,</tt>). All identifiers in the list are declared as being of the same data type.
+
<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.
  
The basic data types in Pascal include:
+
Les types de donnée de base dans Pascal incluent:
  
* integer
+
* les entiers (integer)
* real
+
* les réels (real)
* char
+
* les caractères (char)
* boolean
+
* les booléens (boolean)
  
Standard Pascal does not make provision for the string data type, but most modern compilers do. Experienced Pascal programmers also use pointers for dynamic memory allocation, objects for object-oriented programming, and many others, but this gets you started.
+
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.
  
More information on Pascal data types:
+
Plus d'informations sur les types de données de Pascal:
  
* The '''integer''' data type can contain integers from <tt>-32768</tt> to <tt>32767</tt>. This is the signed range that can be stored in a 16-bit word, and is a legacy of the era when 16-bit CPUs were common. For backward compatibility purposes, a 32-bit signed integer is a longint and can hold a much greater range of values.
+
* 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.
* The '''real''' data type has a range from <tt>3.4x10<sup>-38</sup></tt> to <tt>3.4x10<sup>38</sup></tt>, in addition to the same range on the negative side. Real values are stored inside the computer similarly to scientific notation, with a mantissa and exponent, with some complications. In Pascal, you can express real values in your code in either fixed-point notation or in scientific notation, with the character <tt>E</tt> separating the mantissa from the exponent. Thus, <tt>452.13</tt> is the same as <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>.
* The '''char''' data type holds characters. Be sure to enclose them in single quotes, like so: <tt>'a' 'B' '+'</tt> Standard Pascal uses 8-bit characters, not 16-bits, so Unicode, which is used to represent all the world's language sets in one UNIfied CODE system, is not supported.
+
* 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é.
* The '''WideChar''' is a two-byte character (an element of a DBCS: Double Byte Character Set) and can hold a unicode character.
+
* 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 supports the Delphi implementation of the '''PChar''' type. PChar is defined as a pointer to a Char type, but allows additional operations. The PChar type can be understood best as the Pascal equivalent of a C-style null-terminated string, i.e. a variable of type PChar is a pointer that points to an array of type Char, which is ended by a null-character (#0). Free Pascal supports initializing of PChar typed constants, or a direct assignment. For example, the following pieces of code are equivalent:  
+
* 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 supports the '''String''' type as it is defined in Turbo Pascal: a sequence of characters with an optional size specification. It also supports ansistrings (with unlimited length) as in Delphi. And can be declared as:
+
<syntaxhighlight>
 +
program one; 
 +
var P : PChar; 
 +
begin 
 +
  P := 'This is a null-terminated string.'; 
 +
  WriteLn (P); 
 +
end.
 +
</syntaxhighlight>
 +
<syntaxhighlight>
 +
program two; 
 +
const P : PChar = 'This is a null-terminated string.'; 
 +
begin 
 +
  WriteLn (P); 
 +
end.
 +
</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:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
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>
* The predefined type '''ShortString''' is defined as a string of size 255.
+
* Le type prédéfini '''ShortString''' est défini comme étant une chaîne de taille 255.
* '''AnsiStrings''' are strings that have no length limit. They are reference counted and are guaranteed to be null terminated. Internally, an ansistring is treated as a pointer: the actual content of the string is stored on the heap, as much memory as needed to store the string content is allocated.
+
* '''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.
* '''Widestrings''' (used to represent unicode character strings) are implemented in much the same way as ansistrings: reference counted, null-terminated arrays, only they are implemented as arrays of <tt>WideChars</tt> instead of regular <tt>Chars</tt>.  
+
* '''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>.
* The '''boolean''' data type can have only two values: '''TRUE''' and '''FALSE'''
+
* Le type de donnée '''boolean''' ne peut avoir que deux valeurs: '''TRUE''' ou '''FALSE'''.
  
An example of declaring several variables is:
+
Un exemple de déclaration de plusieurs variables est:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
var
 
var
Line 48: Line 63:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''From the FPC manual'''
+
'''Obtenu du manuel de FPC'''
  
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
 
|+'''integer types'''
 
|+'''integer types'''
!Type !!align="center"|Range !!Bytes
+
!Type !!align="center"|Plage !!Octets
 
|-
 
|-
 
|Byte ||align="center"| 0 .. 255 || 1
 
|Byte ||align="center"| 0 .. 255 || 1
Line 78: Line 93:
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
 
|+'''real types'''
 
|+'''real types'''
!Type !!align="center"|Range !!Significant digits !!Bytes
+
!Type !!align="center"|Plage !!Significant digits !!Octets
 
|-
 
|-
 
|Real ||align="center"|platform dependent ||align="center"|??? ||4 or 8
 
|Real ||align="center"|platform dependent ||align="center"|??? ||4 or 8
Line 96: Line 111:
 
{| style="background-color:#f5f5f5" cellspacing=5
 
{| style="background-color:#f5f5f5" cellspacing=5
 
|+'''boolean types'''
 
|+'''boolean types'''
!Type !! Bytes !! Ord(True)  
+
!Type !! Octets !! Ord(True)  
 
|-
 
|-
 
|Boolean ||align="center"|1 ||1
 
|Boolean ||align="center"|1 ||1
 
|-
 
|-
|ByteBool ||align="center"|1 ||Any nonzero value
+
|ByteBool ||align="center"|1 ||Toute valeur non nulle
 
|-
 
|-
|WordBool ||align="center"|2 ||Any nonzero value
+
|WordBool ||align="center"|2 ||Toute valeur non nulle
 
|-
 
|-
|LongBool ||align="center"|4 ||Any nonzero value
+
|LongBool ||align="center"|4 ||Toute valeur non nulle
 
|}
 
|}
  

Revision as of 20:42, 18 March 2014

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

1D - Variables et types de donnée

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:

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 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:

  • Le type de donnée 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 codes 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.
  • 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.
  • 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 WideChar au lieu de Chars.
  • 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

integer types
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 does automatic type conversion in expressions where different kinds of integer types are used.

real types
Type Plage Significant digits 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


boolean types
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
précédent table des matières suivant