Types de valeurs Pascal. Résumé : Types de données en Pascal

Bases de la programmation
Chaque professionnel était autrefois une théière. Vous connaissez sûrement l’état où « vous ne savez pas par où commencer à réfléchir pour arriver à une telle chose ». Vous avez probablement rencontré une situation dans laquelle vous ne savez tout simplement pas par où commencer. Ce livre s'adresse précisément aux personnes qui aimeraient devenir programmeur, mais qui n'ont absolument aucune idée par où commencer dans cette voie.

...

Presque tous les types de données entiers sont . Ces types de données représentent des entiers dans une certaine plage. Les noms exacts des types entiers et des plages de valeurs dépendent du langage de programmation spécifique, du compilateur et du mode de compilation. Vous pouvez en savoir plus à ce sujet dans la documentation du compilateur. Par exemple, le type de données Entier Par exemple, le type de données en Delphi, sa plage est comprise entre -2147483648…2147483647, tandis qu'en Turbo Pascal, le type de données Par exemple, le type de données représente des nombres compris entre -35 768 et 32 ​​767. En Free Pascal, la plage de valeurs de type

déterminé par le mode sélectionné.

Puisque Lazarus utilise le compilateur Free Pascal, tout ce qui est dit sur les types de données en relation avec Free Pascal est également vrai pour Lazarus.

Ainsi, les types de données entiers de Free Pascal sont répertoriés dans le tableau 13.1.

Tableau 13.1. Types de données entiers Pascal gratuits (Lazarus). Taper Taille, octets
Plage de valeurs 1 0…255
Octet 1 -128…127
Raccourci 2 -35768…32767
Petitint 2 0…65535
Par exemple, le type de données Mot 2 ou 4
Dépend du mode de compilation 4 0…4294967295
Cardinal 4 -2147483648…2147483647
Entier long 4 0...4294967295
Mot long 8 -9223372036854775808...9223372036854775807
Int64 8 0...18446744073709551615

QMot
NOTE Mot long Types en Pascal Libre Int64 Et

ne le sont pas ! Cela signifie que vous ne pouvez pas les utiliser, par exemple, pour les variables d'index dans les boucles. Cependant, je les ai présentés ici afin de ne pas les décrire séparément à l'avenir et de rassembler tous les types entiers Free Pascal en un seul endroit. Si vous ne comprenez pas certains mots, ne vous inquiétez pas. En temps voulu, je vous raconterai tout plus en détail.

Et maintenant quelques explications sur le tableau. Dans la colonne TAPER

Et maintenant quelques explications sur le tableau. des identifiants de type de données sont donnés (des mots clés qui indiquent au compilateur à quel type appartient une donnée particulière). Vous apprendrez à utiliser ces identifiants dans les leçons suivantes. TAILLE Plage de valeurs, Petitint, Dépend du mode de compilation indique la taille qu'occupe le type de données dans la mémoire de l'ordinateur. Par exemple, un entier positif peut être représenté par différents types : Dépend du mode de compilation etc. Cependant, un nombre comme Plage de valeurs– seulement 1 octet. Par conséquent, si vous savez avec certitude que le nombre avec lequel vous travaillez ne prendra jamais une valeur supérieure à 255, alors il est préférable de le définir comme un type. Plage de valeurs, car cela permettra d'économiser de l'espace dans la mémoire de votre ordinateur. Bien que tout ne soit pas si simple ici (les nuances de la répartition de la mémoire et des autres ressources informatiques dépassent le cadre).

Et maintenant quelques explications sur le tableau. GAMME spécifie la plage de valeurs sur laquelle le type de données opère. Par exemple, un nombre comme Plage de valeurs peut prendre des valeurs de 0 à 255.

Maintenant, place à la pratique. Écrivons un programme qui affiche les plages de valeurs de tous les types de données entières. Le code source de ce programme est donné ci-dessous :

Inscription 13.1. Un programme pour afficher des plages d'entiers. programme td; ($mode objfpc)($H+) utilise ($IFDEF UNIX)($IFDEF UseCThreads) cthreads, ($ENDIF)($ENDIF) classes (vous pouvez ajouter des unités après cela) ; commencer Writeln("Octet : ", Low(Octet), "..", High(Octet));

Writeln("Abréviation : ", Faible(Abréviation), "..", Élevé(Abréviation)); Writeln("Smallint : ", Low(Smallint), "..", High(Smallint)); Writeln("Mot : ", Faible(Mot), "..", Élevé(Mot)); Writeln("Entier : ", Faible(Entier), "..", Élevé(Entier)); Writeln("Cardinal : ", Faible(Cardinal), "..", Haut(Cardinal)); Writeln("Entier Long : ", Faible(Entier Long), "..", Haut(Entier Long)); Types en Pascal Libre Writeln("Mot long : ", Faible(Mot long), "..", Haut(Mot long)); Writeln("Int64 : ", Faible(Int64), "..", Élevé(Int64));

Writeln("QWord : ", Faible(QWord), "..", Élevé(QWord));

10
178
35278

Lire ; fin.

Fonction standard

  1. Faible définit la valeur minimale du type de données. Funtskia
  2. Haut définit la valeur maximale. Avec fonctions
  3. ÉcrireLn LireLn
  4. vous vous connaissez déjà un peu. Nous parlerons plus en détail des sous-programmes (procédures et fonctions) dans la section correspondante. Enfin, je vais vous expliquer comment les données entières sont écrites dans le programme. Oui, comme partout ailleurs : écrivez simplement le numéro, sans guillemets ni symboles supplémentaires. Par exemple, comme ça

Certes, cela s'applique aux nombres dans le système numérique décimal. Vous savez sûrement déjà qu’il existe d’autres systèmes. Les systèmes numériques les plus utilisés sont le binaire, le décimal et l’hexadécimal.

Créez un programme qui affiche des plages de valeurs entières (liste 13.1). Compilez le programme et exécutez-le. Assurez-vous que ces valeurs correspondent à celles indiquées dans le tableau 13.1.

Dans le code source du programme, recherchez la ligne qui définit le mode de compilation :

($mode objfpc)($H+)

Dans cette ligne, au lieu du mot objfpcécrire le mot tp. Autrement dit, la dernière ligne devrait ressembler à ceci :

($mode tp)($H+)

Lancez le programme. Regardez la plage de valeurs de type Par exemple, le type de données. Tirez des conclusions.

Apprenez à penser comme un programmeur, c'est-à-dire logiquement. Personne ne mâchera tout à votre place jusqu’à la retraite, comme je le fais maintenant. Il faut s'habituer à penser par soi-même. Sinon, vous tomberez dans le « principe d’apprentissage du singe » et vos chances de devenir un grand programmeur seront alors proches de zéro. Pour vous aider à ne pas tomber dans le niveau « bachotage », je laisserai périodiquement des lacunes dans votre apprentissage afin que vous essayiez de comprendre certaines choses vous-même.

C'est bien mieux si tu le découvres toi-même mauvaise décision, vous trouverez l’erreur vous-même et la corrigerez vous-même, plutôt que de toujours utiliser les bonnes solutions des autres et de les copier bêtement.

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.

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.

Tableau 13.1. Types de données entiers Pascal gratuits (Lazarus). 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 et 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é).

Tableau 13.1. Types de données entiers Pascal gratuits (Lazarus). 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 Types en Pascal Libre 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

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, tel qu'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. Chaque valeur peut être associée à un certain nombre entier - son numéro ordinal.

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 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 acceptables 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 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. Tous définissent 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.
En tant que type d'élément de tableau, vous pouvez également spécifier un tableau, formant ainsi des structures multidimensionnelles. Par exemple, une description d'une structure bidimensionnelle (matrice) ressemblera à ceci :
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 :
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.

Les données sont un concept général pour tout ce avec quoi un ordinateur fonctionne. Tout type de données définit l'ensemble des valeurs que peut prendre une variable particulière et les opérations qui peuvent leur être appliquées. Chaque variable rencontrée dans un programme doit être associée à un et un seul type.

Il existe deux types de types simples en Pascal : les types ordinaux et les types réels. Un type ordinal est soit défini par le programmeur (type énumération ou type plage), soit désigné par le nom de l'un des trois types ordinaux prédéfinis : Boolean, Integer ou Char. Un type réel est désigné par le nom de type prescriptif Real.

Un type énuméré se caractérise par les nombreuses valeurs différentes qu'il contient, parmi lesquelles un ordre linéaire est défini. Les valeurs elles-mêmes sont désignées dans la définition de ce type par des noms.

Un type de plage (limité) est spécifié à l'aide de valeurs minimales et maximales liées à un type ordinal décrit précédemment. C'est ainsi qu'un nouveau type ordinal est généré.

Types de données ordinales

Un type de données ordinal décrit un ensemble fini et ordonné de valeurs. Ces valeurs sont mappées à la séquence de nombres ordinaux 0,1,2,... ; une exception est faite uniquement pour les entiers ordinaux, qui se mappent sur eux-mêmes. Chaque type ordinal a une valeur minimale et maximale. Pour toutes les valeurs sauf le minimum, il existe une valeur précédente, et pour toutes les valeurs sauf le maximum, il existe une valeur suivante.

Les fonctions prescrites succ, pred et ord acceptent des arguments de n'importe quel type ordinal :
succ(X) - donne la valeur ordinale suivante après X
pred(X) - donne la valeur ordinale précédant X
ord(X) - donne le numéro ordinal de X

Pour tous les types ordinaux, il existe des opérateurs relationnels = , = et > , en supposant que les deux opérandes sont du même type.

Type booléen

Une valeur booléenne est l'une des deux valeurs de vérité, désignées par les noms prédéfinis false et true .

Il existe les opérateurs logiques suivants qui produisent une valeur logique lorsqu'ils sont appliqués à des opérandes logiques :
et - ET logique
ou - OU logique
non - NON logique

De plus, n'importe laquelle des opérations relationnelles (= , = , > , in) produit un résultat logique.

De plus, le type booléen est défini de telle sorte que false

Il existe également des fonctions logiques prédéfinies (c'est-à-dire des fonctions qui donnent un résultat logique) :
impair(F) - vrai si l'entier est F-impair et le résultat est faux si F-pair
eoln(F) - vérification de fin de ligne
eof(F) - vérification de fin de fichier

Type entier

Le type entier comprend une variété d’entiers.

Lorsque vous travaillez avec des opérandes entiers, les opérations arithmétiques suivantes produisent des valeurs entières :
* - multiplication
div - partie entière de la division
mod - reste de la division
+ - ajout
- - soustraction

Pascal possède également une constante prédéfinie appelée MaxInt, qui contient la valeur maximale d'un entier et est égale à 32767.

L'ensemble du résultat est également obtenu par quatre fonctions prescrites importantes :
abs(I) - valeur absolue de la valeur entière I
sgr(I) - la valeur entière de I au carré étant donné que I trunc(R) - donne la partie entière du nombre réel R
round(R) - renvoie un entier arrondi. Dans ce cas : pour R>0 signifie trunc(R+0.5), et pour R

Si I est une valeur entière, alors :
succ(I) - donne la valeur entière suivante (I+1)
pred(I) - donne la valeur entière précédente (I-1)

Type de caractère (Caractère)

Les valeurs Char sont les éléments d'un ensemble de caractères fini et ordonné. Les valeurs de ce type sont représentées par un seul caractère entouré de guillemets simples (apostrophes). Si l'apostrophe elle-même est nécessaire, elle est écrite deux fois.
Exemples : "*" "G" "3" """" "X"

    Pour le type Char, les hypothèses minimales suivantes s'appliquent :
  1. Les chiffres décimaux de 0 à 9 sont classés selon leurs valeurs numériques et se suivent (par exemple, succ("5") = "6").
  2. Il peut y avoir des lettres majuscules de « A » à « Z » ; si c'est le cas, alors ils sont classés par ordre alphabétique, mais ne se suivent pas nécessairement (par exemple "A"
  3. Il peut y avoir des lettres minuscules de « a » à « z » ; si c'est le cas, alors ils sont classés par ordre alphabétique, mais ne se suivent pas nécessairement (par exemple "a"

Pour mapper un jeu de caractères donné aux numéros de série et inversement, il existe deux fonctions prédéfinies :
ord(C) - donne le numéro ordinal du caractère C dans l'ensemble ordonné de caractères mentionné
chr(I) - donne le caractère avec le numéro de séquence I

Pour les arguments de type Char, les fonctions prédéfinies pred et succ peuvent être définies comme suit :
pred(C) = chr(ord(C)-I)
succ(C) = chr(ord(C)+I)

Commentaire. Le symbole précédent ou suivant dépend de l'ensemble de symboles spécifié, ces deux relations ne sont donc valides que si le symbole précédent ou suivant existe.

Type réel

Les valeurs d'un type réel sont les éléments d'un sous-ensemble de nombres réels défini par l'implémentation.

Toutes les opérations sur des grandeurs réelles sont approximatives, leur précision est déterminée par la mise en œuvre (machine) avec laquelle vous avez affaire. Le vrai type est un type simple, ce n’est pas un type ordinal. Les valeurs réelles n'ont pas de numéro ordinal et il n'y a aucune valeur précédente ou suivante pour aucune d'entre elles.

Si au moins un des opérandes est un type réel (l'autre peut être un entier), les opérations suivantes donnent un résultat réel :
* - multiplication
/ - division (les deux opérandes peuvent être des entiers, mais le résultat est toujours réel)
+ - ajout
- - soustraction

Il existe des fonctions prescrites qui donnent un résultat réel étant donné un argument réel :
abs(R) - valeur absolue de R
sqr(R) - R au carré si le résultat est dans la plage des nombres réels

Et ces fonctions prescrites donnent un résultat réel avec un argument entier ou réel :
sin(X) - donne le sinus de X ; X est exprimé en radians
cos(X) - donne le cosinus de X ; X est exprimé en radians
arctan(X) - donne l'arctangente de X exprimée en radians
ln(X) - donne la valeur du logarithme népérien (base e) pour X, X>0
exp(X) - donne la valeur de la fonction exponentielle (c'est-à-dire à la puissance X)
sqrt(X) - donne la valeur de la racine carrée de X, X>=0

Avertissement. Les fonctions pred, succ ne peuvent pas être utilisées pour des arguments réels. Vous ne pouvez pas utiliser de valeurs de type réel lors de l'indexation de tableaux, pour le contrôle d'une boucle avec un paramètre, pour déterminer le type de base des ensembles, pour l'indexation dans un opérateur variante.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :