Types entiers Pascal. La programmation. Types de données numériques Pascal-Pascal. Exemple d'utilisation de variables énumérées

Lors de la description d'une variable, vous devez indiquer son type. Le type d'une variable décrit l'ensemble des valeurs qu'elle peut prendre et les actions qui peuvent être effectuées sur elle. Une déclaration de type spécifie un identifiant qui représente le type.

Les types simples sont divisés en standard (ordinal) et énuméré (restreint).

Types standards

Turbo Pascal possède quatre types standards intégrés : entier, réel, booléen et char.

Type entier (entier)

Turbo Pascal possède cinq types d'entiers intégrés : entier court, entier, entier long, octet et mot. Chaque type désigne un sous-ensemble spécifique d'entiers, comme indiqué dans le tableau suivant.

Types entiers intégrés.

Gamme

Format

8 bits signés

16 bits signés

2147483648 +2147483647

32 bits signé

8 bits non signés

16 bits non signés

Les opérations arithmétiques sur les opérandes de type entier sont effectuées selon les règles suivantes :

  1. Un type de constante entière est un type entier intégré avec la plus petite plage incluant la valeur de cette constante entière.
  2. Dans le cas d'une opération binaire (une opération qui utilise deux opérandes), les deux opérandes sont convertis dans leur type commun avant que l'opération ne soit effectuée sur eux. Le type commun est le type entier intégré, avec la plus petite plage incluant toutes les valeurs possibles des deux types. Par exemple, le type commun pour un entier et un entier de longueur en octets est entier, et le type commun pour un entier et un entier de longueur de mot est un entier long. L'action est réalisée selon la précision du type générique et le type du résultat est le type générique.
  3. L'expression à droite de l'opérateur d'affectation est évaluée quelle que soit la taille de la variable à gauche.

Opérations effectuées sur des entiers :

"+" - ajout

"-" - soustraction

"*" - multiplication

SQR - quadrature

DIV - supprime la partie fractionnaire après la division

MOD - obtention du reste entier après division

ABS - module numéro

RANDOM(X) - obtenir un nombre aléatoire de 0 à X

A:=100 ; b:=60 ; un résultat DIV b - 1 un résultat MOD b - 40

Les variables de type entier sont décrites comme suit :

liste de variables var : type ;

Par exemple : var а,р,n:integer;

Type réel (réel)

Le type réel est un sous-ensemble de nombres réels qui peuvent être représentés au format virgule flottante avec un nombre fixe de chiffres. L'écriture d'une valeur au format à virgule flottante implique généralement trois valeurs - m, b et e - telles que m*b e, où b vaut toujours 10 et m et e sont des valeurs entières dans la plage réelle. Ces valeurs de m et e déterminent en outre la portée et la précision du type réel.

Il existe cinq types de types réels : réel, simple, double, exnende, comp. Les types réels varient dans la plage et la précision des valeurs qui leur sont associées

Plage et chiffres décimaux pour les types réels

Gamme

Nombres

2,9x10E-39 à 1,7x10E-38

1,5x10E-45 à 3,4x10E 38

5,0x10E-324 à 1,7x10E-308

3,4x10E-493 à 1,1x10E 403

2E 63 à 2E 63

Opérations effectuées sur des nombres réels :

  • Toutes les opérations sont valables pour les entiers.
  • SQRT(x) est la racine carrée de x.
  • PÉCHÉ(X), COS(X), ARCTAN(X).
  • LN(X) est le logarithme népérien.
  • EXP(X) est l'exposant de X (e x).
  • EXP(X*LN(A)) - exponentiation (A x).
  • Fonctions de conversion de type :
    • TRUNC(X) - supprime la partie fractionnaire ;
    • ROND(X) - arrondi.
  • Quelques règles d'opérations arithmétiques :
    • Si une opération arithmétique contient des nombres de type réel et entier, alors le résultat sera de type réel.
    • Tous les composants de l'expression sont écrits sur une seule ligne.
    • Seules les parenthèses sont utilisées.
    • Vous ne pouvez pas mettre deux signes arithmétiques à la suite.

Les variables de type réel sont décrites comme suit :

liste de variables var : type ;

Par exemple:

var d,g,k:réel ;

Type de caractère (caractère)

Le type char est n’importe quel caractère entouré d’apostrophes. Pour représenter une apostrophe sous forme de variable caractère, vous devez la mettre entre une apostrophe : ''''.

Chaque caractère a son propre code et numéro. Les numéros de série des chiffres 0,1..9 sont classés par ordre croissant. Les numéros de série des lettres sont également classés par ordre croissant, mais ne se suivent pas nécessairement.

Les signes de comparaison suivants s'appliquent aux données de caractères :

> , < , >=, <=, <> .

Par exemple : « A »< ‘W’

Fonctions qui s'appliquent aux variables de caractères :

  1. ORD(X) - détermine le numéro de série du symbole X. ord ('a') =97 ;
  2. CHR(X) - identifie un caractère par un numéro. chr(97) ='a';
  3. PRED(X) - renvoie le caractère précédant le caractère X. pred (« B ») = « A » ;
  4. SUCC(X) - renvoie le caractère qui suit le caractère X. succ (« A ») = « B » ;

Type d'énumération

Un type de données énuméré est ainsi nommé car il est spécifié comme une liste de constantes dans un ordre strictement défini et dans une quantité strictement définie. Un type énuméré consiste en une liste de constantes. Les variables de ce type peuvent prendre la valeur de n'importe laquelle de ces constantes. La description du type d'énumération ressemble à ceci :

Taper<имя типа>=(liste de constantes) ; Var<имя переменной>:<имя типа>;

Où<список констант>- il s'agit d'un type spécial de constantes, spécifiées séparées par des virgules et ayant leur propre numéro de série, commençant à 0.

Par exemple:

tapez direction=(nord, sud, ouest, est) ; mois=(juin, juillet, août, janvier) ; capacité=(seau, baril, bidon, réservoir) ; var rotation:direction; départ:mois; volume : capacité ; var turn:(nord, sud, ouest, est) ; départ : (juin, juillet, août, janvier) ; volume : (seau, baril, bidon, réservoir) ;

Vous pouvez effectuer les opérateurs d'affectation suivants :

Rotation :=sud ; départ:=août; volume :=réservoir ;

mais vous ne pouvez pas faire de tâches mixtes :

Départ :=sud ; volume :=août ;

Les fonctions suivantes s'appliquent aux variables de type énuméré :

1. ORD - numéro de série

2. PRED - élément précédent

3. SUCC - élément ultérieur.

PRED (baril) = seau ; SUCC (sud) =ouest ; ORD (juillet) =1 ;

Les variables d'un type énuméré peuvent être comparées car elles sont ordonnées et numérotées. Donc les expressions : nord< юг, июнь < январь имеют значения TRUE, а юг>ouest et réservoir<бочка значение FАLSE.

Type limité

Si une variable n'accepte pas toutes les valeurs de son type, mais seulement dans une certaine plage, elle peut alors être considérée comme une variable d'un type limité. Chaque type contraint est défini en imposant une contrainte sur les types de base.

Il est décrit comme suit :

TAPER<имя типа>=constante1 ..constante2

Dans ce cas, les règles suivantes doivent être respectées :

  1. Les deux constantes bornées doivent être du même type.
  2. Tout type simple, sauf real, peut être utilisé comme type de base.
  3. La valeur initiale lors de la définition d'un type limité ne doit pas être supérieure à la valeur finale.
indice de type =0 ..63 ; lettre = 'a'..'z'; var char1,char2:lettre; a,g:index ;

Vous pouvez le décrire immédiatement dans la section description de la variable :

var a,g:0 ..63 ; char1,char2 : 'a'..'z'.

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

Les données sont un concept général pour tout ce avec quoi un ordinateur fonctionne.

Les variables utilisées pour stocker les données en Pascal peuvent être de différents types. Ceci est notamment dû à la volonté de créer des programmes plus compacts et plus rapides qui utilisent moins de mémoire lors de leur fonctionnement.

Par exemple, le stockage de petits nombres nécessite moins de mémoire que le stockage de grands nombres. Les nombres entiers compris entre 0 et 255 n'occupent que 1 octet de mémoire, tandis que les nombres plus grands nécessitent plus d'octets. Si, selon la logique du programme, on sait que le résultat ne dépassera pas 255, alors il suffit d'utiliser une variable d'un octet pour le stocker.

D’un autre côté, les processeurs modernes traitent généralement différemment les nombres entiers et réels. Par exemple, les instructions arithmétiques entières dans les processeurs i80x86 sont exécutées directement dans l'ALU principale et nécessitent relativement peu de temps processeur. Alors que les opérations avec des nombres réels sont effectuées par un coprocesseur mathématique qui, bien que doté de plus grandes capacités de traitement, nécessite beaucoup plus de temps pour obtenir le résultat.

Par conséquent, si la logique de l’algorithme ne nécessite pas l’utilisation de nombres réels, cela n’a aucun sens d’utiliser une arithmétique « flottante » encombrante. En précisant dans le programme qu'une variable donnée est un nombre entier, le programmeur demande en fait au compilateur de la traiter avec l'ALU rapide du processeur principal, sans utiliser inutilement le coprocesseur.

De plus, différentes opérations peuvent être définies pour différents types de données. Par exemple, cela n'a aucun sens d'effectuer une opération de division sur des chaînes de caractères ou d'ajouter une variable réelle à une variable booléenne. Si, lors de la déclaration d'une variable, son type est indiqué, le compilateur est capable de contrôler l'exactitude des expressions dans lesquelles cette variable sera utilisée. Cela vous permet de réduire légèrement le nombre d'erreurs dans le programme.

Pascal a des types de données simples, composés et de référence. Nous allons maintenant nous familiariser en détail uniquement avec le premier d'entre eux, et nous parlerons du reste dans les conférences suivantes.

Les types simples incluent :

– logique

– types entiers

– types réels

– symbolique

1. Type logique (type booléen)

Une valeur booléenne est l'une des deux valeurs de vérité, désignées par des noms réservés. FAUX Et vrai.

Le type booléen est défini de telle sorte que FAUX < vrai. Les opérations relationnelles produisent toujours un résultat logique. Par exemple, l'attitude



pour x = 0, y = 0 donne FAUX; à x = 0, y = 10 – valeur vrai.

2. Types de données entiers

Les valeurs des variables de type entier sont les éléments d'un sous-ensemble limité d'entiers ; ce sous-ensemble est spécifique à l’implémentation.

Le Pascal standard ne définit qu'un seul type de données entier - type entier. Type de numéro entier occupe deux octets de mémoire ; dans ce cas, le bit zéro détermine le signe du nombre.

Dans l'implémentation Pascal avec laquelle nous allons travailler, dans des variables comme entier Vous pouvez stocker des nombres entiers compris entre –32 768 et +32 767.

De plus, Turbo Pascal propose des types de données entiers supplémentaires :

1) tapez raccourci– un entier court d'un octet avec un signe (le signe occupe le bit zéro), limites de variation -128 .. 127 ;

2) tapez octet– un entier court d'un octet non signé (les huit bits sont des chiffres binaires), modifier les limites 0 .. 255 ;

3) tapez mot– longueur entière de deux octets (mot) sans signe, limites de modification 0 .. 65535 ;

4) tapez entier long– entier long de 4 octets, signé, limites de modification - 2 147 483 648 .. 2 147 483 647.

Les opérations arithmétiques suivantes sont valides pour les valeurs entières :

Ajout;

– soustraction ;

* multiplications ;

div division par un entier (notez que le signe de division traditionnel "/" renvoie un nombre fractionnaire en Pascal, donc le résultat d'une telle opération ne peut pas être affecté à une variable entière).

module reste de la division.

Dans une expression arithmétique, deux signes d'opération ne peuvent pas apparaître côte à côte. Par exemple, vous ne pouvez pas écrire un * -b. Ici, vous devez écrire un * (-b).

Ancienneté opérationnelle:

1) expressions entre parenthèses ;

2) *, div, mod (opérations multiplicatives) ;

3) +, – (opérations additives).

Les opérations de priorité égale sont effectuées de gauche à droite.

Il n'y a pas d'opération d'exponentiation en Pascal. Pour les exposants entiers, cette opération peut être remplacée par une multiplication multiple.

Les fonctions prescrites suivantes donnent le résultat complet :



1) abs(i) – valeur absolue de l’argument entier i ;

2) sqr(i) – valeur au carré de l'argument entier i ;

3) trunc(R) – un entier résultant de la suppression de la partie fractionnaire du nombre R ;

4) round(R) – un entier obtenu en arrondissant R.

tronc(3.3) = 3; tour(3.3) = 3;

tronc(3,5) = 3; tour(3,5) = 4 ;

tronc(3,8) = 3; tour(3,8) = 4 ;

tronc(-3,3) = -3; tour(-3,3) = -3 ;

tronc(-3,8) = -3; tour (-3,8) = -4.

3. Types réels

Les nombres réels sont des nombres à virgule flottante. Leur utilisation généralisée est typique des problèmes d'ingénierie et techniques.

En l'absence de coprocesseur, un seul type réel est implémenté : le type réel; s'il y a un coprocesseur, les types sont également implémentés célibataire, double, étendu, composition. Les types réels diffèrent les uns des autres par le nombre de bits alloués pour représenter la mantisse et l'ordre.

Pour le type réel quatre opérations arithmétiques sont définies :

Addition soustraction

* multiplication/division

Le résultat des opérations « + », « – », « * » est une valeur réelle si au moins un des opérandes est de type réel. L'opération « / » donne une valeur réelle même lorsque ses deux opérandes sont de type entier.

Les fonctions standards abs(x) et sqr(x) produisent un résultat réel si leur argument x est de type réel. Quel que soit le type d'argument, les fonctions standards suivantes donnent toujours un résultat réel : sin(x), cos(x), ln(x), exp(x), arctan(x), sqrt(x) (racine carrée).

Les fonctions donnent aussi un résultat réel avec un argument réel

Int(x) - partie entière de la valeur réelle x ;

Frac(x) - partie fractionnaire de la valeur réelle x.

4. Type de données caractère (type char)

Les valeurs des variables de type caractère sont les éléments d'un ensemble fini et ordonné de caractères. Cet ensemble peut être différent sur différents ordinateurs.

La valeur d'une variable de type caractère est représentée par un seul caractère entouré d'apostrophes.

"A" "a" "8" """" (apostrophe écrite deux fois)

Quelle que soit l'implémentation, les hypothèses suivantes s'appliquent à un type de caractère.

1) Les chiffres décimaux « 0 » à « 9 » sont classés selon leur signification et écrits les uns après les autres.

2) Il y a toutes les lettres majuscules de l'alphabet latin de "A" à "Z". Cet ensemble est classé par ordre alphabétique, mais n'est pas nécessairement connecté. Par conséquent, toute implémentation doit exécuter "I"< "J".

3) Il peut y avoir des petites lettres de l'alphabet latin allant de « a » à « z ». Si tel est le cas, alors cet ensemble de lettres est classé par ordre alphabétique, mais pas nécessairement cohérent.

Pour un type de caractère, deux fonctions de conversion inverse ord et chr sont définies :

k = ord(ch) – numéro de série du symbole ch ;

ch = chr(k) – symbole avec numéro de série k.

Pour un type de caractère, toutes les opérations relationnelles sont définies.

On pense que ch1< ch2, если ord(ch1) < ord(ch2).

Structure du programme Pascal

Un programme Pascal se compose d'un en-tête de programme et de quelques blocs :

Titre du programme ;

Bloc .

Titre se compose du mot-clé programme et du nom du programme :

Exemple de programme ;

Bloc contient des sections de description, qui définissent tous les objets locaux à un programme donné, et une section opérateur, qui spécifie les actions qui doivent être effectuées sur ces objets. Le bloc se compose des sections suivantes :

1. Section de description de la balise.

2. Section de description constante

3. Section de description du type

4. Section de description des variables.

5. Section décrivant les procédures et les fonctions.

6. Section Opérateurs.

Le bloc peut manquer n'importe quelle section, à l'exception de la section des déclarations.

1. Section de description de la balise

Toute instruction dans un programme peut être marquée d'une étiquette. L'étiquette est placée devant l'opérateur et séparée de celui-ci par deux points. Toutes les balises doivent être décrites dans la section de description de la balise.

Étiquette 10, 20, Met15 ;

2. Section de description constante

Cette section définit certains identifiants comme synonymes de constantes.

TextString = "Appuyez sur Entrée" ;

La constante pi est prédéfinie et égale à

pi = 3,1415926536 .

L'utilisation d'identifiants constants améliore la lisibilité du programme et facilite sa modification.

3. Section de description du type

Les types de données real, integer, boolean, char sont prédéfinis et sont utilisés dans la section de déclaration des variables. Si le programmeur doit introduire un nouveau type de données, il doit alors être décrit dans la section de description du type.

Nous reparlerons plus tard de la description des nouveaux types.

4. Section de description des variables

Chaque variable, tableau ou autre nom d'objet de programme doit être répertorié dans la section de déclaration de variable.

Var i, j, k : entier ;

5. Section décrivant les procédures et les fonctions

L'objectif et la structure de la section seront décrits lors de l'examen des procédures et des fonctions.

6. Section Opérateurs

La section contient des opérateurs qui implémentent le traitement de l'information dans le programme. Une section d'instructions est un cas particulier d'instruction composée, qui comprend une ou plusieurs instructions entourées de « crochets d'instruction » début... fin. Le séparateur entre les instructions est un point-virgule. Dans les cours suivants, nous étudierons les opérateurs de base du langage Pascal.

Section n°9 (2 heures)

Opérateur d'assignation. Entrée sortie
dans les programmes Pascal

Opérateur d'assignation. Écrire des expressions arithmétiques

Procédures de saisie au clavier

Procédures d'affichage à l'écran

La notion de données est une des notions clés en programmation et en informatique en général. En gros, les données en informatique sont des informations qui sont en état de stockage, de traitement ou de transmission pendant une certaine période de temps. Dans les machines de Turing, l’information a un type, qui dépend à son tour du type d’information.

Les types de données en Pascal définissent les valeurs possibles des variables, constantes, expressions et fonctions. Ils sont intégrés et personnalisés. Les types intégrés sont initialement présents dans le langage de programmation et les types personnalisés sont créés par le programmeur.

Selon le mode de présentation et de traitement, les types de données sont :

  • simple
  • structuré
  • pointeurs
  • objets
  • procédures

Cet article ne considérera que les types de données les plus simples, car aux premières étapes de la formation, il sera plus facile pour votre programme de se passer, par exemple, de fichiers et d'enregistrements que de variables entières ou de chaînes.

Type entier

Cela inclut plusieurs types entiers, qui diffèrent par la plage de valeurs, le nombre d'octets alloués pour les stocker et le mot avec lequel le type est déclaré.

Taper Gamme Taille en octets
raccourci -128…127 1
entier -32 768…32 767 2
entier long -2 147 483 648…2 147 483 647 4
octet 0…255 1
mot 0…65 535 2

Vous pouvez déclarer une variable entière dans la section Var, par exemple :

Toutes les opérations arithmétiques et logiques peuvent être effectuées sur les variables de cette catégorie à l'exception de la division (/), qui nécessite un type réel. Certaines fonctions et procédures standard peuvent également s'appliquer.

Type réel

En Pascal, il existe les types de données réels suivants :

Taper Gamme Mémoire, octet Nombre de chiffres
Réel 2,9e-39 … 1,7e38 6 11-12
Célibataire 1,5e-45 … 3,4e38 4 7-8
Double 5.0e-324…1.7e308 8 15-16
Étendu 3.4e-4932 … 1.1e493 10 19-20
Comp -9.2e63…(9.2e63)-1 8 19-20

Plus d'opérations et de fonctions peuvent être effectuées sur eux que sur des entiers. Par exemple, ces fonctions renvoient un résultat réel :

péché(x) – sinus ;

cos(x) – cosinus ;

arctan(x) – arctangente ;

ln(x) – logarithme népérien ;

sqrt(x) – racine carrée ;

exp(x) – exposant ;

Type booléen

Une variable de type de données booléen ne peut prendre que deux valeurs : vrai et faux. Ici, vrai correspond à la valeur 1 et faux correspond à zéro. Vous pouvez déclarer une variable booléenne comme ceci :

Des opérations de comparaison et logiques peuvent être effectuées sur des données de ce type : not, et, ou, xor.

Type de caractère

Un type de données caractère est une collection de caractères utilisés dans un ordinateur particulier. Une variable de ce type prend la valeur d'un de ces caractères et occupe 1 octet en mémoire de l'ordinateur. Mot Carboniser définit une valeur de ce type. Il existe plusieurs manières d'écrire une variable (ou constante) caractère :

  1. comme un seul caractère entouré d'apostrophes : « W », « V », « p » ;
  2. en précisant le code du caractère dont la valeur doit être comprise entre 0 et 255.
  3. en utilisant la construction ^K, où K est le code du caractère de contrôle. La valeur de K doit être supérieure de 64 au code du caractère de contrôle correspondant.

Les opérations relationnelles et les fonctions suivantes sont applicables aux valeurs d'un type de données caractère :

Succès(x)- renvoie le caractère suivant ;

Préd(x)- renvoie le caractère précédent ;

Commande(x)- renvoie la valeur du code du caractère ;

Chr(x)- renvoie la valeur d'un symbole par son code ;

UpCase(x)- convertit les lettres de l'intervalle 'a'..'z' en majuscules.

Pour travailler efficacement avec un type de caractère, je recommande d'utiliser .

Type de chaîne

Une chaîne en Pascal est une séquence de caractères entourée d'apostrophes et est désignée par le mot Chaîne. Le nombre de caractères (longueur de ligne) ne doit pas dépasser 255. Si la longueur de la ligne n'est pas précisée, elle sera automatiquement déterminée à 255 caractères. La forme générale d'une déclaration de variable chaîne ressemble à ceci :

Var<имя_переменной>:chaîne[<длина строки>];

Chaque caractère d'une ligne possède son propre index (numéro). L'index du premier octet est 0, mais il ne stocke pas le premier caractère, mais la longueur de la chaîne entière, ce qui signifie qu'une variable de ce type occupera 1 octet de plus que le nombre de variables qu'elle contient. Le numéro du premier caractère est 1, par exemple, si nous avons la chaîne S='stroka', alors S=s;. Dans l’une des leçons suivantes, le type de données chaîne sera abordé plus en détail.

Type de données énumérées

Un type de données énuméré représente un nombre limité d'identifiants. Ces identifiants sont mis entre parenthèses et séparés par des virgules.

Type Jour=(lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;

La variable A ne peut prendre que les valeurs spécifiées dans la section Type. Vous pouvez également déclarer une variable de type énuméré dans la section Var :

Var A : (lundi, mardi) ;

Les opérations relationnelles sont applicables à ce type, et il est prédéterminé que lundi

Type de données d'intervalle

Lorsqu'il est nécessaire de spécifier une plage de valeurs, dans de telles situations, le type de données intervalle est utilisé. La construction utilisée pour la déclaration est m..n, Où m est la valeur minimale (initiale), et n– maximum (final) ; ici m et n sont des constantes, qui peuvent être de type entier, caractère, énumération ou booléen. Les valeurs de type intervalle peuvent être décrites à la fois dans la section types et dans la section description des variables.

Forme générale:

TAPER<имя_типа> = <мин. значение>..<макс. значение>;

3.2. Types de données simples dans Turbo Pascal 7

Un type simple définit un ensemble ordonné de valeurs de paramètres. Turbo Pascal possède les groupes de types simples suivants :

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

Tous les types simples, à l’exception des types réels, sont appelés types ordinaux. Pour les quantités de types ordinaux, des procédures et fonctions standards sont définies : Dec, Inc, Ord, Pred, Succ (voir section 13.1).

3.2.1. Types entiers

Contrairement à Pascal, qui définit un seul type entier, Integer, Turbo Pascal propose cinq types entiers standard : Shortint, Integer, Longint, Byte, Word. Les caractéristiques de ces types sont données dans le tableau. 2.

Tableau 2. Types de données entiers

Taper Gamme Format Taille en octets
Raccourci -128 .. 127 Iconique 1
Entier -32768 .. 32767 Iconique 2
Entier long -2147483648 .. 2147483647 Iconique 4
Octet 0 .. 255 Non signé 1
Mot 0 .. 65535 Non signé 2

3.2.2. Type booléen

Le type booléen standard (taille - 1 octet) est un type de données dont tout élément ne peut prendre que deux valeurs : True et False. Dans ce cas, les conditions suivantes sont valables :
Faux Ord (Faux) = 0
Ord (Vrai) = 1
Succ (Faux) = Vrai
Préd (Vrai) = Faux

Turbo Pascal 7.0 a ajouté trois types logiques supplémentaires ByteBool (taille - 1 octet), WordBool (taille - 2 octets) et LongBool (taille - 4 octets). Ils ont été introduits pour l'unification avec d'autres langages de programmation et avec l'environnement Windows. Leur différence avec le type booléen standard est la valeur réelle du paramètre de ce type, correspondant à la valeur True. Pour tous les types logiques, la valeur False correspond au nombre 0, écrit dans le nombre d'octets correspondant. La valeur True pour le type booléen correspond au nombre 1 écrit dans son octet, et pour les autres types la valeur True correspond à tout nombre autre que zéro (bien que la fonction Ord dans ce cas donne la valeur 1).

3.2.3. Type de caractère

Le type de caractère standard Char définit un ensemble complet de caractères ASCII. La fonction Ord à partir d'une valeur de type Char donne le code du caractère correspondant. Les valeurs de type caractère sont comparées selon leurs codes.

3.2.4. Type d'énumération

Un type énuméré n'est pas standard et est défini par un ensemble d'identifiants auxquels les valeurs des paramètres peuvent correspondre. La liste des identifiants est indiquée entre parenthèses, les identifiants sont séparés par des virgules :

taper
= ();)

Il est important dans quel ordre les identifiants sont répertoriés lors de la définition d'un type, car le premier identifiant se voit attribuer le numéro de série 0, le second - 1, etc. Le même identifiant ne peut être utilisé dans la définition d'un seul type énuméré. La fonction Ord à partir d'une valeur d'un type énuméré donne le numéro ordinal de sa valeur.

Exemple. Type énuméré.

tapez Operat = (Plus, Moins, Mult, Divide);

Un type booléen est un cas particulier d'un type énuméré :

tapez Boolean = (Faux, Vrai) ;

3.2.5. Gamme de types

Dans n'importe quel type ordinal, vous pouvez sélectionner un sous-ensemble de valeurs, défini par les valeurs minimales et maximales, qui inclut toutes les valeurs du type d'origine situées à l'intérieur de ces limites, y compris les limites elles-mêmes. Ce sous-ensemble définit un type de plage. Le type de plage est spécifié en spécifiant les valeurs minimale et maximale, séparées par deux points :

tapez = . . ;

La valeur minimale lors de la définition de ce type ne doit pas être supérieure au maximum.

Exemple. Définition des types de plages.

taper
Douzaine = 1..12 ; (chiffres de 1 à 12)
AddSub = Plus..Moins ; (opérations d'addition et de soustraction)

3.2.6. Types réels

Contrairement au standard du langage Pascal, où un seul type réel Real est défini, Turbo Pascal possède cinq types réels standards : Real, Single, Double, Extended, Comp. Pour les caractéristiques de ces types, voir tableau. 3. Tableau 3. Types de données réels

Taper Gamme Nombre de chiffres significatifs Taille en octets
Réel 2.9*10-39..1.7*1038 11-12 6
Célibataire 1.5*10-45..3.4*1038 7-8 4
Double 5.0*10-324.-1.7*10308 15-16 8
Étendu 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Le type Comp est en fait un type entier à plage étendue, mais n’est pas considéré comme un type ordinal.

Les types Single, Double, Extended et Comp ne peuvent être utilisés dans les programmes que s'il existe un coprocesseur arithmétique ou si l'émulateur de coprocesseur est activé (voir paragraphes 17.5.8 et 17.7.1).