Qu'est-ce qu'un nom de type en Pascal. Types de variables en Pascal : description, propriétés, exemples

La notion de type est l'un des concepts fondamentaux de tout langage de programmation. Les objets (constantes, variables, fonctions, expressions) sur lesquels le programme opère appartiennent à un type spécifique.

Taper est un ensemble de valeurs que les objets programme peuvent prendre, et un ensemble d'opérations autorisées sur ces valeurs.

Par exemple, les valeurs 1 et 2 sont de type entier, elles peuvent être additionnées, multipliées et autres opérations arithmétiques. Les significations « moniteur » et « Pascal » sont de nature linguistique ; elles ont leur propre ensemble d'opérations valides. Dans les langages les plus couramment utilisés, seuls des types strictement définis et pré-connus peuvent être utilisés. Pascal, ainsi que les types standards trouvés dans d'autres langages de haut niveau, permet au programmeur de créer ses propres types.

Tous les types autorisés dans le langage Pascal sont divisés en deux grands groupes : simple et complexe (structuré).

Taper Gamme Mantisse, signes Mémoire requise (octets)
RÉEL 2,9*10E-39..1,7*10E38 11-12
CÉLIBATAIRE 1,5*10E-45..3,4*10E38 7-8
DOUBLE 5,0*10E-324..1,7*10E308 15-16
ÉTENDU 1.9*10E-4951..1.1*10E4932 19-20
COMP -2E+63+1..2E+63-1 10-20

L'utilisation efficace des types SINGLE, DOUBLE, EXTEND, COMP n'est possible que lorsque la directive ($N+) est activée. Par défaut, il est désactivé. Pour résoudre des problèmes d'ingénierie et économiques, des valeurs de type RÉEL suffisent.

Exemple

Var Res, Summa, Itog : réels ;

Booléen le type de données est décrit par l'identifiant BOOLEAN. Les variables et constantes de ce type ne peuvent prendre qu'une des deux valeurs suivantes : TRUE (vrai) ou FALSE (faux).

Exemple

Var Sel1, Sel2 : booléen ;

A,B,C,D : booléen ;

Les expressions booléennes occupent 1 octet de mémoire et sont utilisées dans les expressions logiques et relationnelles et pour contrôler l'ordre dans lequel les instructions du programme sont exécutées.

Littéral (caractère) le type est décrit par l'identifiant CHAR standard. Les constantes et variables de ce type peuvent prendre l'une des valeurs de la table de codes ASCII. La signification d’une constante ou d’une variable de ce type est entourée d’apostrophes.

Par exemple, Var Bukva, Znak, Symbole : char ;

Boukva : = 'A'; Znak :=’+’; Symbole :=’!’

Les variables de type caractère occupent 1 octet en mémoire. L'utilisation de données char dans des expressions arithmétiques est interdite. Les opérations de comparaison peuvent être appliquées à des valeurs littérales, le résultat dépendant du numéro de la variable littérale ou de la constante dans la table de codes.

En plus des types de données standard, Pascal prend en charge les types scalaires, défini par l'utilisateur. Ceux-ci incluent dénombrable Et intervalle genres. Ces types de données occupent 1 octet en mémoire, donc tout type personnalisé ne peut pas contenir plus de 255 éléments. Leur utilisation améliore considérablement la visibilité du programme, facilite la recherche d'erreurs et économise de la mémoire.

Type d'énumération est spécifié directement en listant toutes les valeurs que peut prendre une variable d'un type donné. Les valeurs individuelles sont séparées par des virgules et la liste entière est placée entre parenthèses.

Format

Taper<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Exemple

Type Saison = (Printemps, Été, Automne, Hiver);

Var S1, S2 : Saison ;

Automne : (septembre, octobre, novembre) ;

Cet exemple montre un type de données utilisateur Season explicitement défini. Leurs significations sont déterminées - les désignations des saisons. Les variables S1 et S2 ne peuvent prendre qu'une seule des valeurs répertoriées. Toute tentative de leur attribuer une autre valeur provoquera une interruption logicielle. Le troisième type d'énumération est anonyme (n'a pas de nom) et est spécifié en énumérant les valeurs dans la section Var. L'automne est une variable de ce type et peut prendre les valeurs septembre, octobre, novembre. Ainsi, n’importe quel type peut être spécifié, mais cela n’est pas toujours acceptable. La première méthode est certainement plus compréhensible et plus conforme à la nature du langage Pascal.

Type d'intervalle vous permet de spécifier deux constantes qui définissent les limites de la plage de valeurs pour une variable donnée. Pour chaque opération sur une variable d'intervalle, le compilateur génère des routines de contrôle pour déterminer si la valeur de la variable reste dans sa plage spécifiée. Les deux constantes doivent appartenir à l’un des types standards autres que réel. La valeur de la première constante doit nécessairement être inférieure à la valeur de la seconde.

Format

Taper<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Exemple

Tapez Jours = 1.. 31 ;

Var Work_d, Free_d : jours ;

Dans cet exemple, les variables Travail_d, Libre_d avoir du type Jours et peut prendre n'importe quelle valeur dans la plage 1. . 31.

La sortie de la plage provoque une interruption logicielle.

Vous pouvez définir un type d'intervalle en définissant les limites de plage non pas par les valeurs des constantes, mais par leurs noms :

Const Min = 1 ; Maximum = 31 ;

Tapez Jours = Min .. Max ;

Var Work_d, Free_d : jours ;

Types structurés les types de données sont basés sur des types scalaires et peuvent en contenir diverses combinaisons. Ils définissent une collection ordonnée d'éléments scalaires et sont caractérisés par le type de leurs composants. Le langage Pascal fournit les types de données structurées suivantes :

doubler - une séquence de caractères entourée d'apostrophes ;

tableau - un type de données structuré composé d'un nombre fixe d'éléments du même type, accessible par index ;

beaucoup - un ensemble d'objets sélectionnés en fonction d'une caractéristique ou d'un groupe de caractéristiques qui peuvent être considérés dans leur ensemble ;

enregistrer - un ensemble d'un nombre fixe de composants de différents types ;

déposer- une séquence de composants de même type et de même longueur.

Deux types plus structurés (procédural et objet) sont difficiles à mapper aux données dans une représentation conventionnelle.

Figure 1- Un ensemble de types de base du langage Pascal

Tout programme écrit dans n'importe quel langage de programmation est essentiellement conçu pour traiter des données. Les données peuvent être des nombres, des textes, des graphiques, du son, etc. Certaines données sont des données sources, d'autres sont le résultat obtenu en traitant les données sources par le programme.

Les données sont stockées dans la mémoire de l'ordinateur. Le programme y accède en utilisant des noms de variables associés aux emplacements mémoire où les données sont stockées.

Les variables sont décrites avant le code du programme principal. Les noms des variables et le type de données qui y sont stockées sont indiqués ici.

Il existe de nombreux types de données dans le langage de programmation Pascal. De plus, l'utilisateur peut définir lui-même ses propres types.

Le type d'une variable détermine quelles données peuvent être stockées dans l'emplacement mémoire qui lui est associé.

Tapez les variables entier ne peut être associé qu'à des valeurs entières généralement comprises entre -32768 et 32767. Pascal a d'autres types entiers (octet, entier long).

Tapez les variables réel stocker des nombres réels (fractionnaires).

Variable Booléen Le type (booléen) (booléen) ne peut prendre que deux valeurs - vrai(1, vrai) ou FAUX(0, faux).

Type de caractère (caractère) peut prendre des valeurs à partir d’une séquence ordonnée spécifique de caractères.

Type d'intervalle défini par l'utilisateur et formé uniquement à partir de types ordinaux. Représente un sous-ensemble de valeurs dans une plage spécifique.

Vous pouvez créer votre propre type de données en répertoriant simplement les valeurs que peut prendre une variable de ce type. C'est ce qu'on appelle type de données énuméré.

Tous les éléments ci-dessus sont des types de données simples. Mais il en existe aussi des complexes, structurés, qui reposent sur des types simples.

Tableau est une structure qui occupe une seule zone en mémoire et constituée d'un nombre fixe de composants du même type.

Cordes est une séquence de caractères. De plus, le nombre de ces caractères ne peut être supérieur à 255 inclus. Cette limitation est une caractéristique de Pascal.

Enregistrer est une structure composée d'un nombre fixe de composants appelés champs. Les données des différents champs d'un enregistrement peuvent être de différents types.

Ensembles représentent une collection d’un nombre quelconque d’éléments, mais du même type énuméré.

Fichiers pour Pascal, ce sont des séquences du même type de données qui sont stockées sur des dispositifs de mémoire externes (par exemple un disque dur).

Le concept d'un type de données tel que aiguille associé au stockage dynamique des données dans la mémoire de l'ordinateur. Souvent, l’utilisation de types de données dynamiques est plus efficace en programmation que l’utilisation de types de données statiques.

Un type de données définit un ensemble de valeurs valides et un ensemble d'opérations valides.

Types simples.

Les types simples sont divisés en ORDINAL et REAL.

1. TYPES DE COMMANDES , à leur tour, il y a :

a) entier

Pascal définit 5 types entiers, qui sont déterminés en fonction du signe et de la valeur que prendra la variable.

Tapez le nom

Longueur (en octets)

Plage de valeurs

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logique

Le nom de ce type est BOOLEAN. Les valeurs booléennes peuvent être l'une des constantes logiques : VRAI (vrai) ou FAUX (faux).

c) symbolique

Le nom de ce type est CHAR - occupe 1 octet. La valeur d'un type de caractère est l'ensemble de tous les caractères PC. Chaque caractère se voit attribuer un entier compris entre 0 et 255. Ce numéro sert de code pour la représentation interne du symbole.

2. TYPES RÉELS .

Contrairement aux types ordinaux, dont les valeurs sont toujours mappées sur une série d'entiers et sont donc représentées de manière absolument précise dans PC, les valeurs des types réels définissent un nombre arbitraire uniquement avec une certaine précision finie en fonction du format interne du nombre réel. .

Longueur du type de données numérique, octets

Nom du type de données numérique

Nombre de chiffres significatifs d'un type de données numérique

Plage d'ordre décimal d'un type de données numérique

2*1063 +1..+2*1063 -1

TYPES STRUCTURÉS

Les types de données structurées définissent une collection ordonnée de variables scalaires et sont caractérisées par le type de leurs composants.

Les types de données structurés, contrairement aux types simples, définissent de nombreuses valeurs complexes avec un nom commun. On peut dire que les types structurels déterminent une certaine manière de former de nouveaux types à partir de types existants.

Il existe plusieurs méthodes de structuration. Selon la méthode d'organisation et le type de composants dans les types de données complexes, on distingue les variétés suivantes : type régulier (tableaux) ; type combiné (enregistrements); type de fichier(fichiers); plusieurs types ; type de chaîne (chaînes); dans la version 6.0 et antérieure du langage Turbo Pascal, un type d'objet (objets) a été introduit.

Contrairement aux types de données simples, les données de type structuré se caractérisent par la multiplicité des éléments qui forment ce type, c'est-à-dire une variable ou une constante d'un type structuré a toujours plusieurs composants. Chaque composant, à son tour, peut appartenir à un type structuré, c'est-à-dire l'imbrication des types est possible.

1. Tableaux

Les tableaux dans Turbo Pascal sont similaires à bien des égards aux types de données similaires dans d'autres langages de programmation. Une particularité des tableaux est que tous leurs composants sont des données du même type (éventuellement structurées). Ces composants peuvent être facilement organisés et chacun d’entre eux est accessible simplement en spécifiant un numéro de série.

La description du tableau est spécifiée comme suit :

<имя типа>= tableau[<сп.инд.типов>] de<тип>

Ici<имя типа>- identifiant correct ;

Tableau, de – mots réservés (tableau, de) ;

<сп.инд.типов>- une liste d'un ou plusieurs types d'index, séparés par des virgules ; les crochets encadrant la liste sont une exigence de syntaxe ;

<тип>- tout type de Turbo Pascal.

Tous les types ordinaux peuvent être utilisés comme types d'index dans Turbo Pascal, à l'exception des types LongInt et range avec le type de base LongInt.

La profondeur d'imbrication des types structurés en général, et donc des tableaux, est arbitraire, donc le nombre d'éléments dans la liste des index de type (taille du tableau) n'est pas limité, cependant, la longueur totale de la représentation interne d'un tableau ne peut pas être supérieur à 65 520 octets.

2. Dossiers

Un enregistrement est une structure de données composée d'un nombre fixe de composants appelés champs d'enregistrement. Contrairement à un tableau, les composants (champs) d’un enregistrement peuvent être de différents types. Pour permettre de faire référence à l'un ou l'autre composant d'un enregistrement, les champs sont nommés.

La structure d'une déclaration de type de publication est :

< Nomtaper>=ENREGISTRER< coentreprise. champs>FIN

Ici<имя типа>- identifiant correct ;

RECORD, END – mots réservés (enregistrement, fin) ;

<сп.полей>- liste des champs ; est une séquence de sections d'un enregistrement séparées par un point-virgule.

3. Ensembles

Les ensembles sont un ensemble d'objets du même type qui sont logiquement connectés les uns aux autres. La nature des connexions entre objets est uniquement implicite par le programmeur et n'est en aucun cas contrôlée par Turbo Pascal. le nombre d'éléments inclus dans un ensemble peut varier de 0 à 256 (un ensemble qui ne contient pas d'éléments est dit vide). C'est l'inconstance du nombre de ses éléments qui différencie les ensembles des tableaux et des enregistrements.

Deux ensembles sont considérés comme équivalents si et seulement si tous leurs éléments sont identiques et que l'ordre des éléments de l'ensemble est indifférent. Si tous les éléments d’un ensemble sont également inclus dans un autre, on dit que le premier ensemble est inclus dans le second.

La description du type d'ensemble est :

< Nomtaper>=ENSEMBLE DE< socles. taper>

Ici<имя типа>- identifiant correct ;

SET, OF – mots réservés (set, from) ;

<баз.тип>- le type de base des éléments de l'ensemble, qui peut être n'importe quel type ordinal sauf WORD, INTEGER et LONGINT.

Pour définir un ensemble, on utilise ce qu'on appelle le constructeur d'ensemble : une liste de spécifications des éléments de l'ensemble, séparées par des virgules ; la liste est entourée de crochets. Les spécifications d’éléments peuvent être des constantes ou des expressions d’un type de base, ainsi qu’un type de plage du même type de base.

4. Fichiers

Un fichier est compris soit comme une zone nommée de la mémoire externe d'un PC, soit comme un périphérique logique - une source ou un récepteur potentiel d'informations.

Tout fichier a trois caractéristiques

    il a un nom qui permet au programme de travailler avec plusieurs fichiers simultanément.

    il contient des composants du même type. Le type de composant peut être n'importe quel type Turbo Pascal, à l'exception des fichiers. En d’autres termes, vous ne pouvez pas créer un « fichier de fichiers ».

    la longueur du fichier nouvellement créé n'est en aucun cas spécifiée lors de sa déclaration et n'est limitée que par la capacité des périphériques de mémoire externes.

Un type de fichier ou une variable de type de fichier peut être spécifié de trois manières :

< Nom>= FICHIER DE< taper>;

< Nom>=TEXTE;

<имя>= FICHIER ;

Ici<имя>- nom du type de fichier (identifiant correct) ;

FILE, OF – mots réservés (fichier, from) ;

TEXTE – nom du type de fichier texte standard ;

<тип>- tout type de Turbo Pascal, sauf les fichiers.

Selon le mode de déclaration, trois types de dossiers peuvent être distingués :

· fichiers typés (définis par la clause FILE OF...) ;

· fichiers texte (définis comme type TEXTE) ;

· fichiers non typés (définis par le type FILE).

À propos de la conversion des types de données numériques de Pascal

Les conversions implicites (automatiques) de types de données numériques sont presque impossibles en Pascal. Une exception est faite uniquement pour le type entier, dont l'utilisation est autorisée dans les expressions de type réel. Par exemple, si les variables sont déclarées comme ceci :

Var X : entier ; Y : réel ;

puis l'opérateur

sera syntaxiquement correct, bien qu'il y ait une expression entière à droite du signe d'affectation et une variable réelle à gauche, le compilateur convertira automatiquement les types de données numériques. La conversion inverse automatiquement du type réel vers le type entier est impossible en Pascal. Rappelons combien d'octets sont alloués pour les variables de type entier et réel : 2 octets de mémoire sont alloués pour le type de données entier entier, et 6 octets pour le type réel. Il existe deux fonctions intégrées pour convertir un réel en entier : round(x) arrondit un réel x à l'entier le plus proche, trunc(x) tronque un réel en supprimant la partie fractionnaire.

En langage Pascal les variables sont caractérisées par leur taper. Un type est une propriété d'une variable par laquelle une variable peut prendre de nombreuses valeurs autorisées par ce type et participer à de nombreuses opérations autorisées sur ce type.

Un type définit l'ensemble de valeurs valides qu'une variable d'un type donné peut accepter. Il définit également l’ensemble des opérations autorisées sur une variable d’un type donné et détermine la représentation des données dans la RAM de l’ordinateur.

Par exemple:

n : entier ;

Pascal est un langage statique, ce qui signifie que le type d'une variable est déterminé lors de sa déclaration et ne peut être modifié. Le langage Pascal dispose d'un système de types développé - toutes les données doivent appartenir à un type de données préalablement connu (soit un type standard créé lors du développement du langage, soit un type personnalisé défini par le programmeur). Le programmeur peut créer ses propres types avec une structure de complexité arbitraire basée sur des types standards ou déjà définis par l'utilisateur. Le nombre de types créés est illimité. Les types personnalisés dans un programme sont déclarés dans la section TYPE en utilisant le format :

[nom] = [type]

Le système de types standards a une structure hiérarchique ramifiée.

Les principaux dans la hiérarchie sont types simples. De tels types sont présents dans la plupart des langages de programmation et sont appelés simples, mais en Pascal, ils ont une structure plus complexe.

Types structurés sont construits selon certaines règles à partir de types simples.

Panneaux indicateurs sont formés de types simples et sont utilisés dans les programmes pour spécifier des adresses.

Types procéduraux sont une innovation dans le langage Turbo Pascal et permettent d'accéder aux sous-programmes comme s'il s'agissait de variables.

Objets sont également une innovation et visent à utiliser le langage comme un langage orienté objet.

En langage Pascal, il existe 5 types de types entiers. Chacun d'eux caractérise l'éventail des valeurs acceptées et l'espace qu'elles occupent en mémoire.

Lorsque vous utilisez des nombres entiers, vous devez être guidé par l'imbrication des types, c'est-à-dire les types avec une plage plus petite peuvent être imbriqués dans des types avec une plage plus grande. Le type Byte peut être imbriqué dans tous les types occupant 2 et 4 octets. Dans le même temps, le type Short Int, qui occupe 1 octet, ne peut pas être imbriqué dans le type Word, car il n'a pas de valeurs négatives.

Il existe 5 types réels :

Les types entiers sont représentés de manière absolument précise dans un ordinateur. Contrairement aux types entiers, la valeur des types réels définit un nombre arbitraire uniquement avec une précision finie, en fonction du format du nombre. Les nombres réels sont représentés dans un ordinateur sous forme de virgule fixe ou flottante.

2358.8395

0.23588395*10 4

0,23588395*E4

Le type Comp occupe une position particulière en Pascal ; en fait, c'est un grand entier signé. Ce type est compatible avec tous les types réels et peut être utilisé pour un grand entier. Lors de la représentation de nombres réels avec une virgule flottante, le point décimal est toujours implicite avant la mantisse gauche ou principale, mais lorsqu'on opère sur un nombre, il est décalé vers la gauche ou la droite.

Types ordinaux

Les types ordinaux combinent plusieurs types simples. Ceux-ci incluent :

  • tous les types entiers ;
  • type de caractère ;
  • type booléen ;
  • plage de types ;
  • type énuméré.

Les caractéristiques communes aux types ordinaux sont les suivantes : chaque type a un nombre fini de valeurs possibles ; la valeur de ces types peut être ordonnée d'une certaine manière et un certain numéro, qui est un numéro de série, peut être associé à chaque numéro ; les valeurs adjacentes des types ordinaux diffèrent de un.

Pour les valeurs de type ordinal, la fonction ODD(x) peut être appliquée, qui renvoie le numéro ordinal de l'argument x.

Fonction PRED(x) - renvoie la valeur précédente d'un type ordinal. PRÉD(A) = 5.

Fonction SUCC(x) - renvoie la valeur ordinale suivante. SUCC(A) = 5.

Type de caractère

Les valeurs du type de caractère représentent 256 caractères de l'ensemble autorisé par la table de codes de l'ordinateur utilisé. La zone initiale de cet ensemble, c'est-à-dire la plage de 0 à 127, correspond à l'ensemble des codes ASCII, où sont chargés les caractères alphabétiques, les chiffres arabes et les caractères spéciaux. Les caractères de la zone de démarrage sont toujours présents sur le clavier du PC. La région haute est appelée région alternative, elle contient des caractères issus des alphabets nationaux et divers caractères spéciaux et caractères pseudographiques qui ne correspondent pas au code ASCII.

Une valeur de type caractère occupe un octet dans la RAM. Dans le programme, les significations sont entourées d'apostrophes. Les valeurs peuvent également être précisées sous la forme de leur code ASCII. Dans ce cas, vous devez mettre un signe # devant le numéro avec le code du symbole.

C:= 'A'

Type logique (booléen)

Il existe deux valeurs booléennes : True et False. Les variables de ce type sont spécifiées à l'aide du mot de fonction BOOLEAN. Les valeurs booléennes occupent un octet dans la RAM. Les valeurs Vrai et Faux correspondent aux valeurs numériques 1 et 0.

Gamme de types

Il existe un sous-ensemble de son type de base, qui peut être n'importe quel type ordinal. Un type de plage est défini par les limites du type de base.

[valeur minimale]…[valeur maximale]

Le type de plage peut être spécifié dans la section Type, en tant que type spécifique, ou directement dans la section Var.

Lors de la détermination de la plage de types, vous devez être guidé par :

  • la bordure gauche ne doit pas dépasser la bordure droite ;
  • un type plage hérite de toutes les propriétés du type de base, mais avec des limitations associées à sa puissance inférieure.

Type d'énumération

Ce type appartient aux types ordinaux et est spécifié en énumérant les valeurs qu'il peut énumérer. Chaque valeur est appelée un certain identifiant et se trouve dans la liste, encadrée entre parenthèses. Le type énuméré est spécifié dans Type :

Peuples = (hommes, femmes) ;

La première valeur est 0, la deuxième valeur est 1, etc.

Puissance maximale 65535 valeurs.

Type de chaîne

Le type chaîne appartient au groupe des types structurés et se compose du type de base Char. Le type chaîne n’est pas un type ordinal. Il définit de nombreuses chaînes de caractères de longueur arbitraire allant jusqu'à 255 caractères.

Dans un programme, un type chaîne est déclaré avec le mot String. Puisque String est un type de base, il est défini dans le langage et la déclaration d'une variable de type String se fait en Var. Lors de la déclaration d'une variable de type chaîne comme String, il est conseillé d'indiquer la longueur de la chaîne entre crochets. Un nombre entier de 0 à 255 est utilisé pour indiquer.

Famille : chaîne ;

La spécification de la longueur de la chaîne permet au compilateur d'allouer le nombre spécifié d'octets en RAM pour cette variable. Si la longueur de la chaîne n'est pas spécifiée, alors dans ce cas, le compilateur allouera le nombre maximum d'octets possible (255) pour la valeur de cette variable.

Connaître et comprendre les types de données fait partie intégrante de la programmation.

Dans cette leçon, nous découvrirons les types de données dans le langage de programmation Turbo Pascal.

En langage Pascal, tous les objets, c'est-à-dire les constantes, variables, valeurs de fonction ou expressions sont caractérisées par leurs types. Un type définit l'ensemble des valeurs valides pour un objet, ainsi que l'ensemble des opérations qui lui sont applicables. De plus, le type détermine le format de la représentation interne des données dans la mémoire de l'ordinateur. En termes de types d'objets, Pascal est un langage statique. Cela signifie que le type d'un objet, par exemple une variable, est déterminé lors de sa déclaration et ne peut pas être modifié ultérieurement.

Structure des types de données en Pascal :

Types de langage simples
Les types simples incluent les types ordinal, réel, chaîne et adresse (pointeur). Ils définissent tous le type d’une seule valeur.

Types ordinaux caractérisé par le fait que chacun d'eux a un nombre fini de valeurs possibles, parmi lesquelles un ordre linéaire est établi. Chacune des valeurs peut être associée à un entier - son numéro de série.

Types entiers- désignent des ensembles d'entiers dans différentes plages. Il existe cinq types d'entiers, différant par la plage de valeurs valides et la taille de la RAM qu'elles occupent. Les types entiers sont désignés par des identifiants : Byte, ShortInt, Word, Integer, LongInt ; leurs caractéristiques sont indiquées dans le tableau suivant.

Les valeurs de types entiers sont écrites dans le programme de la manière habituelle :
123 4 -3 +345 -699
La présence d'un point décimal dans la notation d'un nombre entier est inacceptable. Ce serait une erreur d'écrire un entier comme celui-ci :
123.0
En plus de la forme de notation décimale habituelle, il est possible d'écrire des entiers au format hexadécimal en utilisant le préfixe $, par exemple :
$01AF $FF $1A $F0A1B
La casse des lettres A, B, ..., F n'a pas d'importance.

Opérations valides :

  • - affectation;
  • - toute l'arithmétique : +, - ,*, /, div, mod (avec une division ordinaire [/] le résultat est réel !) ;
  • - comparaison<, >, >=, <=, <>, =.
Type booléen- se compose de seulement deux valeurs : False (faux) et True (vrai). Les mots Faux et Vrai sont définis dans le langage et sont en fait des constantes logiques. La casse des lettres dans leur écriture n'a pas d'importance : FAUX = faux. Les valeurs de ce type sont le résultat de l'évaluation d'expressions conditionnelles et logiques et participent à toutes sortes d'opérateurs conditionnels du langage.
Opérations valides :
  • - affectation;
  • - comparaison:<, >, >=, <=, <>, =;
  • - opérations logiques : NON, OU, ET, XOR
Type de caractère (Caractère)- il s'agit d'un type de données composé d'un seul caractère (signe, lettre, code). Une valeur Char peut être n’importe quel caractère du jeu de caractères ASCII. Si un symbole a une représentation graphique, alors dans le programme, il est écrit entre guillemets simples (apostrophes), par exemple :
"w" "s" "." "*" " "-(espace)
Pour représenter l'apostrophe elle-même, son image est doublée : """".
Si le caractère n'a pas de représentation graphique, par exemple un caractère de tabulation ou un caractère de retour chariot, vous pouvez alors utiliser une forme équivalente d'écriture de la valeur du caractère, composée du préfixe # et du code ASCII du caractère :
#9 #32 #13
Opérations valides :
  • - affectation;
  • - comparaison:<, >, >=, <=, <>, =. Le caractère le plus grand est celui qui possède un numéro ASCII plus élevé.
Type de chaîne (Chaîne, Chaîne[n])- Ce type de données définit des séquences de caractères - chaînes. Le paramètre n spécifie le nombre maximum de caractères par ligne. S’il n’est pas spécifié, n=255 est supposé. Une valeur de type « chaîne » dans un programme est écrite sous la forme d'une séquence de caractères entourée de guillemets simples (apostrophes), par exemple
"C'est une chaîne"
"1234" est aussi une chaîne, pas un nombre
"" - chaîne vide

Opérations valides :
  • - affectation;
  • - ajout (concaténation, fusion) ; par exemple, S:= "L'hiver"+" "+"est arrivé !";
  • - comparaison:<, >, >=, <=, <>, =. Les chaînes sont considérées comme égales si elles ont la même longueur et sont équivalentes caractère par caractère.
Types réels- désignent des ensembles de nombres réels dans différentes plages. Il existe cinq types réels, différant par la plage de valeurs autorisées et la taille de la RAM occupée. Les types réels sont désignés par des identifiants : Real, Single, Double, Extended, Comp ; leurs caractéristiques sont indiquées dans le tableau suivant.

Type de composition bien que classé comme type réel, il s’agit en réalité d’un entier avec une très large plage de valeurs.
Les valeurs de types réels peuvent être écrites dans un programme de plusieurs manières :
1.456 0.000134 -120.0 65432
+345 0-45 127E+12
-1,5E-5 -1,6E+12 5E4 0,002E-6

Ce serait une erreur d’écrire un nombre réel comme celui-ci :
0,5 (correct 0,5)
12. (correctement 12,0 ou 12)

Un nombre réel sous forme à virgule flottante (forme scientifique) s'écrit sous forme de paire
<мантисса>E<порядок>
Cette désignation s'entend comme « la mantisse multipliée par dix à une puissance égale à l'ordre ». Par exemple,
-1,6E+12 correspond à -1,6 1012

Opérations valides :
- affectation;
- tout arithmétique : +, - ,*, / ;
- comparaison:<, >, >=, <=, <>, =.

Lorsque vous comparez des nombres réels, n'oubliez pas qu'en raison de l'imprécision de leur représentation dans la mémoire de l'ordinateur (en raison de l'inévitabilité des arrondis), vous devez éviter d'essayer de déterminer l'égalité stricte de deux valeurs réelles. Il est possible que l’égalité soit fausse, même si ce n’est pas le cas.

Une plage ou (type restreint) n'est pas un type de langage prédéfini (tel que Integer ou Char) et n'est donc associée à aucun identifiant. Ce type est une entrée utilisateur. En l'utilisant, nous pouvons définir un nouveau type qui contiendra des valeurs uniquement provenant d'une sous-plage limitée d'un certain type de base. Le type de base ne peut être qu'un type entier, un type Char (caractère) et l'un des types d'énumération introduits par le programmeur.

Pour introduire un nouveau type - une plage - vous devez indiquer dans le bloc de description du type TYPE le nom du type saisi et les limites de la plage via le symbole de plage spécial ".." (deux points d'affilée) :
TAPER
Siècle = 1..21 ; (sous-plage de type entier)
Lettres majuscules = "A". "Z"; (sous-plage de type Char)

Types de langage structuré

Les types structurés incluent : un tableau, un enregistrement, un ensemble, un fichier, etc. Ils définissent tous le ou les types d'une structure de données.

Tableau- une structure ordonnée de données du même type qui les stocke séquentiellement. Le tableau doit avoir des dimensions qui déterminent le nombre d'éléments stockés dans la structure. Tout élément d'un tableau peut être atteint par son index.

Le type de tableau est déterminé par la construction :
Tableau [plage] de ElementType ;

La plage entre crochets indique les valeurs d'index du premier et du dernier élément de la structure. Exemples de déclarations de types et de variables :

TYPE Vecteur = tableau de Réel ; VAR V1 : Vecteur ;
V2 : tableau d’octets ;

Ici, la variable V1 est définie en utilisant le type Vector décrit ci-dessus ; le type de variable V2 est construit directement au stade de sa description.
VAR M1 : tableau de tableau d'octets ; La même chose peut être écrite de manière beaucoup plus compacte : VAR M2 : tableau d'octets ;
Ici, les tableaux M1 et M2 ont exactement la même structure : une matrice carrée de taille 3x3.

On accède à un élément de tableau en spécifiant son index, par exemple :

Writeln(V1); (affichage du premier élément du tableau V1) readln(M2); (saisie du troisième élément de la deuxième ligne de la matrice M2)
Ceci conclut la leçon sur les types de données, le texte a été presque entièrement copié et collé (le lien sera ci-dessous), car Je ne vois pas l’intérêt de raconter ce matériel avec mes propres mots. Si la différence entre les types de données est au moins un peu claire, alors c'est déjà bien.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :