Type de données entier Pascal. Entiers en Pascal. Constantes en Pascal

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 :

un ensemble

Pascal définit 5 types entiers, qui sont définis 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 booléennes : 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. des 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 fait que les ensembles diffèrent 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, le premier ensemble est dit 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

En Pascal, les conversions implicites (automatiques) de types de données numériques sont presque impossibles. 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.

Vous êtes dans la section Matériel de programmation Pascal. Avant de commencer la programmation, nous devons clarifier certains concepts dont nous aurons besoin au début. Après tout, on ne peut pas programmer comme ça. Nous ne pouvons pas écrire le programme avec des mots - l'ordinateur ne comprend rien d'autre que les zéros et les uns. À cette fin, un symbolisme spécial a été créé en Pascal - le langage Pascal, un ensemble de mots réservés qui ne peuvent être utilisés nulle part ailleurs dans vos programmes, sauf pour l'usage auquel ils sont destinés. Listons les concepts de base dont nous aurons besoin au début :

✎ 1) programme – en anglais « program », écrit au tout début du code, suivi du nom du programme en latin et d'un point-virgule. Par exemple: programme Somme; − un programme appelé Summa. Mais cette partie du code, appelée en-tête du programme, n'a pas besoin d'être écrite - elle n'est présente que pour plus de clarté et montre quel problème ce programme résout. Ici, nous avons utilisé le mot « code » - c'est le nom de la saisie de texte du programme.

✎ 2) entier – en anglais signifie « entier » (ou simplement « entier ») et en Pascal est utilisé pour désigner les entiers signés de 32 bits (8 octets) de la plage [-2147483648, 2147483647] . Nous verrons plus tard ce que signifient ces grands chiffres.

✎ 3) real – de l'anglais « real », « real », « real », « real ». En langage Pascal, ce terme désigne des nombres réels compris dans la plage [-1,8∙10 308, 1,8∙10 308]. Ce sont de très grands nombres, mais 15 à 16 chiffres significatifs sont affichés. À propos, les types de données entiers et réels dans l'environnement de programmation PascalABC.Net sont toujours automatiquement surlignés en bleu.

✎ 4) const – analogue de l'anglais. "constant", signifiant "constant", "constant". En Pascal, c'est une quantité qui ne peut pas changer. C'est écrit ainsi :


Cette entrée doit être prise telle qu'elle est écrite : le nombre N est 12, S est 5, « pi » est 3,14 (comme en mathématiques, seul un point est utilisé à la place d'une virgule en Pascal). Dans la dernière ligne, nous avons utilisé une double barre oblique (deux barres obliques), suivie du texte - c'est ainsi que les commentaires sont écrits en Pascal, et le programme ne les perçoit pas. Tout ce qui commence par une double barre oblique et jusqu'à la fin de la ligne est un commentaire, qui est écrit pour expliquer le programme et est toujours surligné dans une couleur différente (dans PascalABC.Net, il est vert ; Turbo Pascal n'utilise pas ce type de commentaire). Il existe un autre type de commentaire - celui-ci (texte placé entre accolades, tout comme ici, également surligné en vert). Ce type de commentaire peut être valable pour plusieurs lignes d'affilée - du début de la parenthèse à sa fermeture, et le compilateur ne perçoit pas tout ce qui se trouve au milieu d'une telle construction comme du code et l'ignore simplement.

En réalité le format d'enregistrement const un peu plus compliqué. Selon les règles, nous devions écrire :

1 2 3 4 const N : tapez un nombre entier ;

Description:

")" onmouseout="toolTip()">entier
= 12 ; //numéro N – type entier S : tapez un nombre entier ;

Description:
Représente un entier signé de 32 bits.

Plage de valeurs : -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">entier
= 5 ; //numéro S – type entier pi: tapez réel ;

Description:
Représente un nombre à virgule flottante double précision.

Taille : 8 octets
Nombre de chiffres significatifs : 15 - 16
Plage de valeurs : -1,8∙10 308 .. 1,8∙10 308
")" onmouseout="toolTip()">réel
= 3.14 ; // nombre "pi" - réel

Après avoir déclaré chaque valeur, son type est indiqué, puis une valeur est attribuée. Mais l'entrée précédente est également correcte, puisque le compilateur Pascal est configuré pour déterminer automatiquement le type d'une constante. Mais on ne peut pas en dire autant du prochain type de nombres : les variables.

✎ 5) var – vient de l'anglais. « variable » (« variable » ou « modifiable »), qui en Pascal désigne une valeur qui peut changer de valeur au cours du programme. C'est écrit ainsi :


Comme le montre l'entrée, il n'y a pas de signe « = » ici - les variables du même type sont recalculées (séparées par des virgules) et seul le type est indiqué après les deux points. Les variables N, m (entier) et Q, r, t (réel) dans le programme peuvent changer de valeurs dans les limites de l'entier et du réel, respectivement. Encore une remarque : la description des variables vient toujours après la description des constantes (constantes) - la construction const vient en premier, puis var.

✎ 6) commencer – traduit de l'anglais signifie « commencer » et Pascal signifie le début du programme principal dans lequel les commandes (opérateurs) sont écrites. Après le mot commencer Il n'y a pas de point-virgule.

✎ 7) fin – en anglais. « fin », et en Pascal cela veut dire la même chose (fin du programme). Après le dernier mot fin il y a toujours un point. Nous avons souligné le mot «dernier» car l'utilisation de la construction début-fin peut-être dans un autre cas : ce sont ce qu'on appelle les parenthèses d'opérateur, qui sont utilisées pour combiner plusieurs opérations sous un seul opérateur. Mais plus là-dessus plus tard. Le programme principal ressemblera donc à ceci :

1 2 3 4 5 6 commencer < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; fin.

Ici, les opérateurs dans le corps du programme sont des commandes différentes du compilateur.

✎ 8) écrire – en anglais signifie « écrire ». Cet opérateur affiche le texte qui y est placé, c'est pourquoi il est appelé opérateur de sortie. Le texte placé à l’intérieur est surligné en bleu et écrit ainsi :

Écrire( "ce texte s'affiche à l'écran");

Un message entre parenthèses et guillemets sera affiché dans la fenêtre de la console (vous ne pouvez pas simplement le mettre entre parenthèses sans guillemets). Après avoir exécuté cette instruction, nous verrons à l'écran :

ce texte s'affiche à l'écran

Sous cette forme, l'opérateur d'écriture est utilisé dans le cas où vous devez afficher un indice, une explication, un commentaire, etc. Et si vous devez également afficher une valeur numérique, par exemple S = 50 carrés. m, alors le format est utilisé :

Écrire(,S);

Du coup, on obtient le résultat à l'écran :

L'aire est égale à : S = 50

Et si vous devez afficher des unités de mesure, vous devez à nouveau insérer le texte entre guillemets après S :

Écrire( "L'aire est égale à : S = ", S, " m²" );

Après avoir exécuté la dernière instruction de sortie, nous obtenons le résultat suivant à l'écran :

La taille de la zone est : S = 50 m²

✎ 9) writeln – identique à write, mais après l'exécution, le curseur sera déplacé vers la ligne suivante.

✎ 10) lire – traduit de l'anglais signifie « lire », donc lire est appelé l'opérateur de lecture ou de saisie de données. Il s'écrit read(N), ce qui signifie que la valeur N doit être saisie, où N est n'importe quel nombre, texte ou autre type de variable. Par exemple, si nous devons saisir l’âge d’une personne de 32 ans, nous pouvons l’écrire ainsi :


Dans la première ligne de ce code, le programme affiche la question « Quel âge avez-vous?" et déplace le curseur vers la ligne suivante (terminant ln); dans la deuxième ligne, nous imprimons « Année = » (espace au début) ; Ensuite, nous voyons l'opérateur readln(Year), ce qui signifie qu'il est nécessaire de saisir l'âge Year (numéro 32) ; enfin, on affiche les messages « Mon âge », « 32 » et « ans ». " un par un. Vous devez surveiller attentivement les espaces. Suite à l'exécution de ce code, nous recevrons le message :

Quel âge avez-vous?
Année = 32
Mon âge est 32 ans

✎ 11) readln – identique à read, seulement avec une nouvelle ligne. En effet, dans l’exemple ci-dessus, après avoir introduit le nombre Année, on écrit seulement dans la ligne suivante : « Mon âge est 32 ans».

C'est tout pour le moment. Sur la page suivante, nous écrirons le premier programme, et en programmation Pascal, ce sera notre

Agence fédérale pour l'éducation

Essai

"TYPES DE DONNÉES EN PASCAL"

1. Types de données

Toutes les données, c'est-à-dire les constantes, variables, propriétés, valeurs de fonction ou expressions sont caractérisées par leurs types. Un type définit l'ensemble des valeurs valides qu'un objet peut avoir, ainsi que l'ensemble des opérations valides qui peuvent lui être appliquées. De plus, le type détermine également le format de la représentation interne des données dans la mémoire du PC.

En général, le langage Object Pascal se caractérise par une structure ramifiée de types de données (Fig. 1.1). Le langage fournit un mécanisme pour créer de nouveaux types, grâce auquel le nombre total de types utilisés dans un programme peut être aussi grand que souhaité.

Les données traitées dans le programme sont divisées en variables, constantes et littéraux :

Constantes représentent des données dont les valeurs sont définies dans la section de déclaration constante et ne changent pas pendant l'exécution du programme.

Variables sont déclarées dans la section de déclaration des variables, mais contrairement aux constantes, elles reçoivent leurs valeurs lors de l'exécution du programme, et ces valeurs peuvent être modifiées. Les constantes et les variables peuvent être désignées par leur nom.

Littéral n'a pas d'identifiant et est représenté directement par la valeur dans le texte du programme.

Taper définit l'ensemble des valeurs que les éléments de données peuvent prendre et l'ensemble des opérations autorisées sur eux.

Ce chapitre et les quatre suivants fournissent des descriptions détaillées de chaque type.

1.1Types simples

Les types simples incluent les types ordinaux, réels et datetime.

Types ordinaux diffèrent en ce que chacun d’eux a un nombre fini de valeurs possibles. Ces valeurs peuvent être ordonnées d'une certaine manière (d'où le nom des types) et, par conséquent, chacune d'elles peut être associée à un nombre entier - le nombre ordinal de la valeur.

Types réels, à proprement parler, ont également un nombre fini de valeurs, qui est déterminé par le format de la représentation interne d'un nombre réel. Cependant, le nombre de valeurs possibles de types réels est si grand qu'il n'est pas possible d'associer un entier (son nombre) à chacune d'elles.

Type date-heure conçu pour stocker la date et l’heure. En fait, il utilise le format réel à ces fins.

1.1.1 Types ordinaux

Les types ordinaux incluent (voir Figure 1.1) les types entier, logique, caractère, énuméré et plage. La fonction Ord(x) peut être appliquée à n'importe lequel d'entre eux, qui renvoie le numéro ordinal de la valeur de l'expression X.


Riz. 1.1 - Structure des types de données

Pour entier types, la fonction ord(x) renvoie la valeur de x lui-même, c'est-à-dire Ord(X) = x pour x appartenant à n'importe quel entier taper. Application d'Ord(x) à logique , symbolique et énumérable types donne un entier positif compris entre 0 et 1 ( type booléen), de 0 à 255 ( symbolique), de 0 à 65535 ( dénombrable). Gamme de types préserve toutes les propriétés du type ordinal de base, donc le résultat de l'application de la fonction ord(x) dépend des propriétés de ce type.

Vous pouvez également appliquer des fonctions aux types ordinaux :

préd(x)- renvoie la valeur précédente du type ordinal (la valeur qui correspond au nombre ordinal ord(x) -1, c'est-à-dire ord(pred(x)) = ord(x) - 1 ;

succès(x)- renvoie la valeur suivante du type ordinal, qui correspond au nombre ordinal ord(x) +1, c'est-à-dire ord(Succ(x)) = ord(x) + 1.

Par exemple, si un programme définit une variable

alors la fonction PRED(c) renverra le caractère « 4 », et la fonction SUCC(c) renverra le caractère « 6 ».

Si nous imaginons n'importe quel type ordinal comme un ensemble ordonné de valeurs augmentant de gauche à droite et occupant un certain segment sur l'axe des nombres, alors la fonction pred(x) n'est pas définie pour l'extrémité gauche, et succ (x) est non défini pour l'extrémité droite de ce segment.

Types entiers . La plage des valeurs possibles des types entiers dépend de leur représentation interne, qui peut être un, deux, quatre ou huit octets. Dans le tableau 1.1 montre les noms des types entiers, la longueur de leur représentation interne en octets et la plage de valeurs possibles.

Tableau 1.1 - Types entiers

Nom Longueur, octets Plage de valeurs
Cardinal 4 0. .. 2 147 483 647
Octet 1 0...255
Raccourci 1 -128...+127
Petitint 2 -32 768...+32 767
Mot 2 0...65 535
Entier 4
Entier long 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
Mot Long 4 0. . .4 294 967 295

Les types Mot Long Et Int64 ont été introduits pour la première fois dans la version 4, et les types Petitint Et Cardinal non disponible dans Delphi 1. Tapez entier pour cette version, il prend 2 octets et a une plage de valeurs allant de -32768 à +32767, c'est-à-dire la même chose que Petitint .

Lorsque vous utilisez des procédures et des fonctions avec des paramètres entiers, vous devez être guidé par « l'imbrication » des types, c'est-à-dire partout où il peut être utilisé mot, autorisé à utiliser Octet(mais pas l'inverse), en Entier long"entre dans" Petitint, qui à son tour comprend Raccourci .

La liste des procédures et fonctions applicables aux types entiers est donnée dans le tableau. 1.2. Les lettres b, s, w, i, l désignent des expressions du type suivant : Octet , Entier court, mot, entier et entier long ,

x est une expression de l’un de ces types ; les lettres vb, vs, vw, vi, vl, vx désignent des variables des types correspondants. Un paramètre facultatif est indiqué entre crochets.

Tableau 1.2 - Procédures et fonctions standards applicables aux types entiers

Appel Type de résultat Action
abdos(x) X Module de retour x
chr(b) Carboniser Renvoie un caractère par son code
déc(vx[,i]) - Diminue la valeur de vx de i, et en l'absence de i - de 1
inc(vx[,i]) - Augmente la valeur de vx de i, et en l'absence de i - de 1
Salut (w) Octet Renvoie l'arc le plus élevé de l'argument
Salut (je) Même Renvoie le troisième octet
Lo(je) Renvoie l'octet de poids faible de l'argument
Faible) Même
impair(l) Booléen Renvoie True si l'argument est un nombre impair
Aléatoire (w) Identique au paramètre Renvoie un nombre pseudo-aléatoire uniformément distribué dans la plage 0...(w-l)
carré(x) X Renvoie le carré de l'argument
échanger(je) Entier Échange des octets dans un mot
échanger(w) Mot Même

Lorsque vous travaillez avec des entiers, le type du résultat correspondra au type des opérandes, et si les opérandes sont de types entiers différents, au type général qui inclut les deux opérandes. Par exemple, lorsque vous travaillez avec raccourci Et mot le type commun sera entier. Par défaut, le compilateur Delphi ne produit pas de code pour vérifier si une valeur est hors plage, ce qui peut conduire à des malentendus.

Types booléens . Les types logiques incluent Booléen, ByteBool, Bool, wordBool Et LongBool. En Pascal standard, seul le type est défini Booléen, d'autres types logiques sont introduits dans Object Pascal pour la compatibilité avec Windows : types Booléen Et OctetBool chacun occupe un octet, Booléen Et MotBool- 2 octets chacun, LongBool- 4 octets. Les valeurs booléennes peuvent être l'une des constantes pré-déclarées False ou True.

Le type booléen étant un type ordinal, il peut être utilisé dans une instruction de boucle de type dénombrable. Dans Delphi 32 pour Booléen signification

Ord (True) = +1, tandis que pour les autres types ( Bool, WordBool etc.)

Ord(True) = -1, donc ces types d'opérateurs doivent être utilisés avec prudence ! Par exemple, pour la version Delphi 6, l'instruction exécutable showMessage(" --- ") dans la boucle suivante pour ne sera jamais exécuté :

pour L : = Faux à Vrai, faites

Voir le message("--);

Si l'on remplace le paramètre de boucle type L dans l'exemple précédent par Booléen, la boucle s'exécutera et le message apparaîtra deux fois à l'écran. [Pour les versions 1 et 2 de Delphi ord (True) =+1 pour tout type booléen.]

Type de caractère . 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 ; il est renvoyé par la fonction ord.

Pour l'encodage sous Windows, on utilise le code ANSI (du nom de l'American National Standard Institute, l'institut américain de normalisation qui a proposé ce code). La première moitié des caractères PC avec les codes 0... 127 correspond au tableau 1.3. La seconde moitié des caractères avec les codes 128...255 varie selon les polices. Les polices Windows standard Arial Cyr, Courier New Cyr et Times New Roman utilisent les 64 derniers codes (de 192 à 256) pour représenter les caractères cyrilliques (sans les lettres « ё » et « Ё ») : « A »... « Z » sont des valeurs codées 192..223, "a"... "i" - 224...255. Les symboles « Ё » et « е » ont respectivement les codes 168 et 184.

Tableau 1.3 - Codage des caractères selon la norme ANSI

Code Symbole Code. Symbole Code. Symbole Code Symbole
0 NUL 32 B.L. 64 @ 96 "
1 ZON 33 ! 65 UN 97 UN
2 STX 34 66 DANS 98 b
3 ETX 35 # 67 AVEC 99 Avec
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACCK 38 & 70 F 102 F
7 BEL 39 " 71 g 103 d
8" BS. 40 ( 72 N 104 h
9 HT 41 ) 73 je 105 je
10 LF 42 * 74 J. 106 j
11 Vermont 43 + 75 À 107 k
12 FR 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 DONC 46 78 N 110 n
15 SI. 47 / 79 0 111 Ô
16 DEL 48 0 80 R. 112 P.
17 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R. 114 r
19 DC3 51 3 83 S 115 s
20 DD 4 52 4 84 T 116 t
21 N.A.K. 53 5 85 U 117 toi
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 W
24 PEUT 56 8 88 X 120 X
25 E.M. 57 9 89 Oui 121 U
26 SOUS 58 : 90 Z .122 z
27 ÉCHAP 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 G.S. 61 = 93 ] 125 }
30 R.S. 62 > 94 L 126 ~
31 NOUS 63 F 95 127 r

Les caractères avec les codes 0...31 font référence aux codes de service. Si ces codes sont utilisés dans le texte des caractères du programme, ils sont considérés comme des espaces.

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 d'affichage 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 inclus:

  • 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 de 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 senior 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 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 le compilateur allouera le nombre maximum d'octets possible (255) pour la valeur de cette variable.

La leçon couvre les principaux types de données standards en Pascal, la notion de variable et de constante ; explique comment travailler avec des opérations arithmétiques

Pascal est un langage de programmation typé. Cela signifie que les variables qui stockent les données sont d'un type de données spécifique. Ceux. Le programme doit indiquer directement quelles données peuvent être stockées dans une variable particulière : données texte, données numériques, si numériques, alors entières ou fractionnaires, etc. Ceci est nécessaire principalement pour que l'ordinateur « sache » quelles opérations peuvent être effectuées avec ces variables et comment les effectuer correctement.

Par exemple, l'ajout de données texte, ou comme on l'appelle correctement en programmation - la concaténation - est la fusion habituelle de chaînes, tandis que l'ajout de données numériques se produit au niveau du bit, de plus, les nombres fractionnaires et entiers sont également ajoutés différemment. Il en va de même pour les autres opérations.

Examinons les types de données les plus courants en Pascal.

Types de données entiers en Pascal

Taper Gamme Mémoire requise (octets)
octet 0..255 1
raccourci -128..127 1
entier -32768.. 32767 2
mot 0..65535 2
entier long -2147483648..2147483647 4

Vous devez garder à l'esprit que lorsque vous écrivez des programmes en Pascal entier(traduit de l'anglais dans son ensemble) est le plus fréquemment utilisé, car la plage de valeurs​​est la plus demandée. Si une plage plus large est nécessaire, utilisez entier long(entier long, traduit de l'anglais par entier long). Taper octet en Pascal, il est utilisé lorsqu'il n'est pas nécessaire de travailler avec des valeurs négatives, il en va de même pour le type mot(seule la plage de valeurs ici est beaucoup plus large).

Exemples de la façon dont les variables sont décrites (déclarées) en Pascal :

programme a1 ; var x,y:entier; (type entier) monnom:string; (type de chaîne) start x:=1; y:=x+16; monnom:="Pierre"; writeln("nom : ",monnom, ", âge : ", y) end.

Résultat:
nom : Peter, âge : 17 ans

Commentaires en Pascal

Remarquez comment les commentaires sont utilisés en Pascal. Dans les commentaires de l'exemple, c'est-à-dire le texte du service qui n'est « pas visible » pour le compilateur est placé entre accolades. En règle générale, les programmeurs font des commentaires pour expliquer des morceaux de code.

Tâche 3. La population de Moscou est de = 9 000 000 d'habitants. La population de Nouveau Vasyuki est de 1 000 habitants. Écrivez un programme qui détermine la différence du nombre d'habitants entre deux villes. Utiliser des variables

Types de données réels en Pascal

Les nombres réels en Pascal et en programmation en général sont le nom des nombres fractionnaires.

Taper Gamme Mémoire requise (octets)
réel 2,9 * 10E-39 .. 1,7 * 10E38 6
célibataire 1,5 * 10 E-45 .. 3,4 * 10E38 4
double 5*10E-324..1.7*10E308 8
étendu 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Le type réel en Pascal est le type réel le plus couramment utilisé.

Ce qui précède a été présenté types de données simples en Pascal, qui incluent :

  • Ordinal
  • Entier
  • casse-tête
  • Personnage
  • Répertoriable
  • Intervalle
  • Réel

Pour afficher les valeurs des variables de type réel, une sortie formatée est généralement utilisée :

  • le format utilise soit un nombre, indiquant le nombre de positions attribuées à ce nombre sous forme exponentielle ;
  • p:=1234,6789; Écrire(p:6:2); (1234.68)

    Outre les types simples, le langage utilise également types de données structurées et pointeurs, qui fera l'objet de leçons ultérieures sur Pascal.

    Constantes en Pascal

    Souvent, dans un programme, on sait à l'avance qu'une variable prendra une valeur spécifique et ne la changera pas tout au long de l'exécution de l'ensemble du programme. Dans ce cas, vous devez utiliser une constante.

    La déclaration d'une constante en Pascal a lieu avant la déclaration des variables (avant le mot de service var) et ressemble à ceci :

    Un exemple de description de constante en Pascal :

    1 2 3 4 5 6 constx= 17 ; var monnom : chaîne ; commencer monnom : = "Pierre" ; writeln("nom : ", monnom, ", âge : ", x) end.

    const x = 17 ; var monnom:string; commencer monnom:="Pierre"; writeln("nom : ",monnom, ", âge : ", x) end.

    « Belle » sortie d’entiers et de nombres réels

    Afin de garantir qu'après l'affichage des valeurs des variables, il y ait des retraits, afin que les valeurs ne « fusionnent » pas les unes avec les autres, il est d'usage d'indiquer par deux points combien de caractères doivent être fournis pour afficher le valeur:


    Opérations arithmétiques en Pascal

    Ordre des opérations

    1. évaluation des expressions entre parenthèses ;
    2. multiplication, division, div, mod de gauche à droite ;
    3. addition et soustraction de gauche à droite.

    Procédures et fonctions arithmétiques standard Pascal

    Ici, il vaut la peine de s'attarder plus en détail sur certaines opérations arithmétiques.

    • L'opération inc en Pascal, prononcée incrément, est une procédure Pascal standard qui signifie augmenter de un.
    • Exemple d'opération d'inc :

      x:=1 ; Inc(x); (Augmente x de 1, c'est-à-dire x=2) writeln(x)

      Utilisation plus complexe de la procédure inc :
      Inc(x,n) où x est un type ordinal, n est un type entier ; la procédure inc incrémente x de n.

    • La procédure Dec en Pascal fonctionne de la même manière : Dec(x) - diminue x de 1 (décrémentation) ou Dec(x,n) - diminue x de n.
    • L'opérateur abs représente le module d'un nombre. Cela fonctionne comme ceci :
    • une : =- 9 ; b:=abs(a) ; (b=9)

      une :=-9 ; b:=abdos(a); (b=9)

    • L'opérateur div en Pascal est souvent utilisé, car un certain nombre de tâches impliquent le fonctionnement d'une division entière.
    • Le reste de division ou l'opérateur mod en Pascal est également indispensable pour résoudre un certain nombre de problèmes.
    • Il convient de noter la fonction impaire standard de Pascal, qui détermine si un entier est impair. Autrement dit, il renvoie vrai pour les nombres impairs, faux pour les nombres pairs.
    • Un exemple d'utilisation de la fonction impaire :

      var x:entier; commencer x:=3; écrire(sqr(x)); (réponse 9) fin.

    • Opération d'exponentiation en Pascal manque en tant que tel. Mais pour élever un nombre à une puissance, vous pouvez utiliser la fonction exp.
    • La formule est : exp(ln(a)*n), où a est un nombre, n est un degré (a>0).

      Cependant, dans le compilateur Pascal abc, l'exponentiation est beaucoup plus simple :

      var x:entier; commencer x :=9 ; écrire(sqrt(x)); (réponse 3) fin.

    Tâche 4. Les dimensions d'une boîte d'allumettes sont connues : hauteur - 12,41 cm, largeur - 8 cm, épaisseur - 5 cm Calculez l'aire de la base de la boîte et son volume
    (S=largeur*épaisseur, V=surface*hauteur)

    Tâche 5. Le zoo compte trois éléphants et pas mal de lapins, le nombre de lapins changeant fréquemment. Un éléphant est censé manger cent carottes par jour et un lapin deux. Chaque matin, le gardien du zoo indique à l'ordinateur le nombre de lapins. L'ordinateur, en réponse à cela, doit indiquer au préposé le nombre total de carottes qui doivent être données aujourd'hui aux lapins et aux éléphants.

    Tâche 6. Il est connu que X kg de bonbons coûte un roubles Déterminez combien cela coûte oui kg de ces bonbons, et aussi combien de kilogrammes de bonbons peuvent être achetés chez k roubles Toutes les valeurs sont saisies par l'utilisateur.