LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam

Les opérateurs conditionnels sont conçus pour sélectionner l'une des actions possibles (opérateurs) à exécuter, en fonction d'une certaine condition (dans ce cas, l'une des actions peut être absente). La valeur de l'expression logique est utilisée comme conditions de sélection. Turbo Pascal a deux instructions conditionnelles: if et case.

Si déclaration de condition

L'instruction de condition if peut prendre l'une des formes suivantes:

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

autre<оператор2>;

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

L'instruction de condition if est exécutée comme suit. Tout d'abord, l'expression écrite dans la condition est évaluée. À la suite de son calcul, une valeur booléenne est obtenue. Dans le premier cas, si la valeur de l'expression est True, alors<оператор1>spécifié après le mot alors. Si le résultat de l'évaluation de l'expression dans la condition est False, alors<оператор2>... Dans le second cas, si le résultat de l'expression True,<оператор>if False - l'instruction qui suit immédiatement l'instruction if est exécutée. Selon les règles, chacune des branches peut contenir soit une instruction exécutable, soit plusieurs, combinées en une instruction composée. Point-virgule avant Else pas mettre.

Déclaration de sélection de cas

Si un opérateur sipeut fournir un choix de deux alternatives, puis l'opérateur de sélection casvous permet de choisir parmi un nombre arbitraire d'options disponibles.

cas<выражение-селектор> de

<список1>: <оператор1>;

<список2>: <оператор2>;

<списокN>: <операторN>;

L'énoncé de cas fonctionne comme suit. Tout d'abord, la valeur de l'expression du sélecteur est calculée, puis l'implémentation de l'opérateur est fournie, dont la constante de sélection est égale à la valeur actuelle du sélecteur. Si aucune des constantes n'est égale à la valeur actuelle du sélecteur, l'instruction derrière le mot else est exécutée. Si le mot else est absent, l'opérateur derrière la fin du mot est activé, c'est-à-dire le premier opérateur en dehors du cas limite.

Une expression de sélecteur est une simple variable de type entier, caractère, énumération ou booléen, selon la valeur de laquelle une décision est prise;

La liste des constantes de sélection se compose d'un nombre arbitraire de valeurs, ou plages, séparées les unes des autres par des virgules. Le type des constantes doit correspondre au type du sélecteur;

Le format spécifié suppose qu'un opérateur est utilisé pour chaque alternative, mais plusieurs opérateurs peuvent être spécifiés si nécessaire en les regroupant dans un opérateur composé.

Branche Autreest facultative, et contrairement à une instruction if, vous pouvez la faire précéder d'un point-virgule.

Répéter les opérateurs

Si le programme a besoin d'exécuter certaines instructions de manière répétée, des instructions de répétition (boucle) sont utilisées. Dans le langage Pascal, il existe trois types d'opérateurs de boucle: while, repeat, for.

Déclaration While

L'instruction while est (pour l'instant) appelée une instruction de boucle avec Condition préalable pour vérifier la condition d'exécution du corps de la boucle au tout début de l'instruction.

tandis que<условие продолжения повторений> faire

<тело цикла>;

État - expression logique. Corps de boucle - opérateur simple ou composé. L'opérateur composite est utilisé lorsque le corps de la boucle se compose de 2 opérateurs ou plus.

Avant chaque exécution du corps de la boucle, la valeur de l'expression de condition est évaluée. Si le résultat est True, le corps de la boucle est exécuté et l'expression de condition est à nouveau évaluée. Si le résultat est False, la boucle se termine et passe à la première instruction immédiatement après le corps de la boucle.

Répéter la déclaration

L'instruction repeat implémente une boucle avec postcondition ... Une boucle avec une postcondition sera toujours exécutée au moins une fois.

<оператор1>;

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

<оператор N>;

jusqu'à ce que<условие окончания цикла>;

Les instructions entre les mots répéter et jusqu'à sont le corps de la boucle. Tout d'abord, le corps de la boucle est exécuté, puis la condition de sortie de la boucle est vérifiée. Si le résultat de l'expression logique est False, le corps de la boucle est à nouveau activé; si le résultat est True, la boucle se termine.

Répéter l'opérateur pour

Il s'agit d'un opérateur avec un nombre connu de répétitions. Cet opérateur de répétition est souvent appelé opérateur de boucle de paramètre car le nombre de répétitions est donné par une variable appelée paramètre de boucle , ou variable de contrôle .

L'instruction for peut être écrite dans deux formats:

pour<параметр цикла> := à faire<тело цикла>;

pour<параметр цикла> := vers le bas faire<тело цикла>;

où<параметр цикла> est une variable de type entier, symbolique, logique ou énuméré;

SI et S2 sont des expressions qui déterminent respectivement les valeurs initiale et finale du paramètre de cycle;

for ... do - en-tête de boucle;

Le corps de la boucle peut être facileou compositeopérateur. Pour déclaration assure l'exécution du corps de la boucle jusqu'à ce que toutes les valeurs du paramètre de la boucle de l'initiale à la finale soient répétées.

Action de commande. Le paramètre de boucle reçoit la valeur de l'expression S1. S'il est inférieur ou égal à la valeur de l'expression S2, alors le corps de la boucle est exécuté. Après cela, la valeur du paramètre est automatiquement augmentée de un et elle est à nouveau comparée à la valeur de l'expression S2, etc. Lorsque la valeur du paramètre devient supérieure à la valeur de l'expression S2, l'instruction suivante après le cycle est exécutée.

L'étape de modification du paramètre de boucle pour l'opérateur for ... to ... do est +1, et pour l'opérateur for ... downto ... do est -1.

Questions pour l'auto-test:

    Format d'opérateur d'affectation. Est-il permis d'utiliser des valeurs de types différents dans une expression arithmétique?

    Quelle est la différence entre l'opérateur d'entrée Read et l'opérateur Readln?

    Spécifiez les formats de sortie des données.

    Quel type de branchement est implémenté dans Turbo Pascal?

    À quoi servent les branches? Donne des exemples.

    Deux formes d'enregistrement opérateur conditionnel Si.

    Le format de l'instruction If imbriquée.

    Le format de la déclaration de sélection de cas?

    Quand l'instruction composée Begin ... end est-elle utilisée?

    Comment les algorithmes branchés sont-ils représentés dans les organigrammes?

    Qu'est-ce qu'un cycle?

    Quels types de boucles sont implémentés dans Turbo Pascal?

    Qu'est-ce qu'un corps en boucle?

    Dans quel cas le corps de la boucle est-il placé entre les crochets de l'opérateur begin… end?

    Quelles sont les différences entre les instructions while et repeat?

    Quand est-il préférable d'utiliser la boucle for pour la boucle? Qu'est-ce qui est écrit dans le titre de cette déclaration?

    Quelle est la direction du changement de la valeur du paramètre de boucle décrite dans l'instruction de boucle for?

La leçon traite de l'opérateur conditionnel en Pascal ( si). Explique comment utiliser plusieurs conditions dans une construction ( ET et OU). Des exemples de travail avec l'opérateur sont considérés

Nous vous rappelons que ce site ne prétend pas être une présentation complète d'informations sur le sujet. Le but du portail est de fournir une opportunité d'assimiler le matériel basé sur des exemples résolus prêts à l'emploi sur le thème "Langue programmation Pascal" de tâches pratiques pour sécuriser le matériel. Les missions Pascal présentées sur le site s'alignent séquentiellement à mesure que leur complexité augmente. Le site du site peut être utilisé par les enseignants et les enseignants comme aide visuelle auxiliaire.

Avant d'aborder ce sujet, les algorithmes linéaires en Pascal étaient principalement utilisés, typiques des tâches très simples, lorsque les actions (opérateurs) sont exécutées séquentiellement, les unes après les autres. Des algorithmes plus complexes impliquent l'utilisation d'une construction de branchement.

Un schéma de principe d'un opérateur conditionnel:

Un opérateur conditionnel en Pascal a la syntaxe suivante:

Version abrégée:

si condition alors instruction;

Toutes options:

if condition then instruction else instruction;

L'opérateur conditionnel en Pascal - si - sert à organiser la progression de la tâche de telle sorte que la séquence d'exécution des instructions change en fonction de toute condition logique. Une condition logique peut prendre l'une des deux valeurs suivantes: true (true) ou false (false), respectivement, elle peut être vraie ou fausse.

Opérateur composé

Si dans une condition vraie il est nécessaire d'exécuter plusieurs opérateurs, alors eux selon les règles langage Pascal doit être enfermé dans un bloc, commençant par le mot de service et se terminant par la fin du mot de service. Un tel bloc est généralement appelé supports d'opérateur, et cette construction - opérateur composé:

Crochets d'opérateur et opérateur composé en Pascal:

si expression booléenne, alors commencez instruction1; operator2; end else begin instruction1; operator2; fin;

La traduction par l'opérateur anglais des termes facilitera la compréhension de son utilisation:

SI PUIS AUTRE
SI À AUTRE


Dans une condition (dans une expression logique), des opérateurs relationnels sont utilisés.
Prenons une liste d'opérateurs de relation Pascal:

  • plus\u003e
  • moins
  • supérieur ou égal en Pascal\u003e \u003d
  • inférieur ou égal en Pascal
  • comparaison en Pascal \u003d
  • pas égal en Pascal

Exemple: trouver le plus grand de deux nombres

Option 1 Option 2


Comprendre le travail en détail vous pouvez utiliser l'opérateur conditionnel dans Pascal en regardant le didacticiel vidéo:

Exemple: calculer la valeur de la variable y le long d'une des deux branches

Afficher la solution:

var x, y: réel; begin writeln ("enter x"); lire (x); si x\u003e 0 alors y: \u003d ln (x) sinon y: \u003d exp (x); writeln ("y \u003d", y: 6: 2) (le nombre total occupera 6 positions, et il contiendra 2 décimales) end.

Notez comment dans cet exemple y est sorti. Lors du retrait variables de type en pascal, on peut utiliser ce qu'on appelle sortie formatée, ou notation avec deux deux-points:
y: 6: 2
- le chiffre après le premier deux-points (6) indique le nombre de caractères que le numéro occupera lorsqu'il est affiché à l'écran
- le chiffre après le deuxième deux-points (2) indique combien de chiffres après la virgule décimale du nombre réel seront affichés

Ainsi, l'utilisation d'une telle notation en pascal permet pratiquement d'arrondir aux centièmes, millièmes, etc.

Problème 0. Calculez la valeur de la variable y le long de l'une des deux branches:

Objectif 1. Deux nombres sont entrés dans l'ordinateur. Si le premier est supérieur au second, calculez leur somme, sinon - le produit. L'ordinateur doit ensuite imprimer le résultat et le texte TÂCHE RÉSOLU

Objectif 2. Le dragon fait pousser trois têtes chaque année, mais après avoir atteint 100 ans, seulement deux. Combien de têtes et d'yeux a un dragon N ans?

Opérations booléennes en Pascal (en termes booléens)

Lorsque vous devez utiliser une condition double en Pascal, vous avez besoin d'opérations booléennes.

  • Opération logique ET (Et), mis entre deux conditions, dit que ces deux conditions doivent être remplies en même temps (doivent être vraies). La signification logique de l'opération est "conjonction".
  • Entre deux conditions, le signe OU (OU) indique qu'il suffit qu'au moins l'un d'entre eux soit satisfait (l'une des deux conditions est vraie). La signification logique de l'opération est "disjonction".
  • Chez Pascal XOR - un signe d'une opération logique, qui a le sens de «disjonction stricte» et indique qu'il faut que l'une des deux conditions soit remplie (vrai), et l'autre non remplie (faux).
  • Opération logique NE PAS avant qu'une expression logique ou une variable ait la signification «négation» ou «inversion» et indique que si la variable ou l'expression donnée est vraie, alors leur négation est fausse et vice versa.

Important: Chacun des conditions simples assurez-vous de mettre entre crochets.

Exemple: Prenons des exemples d'opérations logiques dans les expressions logiques en Pascal

1 2 3 4 5 6 7 8 var n: entier; commencer n: \u003d 6; si (n\u003e 5) et (n<10 ) then writeln ("истина" ) ; if (n>7) ou (n<10 ) then writeln ("истина" ) ; if (n>7) xor (n<10 ) then writeln ("истина" ) ; if not (n>7) puis writeln ("vérité"); fin.

var n: entier; commencer n: \u003d 6; si (n\u003e 5) et (n<10) then writeln("истина"); if (n>7) ou (n<10) then writeln("истина"); if (n>7) xor (n<10) then writeln("истина"); if not(n>7) puis writeln ("vérité"); fin.

Exemple:L'entreprise recrute des salariés de 25 à 40 ans inclus. Entrez l'âge de la personne et déterminez si elle convient à l'entreprise donnée (indiquez la réponse «convenable» ou «ne convient pas»).
Fonctionnalité: il est nécessaire de vérifier si deux conditions sont remplies simultanément.

L'instruction jump vous permet de passer de l'emplacement actuel de l'exécution du programme à un autre emplacement qui n'est pas le suivant dans l'ordre. Cet opérateur perturbe le déroulement normal du programme.

La transition est effectuée à l'aide de ce que l'on appelle des étiquettes.
Une étiquette est un identificateur ou un entier non signé compris entre 0 et 9999 qui précède toute instruction de programme et en est séparé par deux points. Toutes les étiquettes utilisées dans le programme doivent être préalablement déclarées dans la section de déclaration d'étiquette, en commençant par l'étiquette WORD.

Il peut théoriquement montrer que les opérateurs considérés sont tout à fait suffisants pour écrire des programmes de toute complexité. A cet égard, la présence d'opérateurs de saut dans le langage semble superflue. En outre, technologie moderne programmation structurée est basé sur le principe de la «programmation sans GOTO»: on pense que l'abus des instructions de saut rend le programme difficile à comprendre, le rend confus et difficile à déboguer. Cependant, dans certains cas, l'utilisation d'opérateurs de branche peut simplifier votre programme.

L'opérateur de transition a la forme:

Ici goto est un mot réservé (go [to the label]); - étiquette.

Étiquette 1; // Déclarer une étiquette nommée 1 var
a: Entier; commencer
a: \u003d 10;
Goto 1; // Aller à l'étiquette 1
a: \u003d sqrt (a); // Cette instruction ne sera jamais exécutée! 1: a: \u003d a + a; // Opérateur marqué avec 1 extrémité;

Opérateurs de saut conditionnel

L'opérateur de condition est conçu pour effectuer ou non des actions en fonction du résultat de la condition de type booléen. Cet opérateur permet de dériver l'exécution du programme,
c'est-à-dire si condition donnée est vrai (et seulement dans ce cas!), alors une séquence d'instructions est exécutée, sinon d'autres instructions sont exécutées. L'opérateur de condition est le suivant:

si état puis instruction1 autre instruction2;

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

si état puis opérateur;

Voici des exemples d'utilisation des opérateurs de condition:

si a\u003e 0 alors b: \u003d sqrt (a) sinon b: \u003d a * 2; // Opérateur de condition
si a \u003d 10 alors b: \u003d b + 1; // Forme simplifiée

Afin d'organiser le branchement dans plusieurs directions (plus de deux), vous pouvez utiliser plusieurs opérateurs conditionnels, imbriqués les uns dans les autres. L'imbrication d'instructions conditionnelles suit les mêmes règles que l'imbrication d'instructions composées.

Contrairement aux autres langages de programmation d'Object Pascal, la priorité des opérations de relation est inférieure à celle des opérations logiques; par conséquent, les composants individuels d'un expression logique sont entre parenthèses. Par exemple, un tel enregistrement de la déclaration précédente sera incorrect:
si a\u003e b et b 0 alors ... // Erreur car en fait (en tenant compte de la priorité de l'opération) le compilateur traduira la ligne suivante:
si a\u003e (b et b) 0 alors ...

Les instructions structurées sont des instructions qui incluent d'autres instructions et contrôlent la séquence de leur exécution. Ceux-ci inclus:

  • opérateur composé;
  • instruction If conditionnelle;
  • instruction conditionnelle Case;
  • opérateur de boucle Répéter;
  • instruction de boucle While;
  • opérateur pour boucle.

Opérateur composé

Il est souvent nécessaire que, par rapport à une action, plusieurs énoncés soient perçus dans le programme comme un seul énoncé. Un tel opérateur peut être obtenu si la séquence requise d'opérateurs est combinée avec des parenthèses d'opérateurs. Les mots de service Begin et End sont appelés parenthèses d'opérateur.

Format opérateur:

opérateur # 1;

opérateur # 2;

opérateur # 3;

opérateur # n-1;

opérateur # n; Fin;

Le mot Begin joue le rôle de la parenthèse ouvrante, le mot End joue le rôle de la parenthèse fermante.

Une instruction composée est traitée comme une instruction unique. Il peut être inséré n'importe où dans le programme où une seule instruction est autorisée.

Les opérateurs inclus dans un opérateur composé, comme tous les opérateurs, sont séparés par un point-virgule, mais ce séparateur peut être omis avant la fin. Après la fin, un point-virgule est nécessaire comme séparateur entre l'instruction composée et l'instruction suivante.

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

Instruction IF conditionnelle

L'opérateur If implémente la construction algorithmique "Décision" et vous permet de changer l'ordre d'exécution des opérateurs en fonction de la vérité ou du mensonge d'une certaine condition. Le format opérateur peut être rédigé sous deux formes: complet et incomplet.

Format opérateur dans son intégralité:

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

Format d'opérateur incomplet:

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

Si (si), Then (alors), Else (sinon) sont des mots réservés.

Les organigrammes de l'instruction if sont présentés ci-dessous:

L'opérateur conditionnel fonctionne comme suit. L'expression conditionnelle est évaluée en premier< условие >... Si le résultat est vrai, alors< оператор 1 > (après le mot Then), et< оператор 2 > ignoré. Si le résultat est faux, alors< оператор 1 > ignoré mais exécuté< оператор 2 > (après le mot Else). Else n'est jamais précédé d'un point-virgule, car ce n'est pas la fin de l'instruction If.

Autre partie<оператор 2> l'instruction conditionnelle If peut être omise. Si< условие > Si l'opérateur évalue à True, alors<оператор 1> sinon cet opérateur est ignoré. Dans ce cas, le format de l'instruction conditionnelle est incomplet:

Comparons deux constructions:

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

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

Dans la première ligne<оператор 1> soit exécuté ou non exécuté selon l'exécution<условия> ... Dans la deuxième ligne<оператор 2> est toujours exécuté, car après<оператора 1> il y a un séparateur ";" et tout ce qui se trouve dans le champ délimiteur est considéré comme un autre opérateur. Par conséquent, selon le format de l'instruction If, il ne peut y avoir qu'une seule instruction après les mots réservés Then et Else.

Exemple:

Si a\u003e 0 Alors b: \u003d 1;

Si a\u003e 0 Alors b: \u003d 1; a: \u003d b; (opérateur a: \u003d b; est toujours exécuté)

S'il est nécessaire d'exécuter après Then et Else non pas un, mais plusieurs opérateurs, vous devez alors mettre les opérateurs entre crochets, c'est-à-dire utiliser un opérateur composé.

Dans ce cas, l'instruction If ressemblera à ceci:

Si<условие>Puis

opérateur 11;

opérateur 1n;

opérateur 21;

opérateur 2n;

Exemple.

Si a\u003e 0 Alors commencez b: \u003d 1; a: \u003d b; fin;

TACHE 1. Calculer la valeur de la fonction donnée par les inégalités

y \u003d x + 1 pour x<0; y=2∙x при x>0.programme a5; var x, y: réel; commencer l’écriture (‘Entrez la valeur x:’); readln (x); if x writeln (‘La valeur de y est:’, y: 6: 2) end.

Les résultats du programme:

Entrez les valeurs x: 0,5

La valeur de y est: 1,00

TÂCHE 2. Écrivez un programme pour résoudre une équation quadratique. 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; (racines de l'équation) d: réel; (discriminant) begin Writeln («Solving a quadratic equation»: 50); Ecrire (‘Entrez les valeurs des coefficients a, b, c:’); Readln (a, b, c); (entrée 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.

Les résultats du programme:

Résolution d'une équation quadratique

Entrez les valeurs des coefficients a, b, c: 3 1 6

L'équation n'a pas de racines.

Dans l'instruction If, vous pouvez utiliser non seulement une instruction composée, mais également toute instruction structurée. L'instruction conditionnelle If que nous avons considérée peut également être utilisée comme un tel opérateur. Dans ce cas, on parle d'instructions If imbriquées.

Exemple.

si condition alors
commencer Supports opérateur
opérateur; imbriqué
Instruction IF,
formulaire incomplet
si condition alors opérateur
opérateur else;
fin
autre
commencer Supports opérateur
opérateur; imbriqué
instruction IF,
formulaire incomplet
si condition
puis déclaration;
fin;

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

  • avant le mot réservé, sinon le symbole ";" jamais mis;
  • le mot réservé else est toujours associé au mot réservé alors précédent.

TÂCHE 3. Améliorons le programme de résolution de l'équation quadratique (PROBLÈME 2). Lorsque la valeur du coefficient a \u003d 0, l'équation dégénère. Ce fait n'a pas été pris en compte dans le programme, ce qui provoquerait une erreur fatale lors de l'exécution du programme (division par zéro). Afin d'exclure la division par zéro, nous vérifierons la valeur du coefficient a après sa saisie par l'opérateur Readln (a, b, c).

Puisque la variable a est déclarée dans le programme comme une variable de type réel, sa valeur numérique dans la machine n'est pas représentée exactement, avec une certaine erreur. Par conséquent, une entrée comme

Il existe plusieurs options pour une comparaison correcte des valeurs d'une variable réelle avec zéro:

TÂCHE 4. Solveur d'équations quadratiques avancé.

Programme a7; Var a, b, c: réel; (coefficients d'équation) x1, x2: réel; (racines de l'équation) d: réel; (discriminant) begin Writeln («Solving a quadratic equation»: 50); Ecrire (‘Entrez les valeurs des coefficients a, b, c:’); Readln (a, b, c); (saisir les cotes) si tour (a)<>0 puis commencer 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.

Les résultats du programme:

Résolution d'une équation quadratique Entrez les valeurs des coefficients a, b, c: 0 1 6 Division par zéro.

Instruction de sélection conditionnelle Case

L'opérateur de sélection est une généralisation de l'opérateur If et est utilisé dans les cas où un seul opérateur d'un ensemble d'opérateurs doit être exécuté, en fonction de la valeur de la touche de sélection.

En tant que touche de sélection, une expression est utilisée qui se trouve entre la casse et des mots réservés. Les expressions peuvent être de types entier, booléen et caractère. L'expression ne peut pas être de type Real, String.

Format opérateur:

Cas de "<ключ выбора>"constante1: opérateur 1; constante2: opérateur 2; constante3: opérateur 3; ... constanteN-1: opérateur N-1; constanteN: opérateur Nn; Sinon opérateur Fin;

Ici Case (au cas où), of (from), Else (autrement), End (end) sont des mots réservés.

La touche de sélection est une expression de tout type autre que Real et String.

Constant1 est une constante du même type que l'expression.

Operator1 est un opérateur arbitraire.

L'opérateur de sélection fonctionne comme suit. L'expression est évaluée en premier<ключ выбора> , puis dans la séquence d'opérateurs on en trouve un 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 termine son travail (le contrôle est transféré à la fin). Si aucune constante n'est trouvée dans la liste des constantes correspondant à la valeur calculée de la touche de sélection, le contrôle est transféré à l'opérateur derrière le mot Else.

Autre partie<оператора> peut être omis, alors si la constante requise est absente de la liste des constantes, rien ne se passe et l'opérateur de sélection termine simplement son travail.

TÂCHE 5. Ecrire un programme de calcul simple.

Programme a8; var x, y: réel; z: réel; (résultat) op: char; (touche de sélection) begin Write (‘Entrez les opérandes x, y:’); Readln (x, y); Écriture (‘Enter operation (+, -, *, /):’); 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 par zéro»); Else writeln («Aucune action fournie!»); fin; (op) (pour que vous puissiez marquer la fin de "dont") writeln (‘Result is \u003d’, z: 8: 2); fin.

Les résultats du programme:

Entrez les opérandes x, y: 4 2

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

Le résultat est \u003d 8,00

Dans le programme, la touche de sélection est une variable de caractère. En fonction de la valeur saisie des symboles (+, -, *, /), une des opérations arithmétiques est effectuée: addition, soustraction, multiplication ou division. Si zéro est entré comme diviseur, alors la division est impossible et le message "Division par zéro" s'affiche. Si un autre caractère est entré, le résultat sera le message "Aucune action fournie!" Si des opérations valides sont entrées, le résultat est renvoyé.

TÂCHE 6. Écrivez un programme qui demande à l'utilisateur le numéro du jour de la semaine, puis affiche le nom du jour de la semaine ou un message d'erreur si des données incorrectes sont saisies.

Programme a9; Var n: entier; (numéro du jour de la semaine) readln (n); cas n de 1: writeln («lundi»); 2: writeln («mardi»); 3: writeln («mercredi»); 4: writeln («jeudi»); 5: writeln («vendredi»); 6: writeln («samedi»); 7: writeln («dimanche»); sinon écrivez («vous vous trompez!») end; (n) fin.

Les résultats du programme:

Entrez le jour de la semaine: 1

Lundi

Aucune constante ne doit être la même qu'une autre. Si pour plusieurs constantes il est nécessaire d'exécuter le même opérateur, elles peuvent être répertoriées séparées par des virgules, par exemple

cas n de 1,3,5,7,9: writeln («Ce sont des nombres impairs»); 2,4,6,8,10: writeln («Ce sont des nombres pairs»); fin;

Il arrive que dans les programmes, il devienne nécessaire d'organiser le branchement. Dans ce cas, le processus de résolution du problème se produit sur la base de l'accomplissement ou du non-respect d'une condition.

Dans le langage Pascal, le choix de l'action, en fonction d'une certaine condition, peut être implémenté en utilisant la construction

si ... alors ... sinon ... si donc ...

2. Quelle est la forme complète de la branche conditionnelle si elle est en Pascal?

La forme complète de l'opérateur de saut conditionnel si :

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

L'action de l'opérateur est la suivante: d'abord, la valeur de l'expression est calculée état ... S'il est vrai (égal à TRUE), l'instruction qui suit le mot est exécutée puis (opérateur1 ). Si la valeur est FALSE, l'instruction qui suit le mot est exécutée autre(opérateur2 ).

Les opérateurs opérateur1 et opérateur2 peut être composé, c'est-à-dire contenir plusieurs lignes de code. Ces opérateurs sont placés entre crochets d'opérateurs. commencer… fin... Ce besoin se pose si après les mots réservés puis ou autre plusieurs opérateurs doivent être spécifiés.

Dans ce cas, la forme générale de l'opérateur de branche conditionnelle peut être, par exemple, la forme suivante:

si état puis commencer // plusieurs opérateurs ... fin autre commencer // plusieurs opérateurs ... fin;

3. Quelle est la forme abrégée de l'opérateur de succursale conditionnelle?

La forme abrégée de la branche conditionnelle ne contient pas de bloc autre et ressemble à:

si état puis opérateur;

Dans ce cas, l'opérateur fonctionne comme suit. Tout d'abord, la valeur de l'expression logique (booléenne) est calculée état ... Si le résultat d'une expression booléenne état vrai (égal VRAI ), puis l'opérateur qui suit le mot puis ... Si le résultat est FALSE, l'instruction qui suit l'instruction est exécutée si (dans l'opérateur si donc rien n'est exécuté).

Si, lorsque la condition est remplie, plusieurs opérateurs doivent être exécutés, alors la forme générale de l'opérateur de saut conditionnel peut être la suivante:

si état puis commencer // deux opérateurs ou plus ... fin ;

4. Exemples d'utilisation de l'opérateur de branche conditionnelle, qui a une forme complète de présentation.

Exemple 1. Fragment du programme pour trouver la valeur maximale entre deux nombres réels.

var a, b: réel; // a, b - variables pour lesquelles le maximum est recherché max: réel; // maximum ... commencer ... // a, b - ensemble si a\u003e b puis max: \u003d a autre max: \u003d b; ... fin ;

Exemple 2.

Un fragment du code du programme qui résout ce problème:

... var x, f: réel; commencer ... // x - ensemble si -5 puis f: \u003d x * x + 8 autre f: \u003d -x * x * x + 2; // dans la variable f - résultat ... fin ;

5. Exemples d'utilisation de l'opérateur de branche conditionnelle, qui a une représentation abrégée.

Exemple 1. Un extrait de code qui trouve la valeur minimale entre deux nombres réels x et y .

... var min: réel; ... commencer ... // x, y - donné min: \u003d x; si min puis min: \u003d y; ... fin ;

Exemple 2. Calcul de la valeur de la fonction en fonction de la condition. Qu'il soit nécessaire de trouver la valeur de la fonction:

var x, f: réel; commencer ... // x - donné si X<-6 puis f: \u003d 3 * x * x-x; si (-6 <=x) et (X<=5 ) puis f: \u003d sqrt (7 -x); si x\u003e 5 puis f: \u003d 8 * x-3; ... fin ;

LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam