La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam

Les opérateurs structurés sont appelés ces opérateurs, qui incluent d'autres opérateurs et contrôlent la séquence de leur exécution. Ceux-ci inclus:

  • opérateur composite;
  • opérateur conditionnel si;
  • cas d'opérateur de casel;
  • répéter l'opérateur de cycle;
  • whele Cycle Operateur;
  • opérateur faire du vélo.

Opérateur composite

Il est souvent nécessaire que plusieurs opérateurs soient perçus par rapport à une action en tant qu'opérateur. Un tel opérateur peut être obtenu si la séquence nécessaire des opérateurs se combine avec des supports de l'opérateur. Les mots de service de début et de fin sont appelés crochets de l'opérateur.

Format de l'opérateur:

numéro de l'opérateur 1;

numéro de l'opérateur 2;

numéro de l'opérateur 3;

opérateur N ° N-1;

numéro de l'opérateur N; Finir;

Le mot commence joue le rôle du support d'ouverture, le mot fin est le rôle du support de fermeture.

L'opérateur composite est perçu comme un seul opérateur. Il peut être inséré dans n'importe quel lieu du programme où un seul opérateur est autorisé.

Les opérateurs inclus dans l'opérateur composite, comme tous les opérateurs, sont séparés par un point-virgule, mais avant la fin, ce séparateur ne peut pas être installé. Une fois que le point final avec une virgule est nécessaire en tant que séparateur entre l'opérateur composite et l'opérateur suivant.

Dans les sections suivantes, la signification et le but de l'opérateur composite seront illustrés sur de nombreux exemples.

Opérateur conditionnel si.

L'opérateur IF implémente la conception algorithmique "solution" et vous permet de modifier la procédure pour effectuer des opérateurs en fonction de la vérité ou du sentiment de condition. Le format de l'opérateur peut être enregistré sous deux formes: forme complète et incomplète.

Format de l'opérateur en pleine forme:

Si.<условие> Puis.<оператор 1> AUTRE.<оператор 2>

Format de l'opérateur en format incomplet:

Si.<условие>Puis.<оператор 1>

Si (si), alors (alors), sinon (sinon) - des mots réservés.

Si les organigrammes d'opérateur sont ci-dessous:

L'opérateur conditionnel fonctionne comme suit. Calcule d'abord l'expression conditionnelle< условие >. Si le résultat est vrai (vérité), alors il est effectué< оператор 1 > (après la parole de cela), et< оператор 2 > ignoré. Si le résultat est faux (faux), alors< оператор 1 > ignoré et exécuté< оператор 2 > (Après le mot d'autre). Avant d'autres, un point de virgule n'est jamais mis, car ce n'est pas la fin de l'opérateur de si.

Partie d'autre.<оператор 2> opérateur conditionnel Si peut être omis. Si un< условие > Si l'opérateur prend réalité, puis exécuté<оператор 1> Sinon, cet opérateur est ignoré. Dans ce cas, le format de l'opérateur conditionnel a une forme incomplète:

Comparez deux constructions:

Si.<условие>Puis.<оператор 1>;

Si.<условие>Puis.<оператор 1>; <оператор 2>;

En première ligne<оператор 1> ou exécuté ou non effectué en fonction de l'exécution<условия> . Dans la deuxième ligne<оператор 2> tourne toujours parce qu'après<оператора 1> vaut le séparateur ";" Et tout ce que le champ Séparateur est considéré comme un autre opérateur. Par conséquent, conformément au format d'un opérateur IF après les mots réservés d'époque et d'autre, un seul opérateur peut supporter.

Exemple:

Si A\u003e 0 puis B: \u003d 1;

Si A\u003e 0 puis B: \u003d 1; A: \u003d B; (Opérateur A: \u003d B; toujours)

Si vous avez besoin d'effectuer après cela et d'autre, mais plusieurs opérateurs, les crochets de l'opérateur devraient être mis, c'est-à-dire Utilisez l'opérateur composite.

Dans ce cas, l'opérateur IF aura le formulaire suivant:

Si.<условие>Puis.

opérateur 11;

opérateur 1n;

opérateur 21;

opérateur 2n;

Exemple.

Si A\u003e 0 commence B: \u003d 1; A: \u003d B; finir;

Tache 1. Calculer la valeur de la fonction inégalités spécifiées

y \u003d x + 1 avec x<0; y=2∙x при x>0. Programme A5; Var x, y: réel; Commencer à écrire ('entrer x:'); readln (x); Si x writeln ("valeur de tu est:", y: 6: 2) fin.

Résultats du programme:

Entrez les valeurs X: 0.5.

Valeur de la valeur: 1.00

Tâche 2. Écrivez un programme résolvant une équation carrée. Si le discriminant est inférieur à zéro, affichez le message approprié.

Programme A6; Var a, b, c: réel; (coefficients d'équation) x1, x2: réel; (équation de racines) D: réel; (discriminant) commence Writeln («solution de l'équation carrée»: 50); Écrire ('Entrez les valeurs des coefficients A, B, C:'); Readln (a, b, c); (Entrant des coefficients) D: \u003d B * B-4 * A * C; Si (D.<0) then Writeln(‘Уравнение не имеет корней.’) else begin {операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLn(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end.

Résultats du programme:

Solution de l'équation carrée

Entrez les valeurs des coefficients A, B, C: 3 1 6

L'équation n'a pas de racines.

Dans la déclaration IF, l'opérateur composite peut non seulement être utilisé, mais également tout opérateur structuré. En tant que tel opérateur, le conditionnel si le conditionneur peut être utilisé. Dans ce cas, ils parlent d'imbriqués si des opérateurs.

Exemple.

Si condition alors.
Commencer. Supports de l'opérateur
opérateur; imbriqué
Si opérateur,
forme incomplète
Si condition puiseater
Autre opérateur;
Finir.
AUTRE.
Commencer. Supports de l'opérateur
opérateur; imbriqué
si opérateur,
forme incomplète
Si condition
Puis opérateur;
finir;

Lorsque vous travaillez avec des opérateurs imbriqués si les règles suivantes doivent être prises en compte:

  • avant réservé Word Symbol Symbole ";" jamais mis;
  • le mot réservé d'autre est toujours associé au devant le plus proche de celui-ci avec un mot réservé debout alors.

Tâche 3. Améliorer le programme de résolution de l'équation carrée (tâche 2). Lorsque la valeur du coefficient A \u003d 0, l'équation est dégénérée. Dans le programme, ce fait n'a pas été pris en compte, ce qui entraînera une erreur fatale dans l'exécution du programme (division à zéro). Afin d'exclure la division à zéro, effectuez la validation du coefficient et après son entrée à l'opérateur READLN (A, B, C).

Étant donné que la variable A est déclarée dans le programme en tant que variable de type réel, sa valeur numérique dans la machine est présentée pas exactement, avec une certaine erreur. Par conséquent, tapez record

Il existe plusieurs options pour la comparaison correcte des valeurs de la variable réelle avec zéro:

Tâche 4. Programme d'amélioration de la solution d'équation carrée.

Programme A7; var a, b, c: réel; (coefficients d'équation) x1, x2: réel; (équation de racines) D: réel; (discriminant) commence Writeln («solution de l'équation carrée»: 50); Écrire ('Entrez les valeurs des coefficients A, B, C:'); Readln (a, b, c); (Entrant des coefficients) si rond (a)<>0 alors commencez d: \u003d B * B-4 * A * C; Si D.<0 then Writeln(‘Уравнение не имеет корней.’) else begin{операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLN(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end else Writeln(‘Деление на нуль.’); end.

Résultats du programme:

Solution de l'équation carrée Entrez les valeurs des coefficients A, B, C: 0 1 6 Division à zéro.

Opérateur de sélection de cas conditionnel

L'opérateur de sélection est une généralisation de la déclaration IF et est utilisé dans des cas où il est nécessaire d'effectuer un seul opérateur à partir de l'ensemble des opérateurs en fonction de la valeur de la valeur clé.

En tant que clé, l'expression est utilisée, située entre les mots réservés de cas et de. L'expression peut être des types entiers, logiques et symboliques. L'expression ne peut pas avoir de type de véritable, une chaîne.

Format de l'opérateur:

Cas de "<ключ выбора>"Constanta1: opérateur 1; Constanta2: opérateur 2; Constanta3: opérateur 3; ... Constantan-1: opérateur N-1; Constantan: opérateur NN; autre opérateur fin;

Voici Sase (au cas où), de (de), sinon (sinon), finissez (fin) sont des mots réservés.

La clé de sélection est une expression de tout type sauf réelle et chaîne.

Constant1 - constante du même type qu'une expression.

Opérateur1 - opérateur arbitraire.

L'opérateur de sélection agit comme suit. Initialement, l'expression est calculée<ключ выбора> puis dans la séquence des opérateurs découvrant celui qui est précédé d'une constante égale à la valeur calculée<ключ выбора> . L'opérateur trouvé est exécuté, après quoi l'opérateur de sélection complète son fonctionnement (le contrôle est transmis à la fin). Si la constante ne sera pas trouvée dans la liste constante correspondant à la valeur calculée de la clé de sélection, le contrôle est transmis à l'opérateur debout derrière le mot d'autre.

Partie d'autre.<оператора> Vous pouvez alors omettre, puis en l'absence de la liste des constantes, la constante souhaitée ne se produit pas et l'opérateur de sélection complète simplement ses travaux.

Tâche 5. Écrivez un programme de calculateur simple.

Programme A8; Var x, y: réel; z: réel; (Résultat) OP: Char; (Sélectionnez la touche) Commencez à écrire ('Entrez les opérandes x, Y:'); Readln (x, y); Écrire ('Entrez l'opération (+, -, *, /):'); Readln (op); Cas op de '+': z: \u003d x + y; '-': z: \u003d x-y; '*': Z: \u003d x * y; '/': Si y0 alors z: \u003d x / y elsewriteln ("division à zéro"); Sinon Writeln ('action n'est pas fourni!'); finir; (Op) (afin que vous puissiez marquer, "dont" finir) writeln ("le résultat est \u003d ', z: 8: 2); finir.

Résultats du programme:

Entrez les opérandes x, Y: 4 2

Entrez l'opération (+, -, *, /): *

Le résultat est \u003d 8.00

Dans le programme, la clé de caractères est une variable de type de symbole. Selon les valeurs de symbole entrées (+, -, *, /), l'une des actions arithmétiques est effectuée: addition, soustraction, multiplication ou division. Si zéro est introduit en tant que diviseur, la division est impossible et le message "Division à zéro" est émis. Si un autre caractère est entré, le résultat sera le message "L'action n'est pas fournie!". Si des opérations autorisées sont entrées, le résultat est émis.

Tâche 6. Écrivez un programme qui demande le numéro de la journée de l'utilisateur de la semaine, puis affiche le nom du jour de la semaine ou un message d'erreur si des données incorrectes sont entrées.

Programme A9; Var n: entier; (Nombre de jour de la semaine) Commencez à écrire («Entrez le numéro de la semaine: '); readln (n); Case N de 1: Writeln ('lundi'); 2: Writeln ("mardi"); 3: Writeln ('mercredi'); 4: Writeln ("jeudi"); 5: Writeeln ("vendredi"); 6: Writeln (samedi '); 7: Writeln ('dimanche'); Sinon écrire ('vous vous trompez!') Fin; (n) fin.

Résultats du programme:

Entrez le numéro de la journée de la semaine: 1

lundi

Aucune constante ne devrait coïncider avec l'autre. Si vous devez effectuer le même opérateur pour plusieurs constantes, vous pouvez les énumérer à travers la virgule, par exemple

case N de 1,3,5,7,9: Writeln («Ce sont des chiffres impairs»); 2,4,6,8,10: writeln («ce sont des chiffres même»); finir;

Opérateur La proposition linguistique de la programmation s'appelle une description complète de certaines actions à effectuer. La partie principale du programme à Turbo Pascal est une séquence d'opérateurs. Le séparateur des opérateurs est un point avec une virgule. Tous les opérateurs de langue Turbo Pascal peuvent être divisés en deux groupes: simple et structurel.

Les opérateurs ne contiennent aucun autre opérateur s'appelle simple. Ceux-ci comprennent les opérateurs d'affectation, la transition inconditionnelle, la procédure d'appel et opérateur vide.

Opérateur d'application

Opérateur d'application (:=) Prescrit pour effectuer une expression spécifiée dans sa partie droite et attribuer le résultat de la variable dont l'identifiant est situé sur le côté gauche. La variable et l'expression doivent être compatibles par type.

La déclaration d'affectation est effectuée comme suit: Tout d'abord, l'expression est calculée sur le côté droit de l'affectation, puis sa valeur est attribuée à la variable spécifiée sur le côté gauche de l'opérateur.

Par exemple, pour l'opérateur

Rezult: \u003d un div b;

premièrement, la division entière de la valeur de la variable MAIS sur la valeur de la variable DANSet puis le résultat est attribué à la variable Rezult.

Exemples d'application de l'opérateur d'affectation:

MAIS:= 8;

S: \u003d a *DANS;

Ostatok: \u003d un mod b;

Rapport: \u003d A / B;

Opérateur de transition inconditionnel (aller à)

Opérateur de transition inconditionnel (aller à) Signifie "aller à" et s'applique dans des cas lorsque, après avoir effectué un certain opérateur, il est nécessaire de ne pas suivre en ordre, mais tout autre marqué par un opérateur d'étiquettes.

Rappelez-vous que l'étiquette est déclarée dans la section Descriptions d'étiquettes et peut contenir des symboles numériques et alphabétiques.

Lorsque vous utilisez l'opérateur aller à.il faut se rappeler que zone de marquage Ce n'est que l'unité dans laquelle elle est décrite. Le contrôle à un autre bloc est interdit.

Règles d'utilisation d'un opérateur de transition inconditionnel. L'utilisation de la gestion inconditionnelle de la gestion dans le programme est considérée comme théoriquement redondante et est soumise à une critique grave, car elle contribue à la création de programmes ininterrompus et difficiles modifiables qui causent de grandes difficultés lors du débogage et de l'accompagnement. Par conséquent, l'utilisation minimale de l'opérateur est recommandée. aller à. Conformément aux règles suivantes:

Il devrait s'efforcer d'appliquer les déclarations de transition (si cela semble impossible à faire sans eux) de transmettre le contrôle uniquement (avant) dans le texte du programme; Si vous devez transférer le contrôle du dos, vous devez utiliser des opérateurs de cycle;

La distance entre l'étiquette et la déclaration de transition ne doit-elle pas dépasser une page du texte (ou la hauteur de l'écran d'affichage).

Un exemple de l'application d'un opérateur de transition inconditionnel:

Étiquette métha; (Dans la description de la main des étiquettes décrites, l'étiquette nomméeMETKA.}

commencer. (Programme de base)

(principaux opérateurs de programme)

(principaux opérateurs de programme étiquetés)

Procédure pour effectuer des travaux

    Examinez les informations théoriques sur le sujet: «Écrire un programme sur une pâte à l'aide des opérateurs de transition et de transition inconditionnels».

    Obtenez une tâche individuelle de l'enseignant et développez un programme conformément à la tâche.

    Montrer le programme d'exécution à l'enseignant.

    Répondre aux questions de test.

Questions de contrôle

    Éléments de programmation de base.

    Les principales caractéristiques du programme. Les concepts de langue, de superposition, de blocs globaux et locaux.

    Programmation des opérateurs de langage Pascal. Opérateur d'assignation. Format, exemples.

    Opérateur de transition inconditionnel. Format, exemples. Règles de base d'utilisation

Travail de laboratoire numéro 7

Écrire le programme sur le Pascal à l'aide de opérateurs conditionnels et de l'opérateur de sélectionCas.

but du travail : Formation de connaissances et de compétences pour travailler avec les opérateurs de la langue. Acquisition de compétences en écriture de programme utilisant des opérateurs de travaux d'affectation et de transition inconditionnelle.

Bref informations théoriques

Opérateurs conditionnels

Les opérateurs conditionnels sont destinés à choisir parmi l'une des actions éventuelles (opérateurs), en fonction de certaines conditions (en même temps, l'une des actions peut être vide, c'est absent). La valeur est utilisée comme choix expression logique.

Turbo Pascal a deux opérateurs conditionnels: si et affaire.

Condition de l'opérateur si.

Conditions de l'opérateur si C'est l'un des fonds les plus populaires qui modifient la procédure naturelle pour l'exécution des opérateurs de programme.

Cela peut prendre l'une des formes suivantes:

    si<условие> Puis.<оператор1>

aUTRE.<оператор2>;

    si<условие> Puis.<оператор>;

Traduit de l'anglais, ces formats peuvent être définis comme suit:

    SI UN <условие> Cette <оператор1> Sinon <оператор2>

    SI UN <условие> Cette <оператор>

Conditions de l'opérateur si Il est effectué comme suit. Premièrement, l'expression enregistrée dans la condition est calculée. À la suite de son calcul, la valeur du type booléen est obtenue.

Dans le premier cas, si la valeur d'expression est Vrai. (vérité), exécuté <оператор1>, Spécifié après le mot puis.(Traduit - "to"). Si le résultat de calcul de l'expression sur la condition est Faux (mensonge), puis en cours d'exécution <оператор2> .

Dans le second cas, si le résultat de l'expression Vrai., interprété <оператор>, si un Faux - l'opérateur suivant immédiatement derrière l'opérateur si. Les opérateurs si Peut être imbriqué.

Exemple de fragment d'un programme avec un opérateur de condition IF:

si ch \u003d "n" alors parol: \u003d vrai

sinon Parol: \u003d faux;

si Parol \u003d vrai ça

si x \u003d 100, écrivez ("mot de passe et code de droite")

Writeln ("erreur dans le code");

Dans cet exemple, le clavier lit la valeur de la variable de type de caractère. Ch. La condition est ensuite vérifiée DEh.=" N." . S'il est effectué, puis variable Parolle type booléen est attribué de la valeur Vrai.Si la condition n'est pas effectuée, Faux. Ensuite, du clavier, lisez la valeur de code X.. Ensuite, l'opérateur Si l'opérateur vérifie la maladie du parol \u003d vrai. Si cela importe Vrai.Ensuite, vérifiez le mot de passe saisi par l'opérateur si x \u003d 100. Si condition X \u003d 100. a la signification Vrai., le message "mot de passe et code est correct" est affiché et la gestion du programme est transmise à l'opérateur après le mot finir.Si cela importe Faux, l'opérateur composite debout après, mots aUTRE.qui affiche le message "Erreur dans le code" sur l'écran de moniteur vidéo et provoque une procédure standard HALT (1) Arrêter le programme.

Caractéristique de l'application de l'opérateursi. Lorsque vous utilisez des opérateurs conditionnels imbriqués, une ambiguïté syntaxique peut se produire, par exemple:

si condition1 alors si condition2 alors<оператор1> AUTRE.<оператор2>

Ambiguïté émergent à quel opérateur si Appartient partie aUTRE. <оператор2>, Il est autorisé par le fait que le mot de service aUTRE. Toujours associé (associé) avec le mot commercial le plus proche si qui n'est pas encore associé à un mot de service aUTRE..

À cet égard, il devrait être précis lorsque vous écrivez des opérateurs de condition imbriqués.

Exemple 1. . Créez un programme qui calcule les deux entiers privés. En raison du fait qu'il est impossible de diviser à zéro, d'organiser le contrôle de la saisie de données.

Pour contrôler les valeurs d'entrée du diviseur, utilisez l'opérateur de transition conditionnel. Si ... alors ... d'autre.

Le texte du programme peut ressembler comme suit:

programme Primer1;

A, en Integer;

Écrire ("entrer la valeur de Airious A:");

Écrire ("entrez la valeur du diviseur à:");

si b \u003d 0 (Contrôle d'entrée du nombreB.}

puis Writeln ("ha z zer pour partager c'est impossible") (Condition satisfaite)

(La condition n'est pas remplie)

Rezult: \u003d A / B;

Writeln ("chiffres privés" et, "et", in, "\u003d", rezult);

L'opérateur de transition vous permet de passer du programme actuel d'exécution du programme à un autre endroit qui n'est pas suivi dans l'ordre. Cet opérateur enfreint le cours normal d'exécution du programme.

La transition est effectuée à l'aide des tags dites.
Une étiquette est un identifiant ou un entier sans signe dans la plage de 0 à 9999, situé à l'avant de tout opérateur de programme et est séparé de celui-ci avec un côlon. Toutes les balises utilisées dans le programme doivent être précédemment déclarées dans la section Annonces d'étiquettes, en commençant par l'étiquette.

Vous pouvez théoriquement montrer que les opérateurs considérés sont suffisants pour écrire des programmes de toute complexité. À cet égard, la présence dans la langue des opérateurs de transition semble inutile. De plus, la structure moderne de la programmation structurelle repose sur le principe de «programmation sans goto»: on pense que l'abus d'opérateurs de transition rend difficile la compréhension du programme, le rend confus et complexe dans le débogage. Néanmoins, dans certains cas, l'utilisation d'opérateurs de transition peut simplifier le programme.

L'opérateur de transition a la forme:

Ici goto est un mot réservé (aller [sur l'étiquette]); - étiqueter.

Étiquette 1; // déclarer une étiquette nommée 1 var
A: Integer; Commencer.
A: \u003d 10;
Goto 1; // transition vers l'étiquette 1
A: \u003d sqrt (a); // Cet opérateur ne sera jamais effectué! 1: A: \u003d A + A; // opérateur marqué d'une étiquette 1 extrémité;

Opérateurs de transition conditionnelle

L'opérateur de condition est conçu pour effectuer ou non-exécution de toute action en fonction du résultat de la condition de type booléen. Cet opérateur est utilisé pour brancher l'exécution du programme,
I.e. Si cette condition est vraie (et seulement dans ce cas!), une séquence d'opérateurs est effectuée, sinon les autres opérateurs sont effectués. Type de conditions de l'opérateur telles:

si état puis. opérateur1 autre opérateur2;

L'opérateur de condition peut être enregistré sous une forme simplifiée:

si état puis. opérateur;

Nous donnons des exemples d'utilisation des conditions d'exploitants:

si A\u003e 0 puis B: \u003d SQRT (A) autre B: \u003d A * 2; // Conditions de l'opérateur
Si A \u003d 10 puis B: \u003d B + 1; // forme simplifiée

Afin d'organiser la ramification dans plusieurs directions (plus de deux), vous pouvez utiliser plusieurs opérateurs de condition investis les uns dans les autres. Une incorporation des opérateurs de l'État se produit conformément aux mêmes règles que l'investissement des opérateurs composites.

Contrairement à d'autres langages de programmation dans l'objet Pascal, la priorité des opérations de relations est inférieure à celle des opérations logiques ", à ce sujet, les composants individuels de l'expression logique complexe sont entre crochets. Par exemple, un tel enregistrement de l'opérateur précédent sera incorrect:
Si A\u003e B et B 0 d'alors ... // Erreur comme réellement (en tenant compte de la priorité de l'opération), le compilateur diffusera cette ligne:
Si un\u003e (b et b) 0 alors ...

Opérateur de transition

Cette fois, je continuerai à prendre en compte le sujet "opérateurs".

Les opérateurs (inconditionnelles) transition sont destinés à transmettre le contrôle à l'opérateur, une marque marquée (qui est précédée d'une étiquette).

La version de l'auteur de la langue implique la conception de l'étiquette sous la forme d'un nombre décimal complet dans la gamme. 1..9999 . Comme étiquettes Turbo Pascal Permet l'utilisation d'identificateurs. Lorsque vous utilisez des opérateurs de transition, vous devez suivre les règles suivantes:

1) Toutes les balises qui sont dans le bloc doivent être décrites. Dans ce cas, chaque étiquette peut être décrite pas plus d'une fois. Ceux. Dans le bloc, il ne peut y avoir deux étiquettes avec le même nom.

2) L'étiquette spécifiée dans l'instruction de transition doit spécifier l'opérateur (insérer-le) situé dans le même bloc que l'opérateur de transition lui-même. Ceux. Transitions les procédures internationales (fonctions) ou à l'intérieur d'eux ne sont pas autorisées.

3) Tentative de transition (transmission de la commande) à l'intérieur de l'opérateur structurel peut entraîner des effets imprévisibles, bien que dans ce cas, le compilateur peut ne pas donner un message d'erreur.

L'utilisation d'une transition inconditionnelle dans le programme est considérée comme théoriquement redondante, car elle peut faire de la confusion dans une chaîne d'opérations de programme placées logiquement, ce qui peut entraîner de grandes difficultés dans le débogage et la modification d'un tel programme. Appliquer les opérateurs de transport est recommandé, à la suite des règles suivantes:

1) Si cela semble impossible à faire sans opérateurs de transition, il est nécessaire de s'efforcer de les appliquer pour transférer le contrôle uniquement dans le texte du programme (avant); Si vous avez la nécessité de transmettre des opérateurs de cycle «retour» de meilleure utilisation (voir ci-dessous);

2) Pour plus de clarté, la distance entre l'étiquette et l'opérateur de transition ne doit pas dépasser une page du texte (ou la hauteur de l'écran d'affichage), sinon la signification de cette transition inconditionnelle sera difficile à attraper.

Les balises sont déterminées par les descriptions qui commencent par un mot de service Étiqueteret contenir la séquence de noms d'étiquettes à travers la virgule. Pour transférer le contrôle de l'opérateur, une marque marquée, un opérateur de transition inconditionnel est fourni. aller à.. L'étiquette est séparée de l'opérateur suivant derrière celle-ci ':' (Colon). Exemple:

var. J: Integer;

(Nous déclarons deux étiquettes)

ÉtiqueterDÉBUT FIN;

Démarrer: WritEln ('Programme de démarrage');

aller à. TERMINER;

Terminer: Writeln ('Fin du programme');

Opérateur composite

L'opérateur de structure le plus simple est un opérateur composite. Cet opérateur définit la séquence des opérateurs contenus. L'opérateur composite est établi sous la forme d'une liste d'opérateurs séparés les uns des autres avec un symbole ';' (point avec la virgule) et les prisonniers entre des mots officiels commencer.et finir..

La nécessité d'un opérateur composite peut se produire dans des cas où la syntaxe langage de langue pascal Permet l'utilisation d'un seul opérateur à la place du programme où un certain nombre d'actions sont nécessaires (opérateurs, voir des exemples ci-dessous). Je vais donner un exemple simple d'opérateur composite:

Opérateur conditionnel

La signification de l'opérateur conditionnel consiste à analyser une condition logique et, selon cela, cette condition est exécutée ou non, transférer le contrôle de l'opérateur approprié. En tant que condition, il peut y avoir une expression qui renvoie la valeur logique du type booléen. Le résultat de l'analyse de la condition peut être la valeur vrai.. La condition est effectuée par I. faux. La condition n'est pas effectuée.

L'opérateur conditionnel est effectué comme suit. Pré-calcule l'expression indiquée après le mot de service Si. Si la condition est effectuée, le contrôle est transmis à l'opérateur spécifié après le mot de service. puis.Sinon, l'opérateur est exécuté, indiqué après le mot de service d'essentiel. Dans ce cas, une partie de l'opérateur conditionnel, en commençant par le mot d'autre, peut être absente. Voici des exemples d'opérateurs conditionnels:

Si. Touché puis. WritEln (clé clé ');

Si. A\u003e B. puis. Min: \u003d b

AUTRE. Min: \u003d a;

si X1\u003e x2. Alors commencez.

Le dernier exemple est exactement le cas où il est nécessaire qu'un certain nombre d'opérateurs soient effectués par la maladie, mais en raison du fait que puis.ou alors aUTRE.il ne peut y avoir qu'un seul opérateur, c'est-à-dire la possibilité de régler la situation à l'aide d'un opérateur composite contenant uniquement un certain nombre d'opérateurs nécessaires.

Dans la préparation d'opérateurs conditionnels imbriqués, il convient de garder à l'esprit que la branche d'autrement appartient toujours à la branche antérieure. Siqui n'a pas encore la branche d'autre. Ceux. Conception suivante

si Condition1 puis si Condition2 puis. Opérateur1 aUTRE.Opérateur2;

pour plus de clarté, vous pouvez interpréter tellement

si Condition1 Alors commencez.

siCondition2 puis. Opérateur1 aUTRE.Opérateur2;

Il est nécessaire d'observer la précision lors de l'utilisation des opérateurs conditionnels imbriqués, de sorte que, dans la création de la compilation de l'opérateur conditionnel suivant du programme, ne perdez pas de vue cela, à première vue, une petite partie pouvant conduire à un classique complètement différent. ramification.

Option d'opérateur

Très souvent, la situation se produit lorsque la chaîne d'opérateurs conditionnels augmente à des échelles énormes, par exemple, l'exemple suivant illustre une branche modeste de sa taille, mais contenant déjà la complexité de la perception de la signification posée:

taper Tway \u003d (haut, droite, bas, gauche);

var. Manière: tway;

MapX, Mapy: mot;

siFaçon \u003d up. puis. Mapy: \u003d Mapy - 1

AUTRE. si Manière \u003d droite. puis.MAPX: \u003d MAPX + 1

AUTRE.si Chemin \u003d bas. puis.Mapy: \u003d Mapy + 1

AUTRE. MAPX: \u003d MAPX - 1;

La dernière branche de sinon n'a pas d'opérateur Si.Comme en cas de non-respect des trois conditions, il serait logique que l'opérateur correspondant à la quatrième et dernière variante des valeurs possibles du type serait pris en vigueur. Tway..

Dans ce cas, nous étions encore chanceux de ce type Tway.il n'a que quatre options pour les valeurs reçues. L'établissement de telles branches serait devenu une routine s'il y avait dix options et plus? Mais dans la branche présentée, il y a un modèle simple. Alors est-il possible de le simplifier en quelque sorte et de rendre plus efficace et lisible? Il est possible, et pour cela dans la langue, il existe un opérateur d'opérateur, la conception peut contenir un nombre arbitraire d'alternatives pour une certaine expression. Ensuite, le dernier exemple peut être réécrit sur une nouvelle façon:

cas Chemin. de.

Up: Mapy: \u003d Mapy - 1;

Droite: MAPX: \u003d MAPX + 1;

Down: Mapy: \u003d Mapy + 1;

Gauche: MAPX: \u003d MAPX - 1;

Eh bien, une autre chose. Prenons maintenant la procédure d'exécution de cet opérateur. Pré-calcule la valeur de l'expression suivant le mot de service casMais puisque dans ce cas il y a un nom de variable Chemin.La valeur de cette variable est effectuée. La valeur obtenue est comparée alternativement à chaque alternative (constante, valeur directe) indiquée après le mot officiel. de.. En cas d'égalité, la valeur d'expression de la constante suivante, l'opérateur alternatif est effectué, suivant cette constante, séparée de son côlon. Après avoir terminé l'exécution d'un opérateur alternatif, l'action passe à l'opérateur après l'opérateur de l'option. Si la valeur est perdue Chemin.ni avec une constante cet opérateur L'option ne produit aucune action.

Mais que se passe-t-il s'il est nécessaire de fournir une branche des opérateurs, qui serait effectuée en cas de défaillance de la valeur d'expression avec une constante? Pour ce faire, vous pouvez utiliser une alternative pour autre, par exemple:

casChemin. de.

Up: Mapy: \u003d Mapy - 1;

Droite: MAPX: \u003d MAPX + 1;

Down: Mapy: \u003d Mapy + 1;

aUTRE. MAPX: \u003d MAPX - 1;

Par conséquent, la conception construite à l'aide de l'opérateur de cas est totalement équivalente à la conception construite plus tôt avec l'aide de l'opérateur. Si. En outre, elle est visuellement et il n'y a aucun risque de se confondre dans de nombreux aUTRE..

Je veux à nouveau attirer votre attention sur le fait que les constantes de l'opérateur de l'option peuvent être à la fois des entiers directs et les noms des constantes inépycycytées décrites précédemment. L'utilisation de constantes dactylographiées dans les alternatives de l'option de l'opérateur n'est pas autorisée. Avec cela, dans chaque mode de réalisation, vous pouvez spécifier toute une liste de constantes à travers une virgule ou une plage de valeurs, par exemple:

casChemin. de.

Up, Down: Writeln («Vertical en mouvement»);

À droite, à gauche: Writeln ("bouger horizontalement");

casX. de.

10 20h30: Writeln ('Dozens');

1..9: Writeln («unités»);

Dans le dernier opérateur de conception writeln ('unités') Terminé si la variable x aura l'une des valeurs 1,2,3,..,8,9 .

Comme vous pouvez le remarquer, des lignes avec des constantes que j'ai alignées sur le côlon, comme il me semble que ce genre est clairement, bien que cela soit une question de goût, et ce que l'on sait, il n'y a pas de goût et de couleur du camarade; o )

Appliquer l'option facultative doit être appliquée conformément aux règles suivantes:

1) Valeur valide Expressions - "commutateur", enregistré après le mot de service casdoit répondre au type discret: pour un type entier, ils doivent se situer dans la gamme -32768..32767 .

2) Toutes les alternatives de constantes spécifiées doivent avoir un type compatible avec le type d'expression.

3) Les constantes des solutions de rechange ne doivent pas être répétées dans l'opérateur de l'option et les gammes ne doivent pas intersecter et ne doivent pas contenir les constantes spécifiées dans cette ou d'autres alternatives.

Une autre chose. Conception casfournit un opérateur pour chaque alternative. S'il est nécessaire d'effectuer plusieurs opérateurs, il devrait être regroupé dans un opérateur composite commencer..end.. Il est possible de spécifier un opérateur vide pour une alternative, mettant un symbole ";" (point avec virgule) immédiatement après un côlon, qui n'effectuera rien. Et la syntaxe de la branche aUTRE.il prévoit l'indication de la séquence des opérateurs séparés par le ';'; (point-virgule).

La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam