Est le résultat de l’exécution d’une instruction. Opérateur conditionnel ? Restrictions d'utilisation des opérateurs

Dans le paragraphe précédent, nous nous sommes familiarisés avec la structure d'un programme en Pascal, avons appris à décrire des données et avons examiné l'opérateur d'affectation. C'est suffisant pour écrire un programme de conversion de données. Mais le résultat de ces transformations ne nous sera pas visible.

Pour sortir des données de mémoire vive L'opérateur de sortie d'écriture est utilisé sur l'écran du moniteur :

Ici, entre parenthèses, une liste de sortie est placée - une liste d'expressions dont les valeurs sont imprimées. Il peut s'agir d'expressions numériques, symboliques et logiques, comprenant des variables et des constantes.

Un ensemble arbitraire de caractères entourés d’apostrophes est considéré comme une constante de chaîne. Une constante chaîne peut contenir n’importe quel caractère tapé sur le clavier.

Exemple. L'instruction write ("s=" , s) est exécutée comme ceci :

  1. Les symboles entourés d'apostrophes sont affichés à l'écran : s=
  2. La valeur de la variable stockée dans une cellule RAM nommée s est affichée à l'écran.

Si la valeur de la variable s est 15 et qu'elle est de type entier, alors l'écran affichera : s=15.

Si la valeur de la variable s est 15, mais qu'elle est de type réel, alors apparaîtra à l'écran : s=l.5E+01.

Lorsque l'instruction de sortie est exécutée, tous les éléments de la liste de sortie sont imprimés immédiatement les uns après les autres. Ainsi, grâce à l'opérateur d'écriture (1, 20, 300), la séquence de nombres 120300 sera affichée à l'écran, qui sera perçue par nous comme le nombre 120300, et non comme trois constantes numériques distinctes. Vous pouvez rendre les données de sortie plus accessibles à la perception de différentes manières :

Format de sortie est un entier indiqué après les deux points qui détermine le nombre de positions sur l'écran que la valeur affichée doit occuper. S'il y a moins de chiffres dans un numéro que les positions qui lui sont réservées sur l'écran, alors les positions libres sont complétées par des espaces à gauche du numéro. Si le nombre spécifié dans le format de sortie après les deux points est inférieur à ce qui est nécessaire, il sera automatiquement augmenté jusqu'au minimum requis.

Pour générer un nombre réel au format virgule fixe, deux paramètres sont spécifiés dans la liste de sortie pour chaque expression :

  1. le nombre total de postes attribués pour le numéro ;
  2. le nombre de positions dans la partie fractionnaire du nombre.

Lorsqu'une nouvelle instruction d'écriture est exécutée, la sortie continue sur la même ligne. Pour passer à une nouvelle ligne, utilisez l'opérateur writeln. Il n'y a pas d'autres différences entre les instructions write et writeln.

4.2.2. Premier programme en langage Pascal

À l'aide des opérateurs évoqués ci-dessus, nous créerons un programme qui calcule la circonférence et l'aire d'un cercle d'un rayon de 5,4 cm.

La donnée initiale de ce problème est le rayon : r - 5,4 cm. Le résultat du programme devrait être les valeurs C - la circonférence et S - l'aire du cercle. C, S et r sont des quantités de type réel.

Les données initiales et les résultats sont liés par des relations connues du cours de mathématiques : C = 2πr, S = πr +. Un programme qui implémente des calculs à l'aide de ces formules ressemblera à :

Ce programme est correct et résout le problème. Lorsque vous l'exécuterez, vous obtiendrez le résultat suivant :

Néanmoins, le programme que nous avons compilé présente un inconvénient important : il trouve la circonférence et l'aire d'un cercle pour une seule valeur de rayon (5,4 cm).

Afin de calculer la circonférence et l'aire d'un cercle pour une valeur de rayon différente, vous devrez apporter des modifications directement au texte du programme, à savoir modifier l'opérateur d'affectation. Apporter des modifications à un programme existant n'est pour le moins pas toujours pratique (par exemple, lorsque le programme est volumineux et qu'il existe de nombreux opérateurs d'affectation). Ci-dessous, vous découvrirez un opérateur qui vous permet de saisir les données initiales pendant l'exécution du programme, sans modifier le texte du programme.

4.2.3. La saisie au clavier

Pour saisir des valeurs de variables dans la RAM, utilisez l'opérateur de saisie de lecture :

Lorsque l'instruction de lecture est exécutée, l'ordinateur passe en mode d'attente de données : l'utilisateur doit saisir les données à partir du clavier et appuyer sur la touche Entrée. Plusieurs valeurs pour les variables de type numérique peuvent être saisies séparées par des espaces ou des virgules. Lors de la saisie de variables de type caractère, les espaces et les virgules sont traités comme des caractères et ne peuvent donc pas être saisis.

La première valeur de variable saisie par l'utilisateur est placée dans l'emplacement mémoire dont le nom se trouve en premier dans la liste d'entrée, etc. Par conséquent, les types de valeurs d'entrée (flux d'entrée) doivent correspondre aux types de variables spécifiés dans la variable rubrique descriptif.

Exemple. Laisser

var i, j : entier ; x : réel ; a:char;

Attribuons les variables i, j, x et les valeurs 1, 0, 2,5 et "A". Pour ce faire, nous utiliserons l'opérateur read (i, j, x, a) et organiserons le flux d'entrée de l'une des manières suivantes :

Ici, nous avons non seulement utilisé divers délimiteurs (espace, virgule), mais avons également représenté le flux d'entrée sous la forme d'une, deux et quatre lignes.

Vous pouvez également utiliser l'opérateur readln pour saisir des données à partir du clavier, qui diffère de l'opérateur read uniquement en ce sens qu'après son exécution, le curseur se déplace vers une nouvelle ligne.

Améliorons le programme n_1 en y organisant la saisie des données à l'aide de l'opérateur de lecture. Et pour que l'utilisateur sache à quoi est destiné le programme et comprenne quelle action l'ordinateur attend de lui, nous afficherons le correspondant des messages texte en utilisant l'opérateur writeln :

Le résultat du programme amélioré :

Notre programme peut désormais calculer la circonférence et l'aire d'un cercle pour n'importe quelle valeur de r. En d’autres termes, cela ne résout pas un seul problème, mais toute une classe de problèmes. De plus, le programme organise de manière claire et pratique la saisie des données initiales et la sortie des résultats obtenus. Cela garantit une interface utilisateur conviviale.

Le plus important

Pour saisir des valeurs de variables dans la RAM, les opérateurs d'entrée read et readln sont utilisés.

Pour sortir les données de la RAM vers l'écran du moniteur, les opérateurs de sortie write et writeln sont utilisés.

La saisie des données initiales et la production des résultats doivent être organisées de manière claire et pratique ; cela garantit une interface utilisateur conviviale.

Questions et tâches

  1. Écrivez une instruction qui vous permet de saisir la valeur de la variable summa pendant l'exécution du programme.
  2. Les variables entières i, y, k doivent recevoir respectivement les valeurs 10, 20 et 30. Notez l'instruction d'entrée correspondant au flux d'entrée :
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Décrivez les variables nécessaires pour calculer l'aire d'un triangle en fonction de ses trois côtés et rédigez une instruction qui fournit les données d'entrée requises.
  4. Quel est le résultat de l’exécution de l’instruction ?
      a) écrire (a)
      b) écrire (1 a ")
      c) écrire (1 a=1, a)
  5. De quel type est la variable f si, après avoir exécuté l'instruction write (f), le numéro suivant était affiché à l'écran ?
      une) 125
      b) 1,25E+2
  6. Comment afficher un nombre réel au format virgule fixe ?
  7. Notez les opérateurs permettant de saisir deux nombres et de les afficher dans l'ordre inverse.
  8. Voici un fragment du programme :

    lire un); lire(b); c:=a+b; écrire(a, b); écrire (c)

    Simplifiez-le en réduisant le nombre d'instructions d'entrée et de sortie.

  9. Voici un fragment du programme :

    une :=10 ; b:=a+l : a:=b-a; écrire (a, b)

    Quels chiffres seront affichés sur l’écran de l’ordinateur ?

  10. Écrivez un programme qui calcule l'aire et le périmètre d'un rectangle en fonction de ses deux côtés.

Sortie de données
Sortie des données de la RAM vers l'écran du moniteur :
écrire
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
liste de sortie
Expressions - symboliques, numériques, logiques,
y compris les variables et les constantes
Exemple:
écrire("s=", s).
Pour s=15, l'écran affichera : s=15.
Les informations entre guillemets s'affichent à l'écran
sans changements

Options d'organisation de sortie
Option
organisation du retrait
Pas de séparateurs
Opérateur d'inférence
écrire (1, 20, 300).
Résultat
120300
Ajouter des délimiteurs write (1, ',' , 20,
– des virgules
’, ’, 300)
1, 20, 300
Ajouter des délimiteurs écrire (1, ‘ ‘, 2, ‘ ‘, 3)
- les espaces
1 20 300

Format de sortie
Le format de sortie vous permet de définir le nombre de positions
sur l’écran occupé par la valeur affichée.
écrire(s:x:y)
x - le nombre total de postes attribués pour le numéro ;
y - le nombre de positions dans la partie fractionnaire du nombre.
Opérateur d'inférence
Résultat de l'exécution
opérateur
écrire('s=', s:2:0);
s=15
écrire('s=', s:3:1);
s=15,0
écrire('s=', s:5:1);
s=
écrire
15.0
- sortie d'une nouvelle ligne !

Premier programme
programme n_1 ;
const pi = 3,14 ;
var r, c, s : réel ;
commencer
r: = 5,4 ;
c:=2*pi*r;
Résultat du programme :
s:=pi*r*r;
writeln("c="", c:6:4);
écrire("s=", s:6:4)
TurboPascal
Version 7.0
fin.
c = 33,9120
s =91,5624

La saisie au clavier
Saisie des valeurs des variables dans la RAM :
lire
(<имя переменной1>, …, <имя переменной N>)
liste d'entrée
Exécution de l'instruction read :
1) l'ordinateur passe en mode veille de données :
2) l'utilisateur saisit les données au clavier :
plusieurs valeurs de variables
des types numériques peuvent être saisis
séparé par un espace ou une virgule ;
lors de la saisie de variables de caractères
Les espaces et les virgules ne peuvent pas être utilisés ;
3) l'utilisateur appuie sur la touche Entrée.

La saisie au clavier
!
Les types de valeurs d'entrée doivent correspondre
types de variables spécifiés dans la section description
variables.
var i, j : entier ; x : réel ; a : char ;
lire(i, j, x, a);
options d'organisation du flux d'entrée :
1 0 2,5 A 1,0 1
2.5, UN 0
2.5
UN
Une fois l'instruction readln exécutée, le curseur se déplace vers
nouvelle ligne.

Programme amélioré
programme n_1 ;
const pi = 3,14 ;
var r, c, s : réel ;
commencer
writeln("Calculer la circonférence et l'aire d'un cercle");
write("Entrez r>>");
readln(r);
c:=2*pi*r;
Résultat du programme :
s:=pi*r*r;
writeln("c="", c:6:4);
Pascal Version 7.0
writeln("s=", s:6:4) Turbo
Calculer la circonférence et l'aire d'un cercle
Entrez r >> 8,5
fin.
c =53,3800
s =226,8650

Le plus important
Pour saisir des valeurs de variables dans la RAM
Les opérateurs d'entrée read et readln sont utilisés.
Pour afficher les données de la RAM sur l'écran
Le moniteur utilise les opérateurs de sortie write et writeln.
La saisie des données initiales et la sortie des résultats doivent
être organisé de manière claire et pratique ; cela garantit
convivialité de l'interface utilisateur.

Questions et tâches
1) Étant donné un fragment de programme :
une :=10 ; b:=a+1 : a:=b–a ; écrire (a, b)
Quels chiffres seront affichés sur l’écran de l’ordinateur ?
2) Décrire les variables nécessaires au calcul
l'aire d'un triangle le long de ses trois côtés, et
rédiger une déclaration fournissant une contribution
données initiales nécessaires.
3) Quel est le résultat de l’exécution de l’instruction ?
a) écrire (a)
b) écrire("a")
c) écrire("a=", a)
4) Les variables entières i, j, k doivent être attribuées
respectivement, les valeurs sont 10, 20 et 30.
Notez l'instruction d'entrée correspondant à l'entrée
flux:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Opérateur est un élément de langage qui spécifie une description complète de l'action à effectuer. Chaque opérateur est une phrase complète d'un langage de programmation et définit une étape complètement terminée du traitement des données. Les opérateurs peuvent inclure des mots de fonction, des données, des expressions et d'autres opérateurs. DANS langue anglaise ce concept désigné par le mot « déclaration », qui signifie également « proposition ».

Chaque opérateur dans n'importe quel langage de programmation a un syntaxe Et sémantique. Sous syntaxe l'opérateur est compris comme un système de règles (grammaire) qui détermine son enregistrement à l'aide des éléments de l'alphabet de cette langue, qui, à côté de divers symboles, comprend, par exemple, des mots de fonction. Sous sémantique l'opérateur comprend sa signification, c'est-à-dire les actions qui correspondent à l'enregistrement d'un opérateur particulier. Par exemple, enregistrez je:= je + 1 est un exemple de notation syntaxiquement correcte opérateur d'assignation en langage Pascal dont la sémantique dans ce cas est la suivante : extraire la valeur de la cellule mémoire correspondant à la variable i, l'ajouter à un, et écrire le résultat dans la même cellule mémoire.

Dans la plupart des langages de programmation procédurale, l'ensemble des opérateurs est presque le même et se compose d'un opérateur d'affectation, d'opérateurs de sélection, d'opérateurs de boucle, d'un opérateur d'appel de procédure et d'opérateurs de saut. Parfois, on distingue également les opérateurs vides (aucune action) et composés. De nombreux opérateurs sont un moyen de représenter certaines constructions algorithmiques (voir « Conceptions algorithmiques” ) dans un langage de programmation. Examinons plus en détail les groupes d'opérateurs en utilisant la syntaxe du langage Pascal.

Opérateur d'assignation

L'affectation est une action informatique à la suite de laquelle une variable reçoit la valeur d'une expression calculée (elle est placée dans la cellule mémoire correspondant à la variable). Pour décrire une telle action dans les langages de programmation, il existe opérateur d'assignation.

En général, l'opérateur d'affectation s'écrit ainsi :

<переменная> <знак присваивания> <выражение>

Par exemple, en Pascal, la combinaison de symboles est utilisée comme signe d'affectation : =. Dans un certain nombre d'autres langues, c'est un signe égal.

Le résultat de l'exécution de l'opérateur d'affectation est un changement dans l'état des données : toutes les variables autres que variable, situés sur le côté gauche de l'opérateur d'affectation, ne changent pas leur signification, mais la valeur spécifiée variable obtient la valeur expressions, apparaissant sur le côté droit de l’opérateur d’affectation. Dans la plupart des cas, il est nécessaire que le type expressions correspondait au type variable. Si ce n'est pas le cas, alors l'opérateur est soit considéré comme syntaxiquement incorrect, soit le type de l'expression est converti en type de variable (voir « Types de données” ).

Opérateurs de sélection

Ces opérateurs sont appelés différemment expressions conditionnelles. Les instructions conditionnelles sont utilisées pour programmer des algorithmes contenant une construction de branchement algorithmique.

Il existe plusieurs types d'instructions conditionnelles dans les langages de programmation. L'instruction conditionnelle complète correspond à la structure algorithmique du branchement complet :

Dans un langage de programmation, l'opérateur conditionnel correspondant a la forme :

si B alors S1 autre S2

Si l'expression B, qui est calculé au début de l'exécution de l'instruction conditionnelle, a la valeur « true », alors l'instruction sera exécutée S1, sinon - opérateur S2. Les opérateurs S1 Et S2 peut être composé.

La structure algorithmique du branchement incomplet est implémentée à l'aide d'un opérateur conditionnel incomplet, qui a la forme :

si B alors S

Ici B est une expression logique, et S- opérateur arbitraire. Opérateur S sera exécuté si l’expression B est vraie.

Si un opérateur conditionnel implémente seulement deux branches de choix (« oui » et « non »), alors en utilisant opérateur de variante (cas-opérateur), vous pouvez programmer une structure multi-branches. L'opérateur de variante ressemble à :

cas E de

Effectué cet opérateur comme ceci : le sens de l'expression E recherché parmi les valeurs répertoriées dans la fiche de l'opérateur V1, V2, …, Vn, et si une telle valeur est trouvée, alors l'opérateur correspondant est exécuté S1, S2, …, Sn.

Dans différents langages de programmation, la syntaxe et même la sémantique des opérateurs répertoriés peuvent différer, mais les capacités fournies au programmeur par de telles constructions sont à peu près les mêmes.

Exemple 1. Dans l'article " Conceptions algorithmiques»2 un exemple d'écriture d'un algorithme pour résoudre une équation quadratique généralisée à l'aide de constructions de branchement a été donné. Voici un fragment d'un programme en Pascal qui implémente le même algorithme :

si une = 0 alors

si b = 0 alors

si c = 0 alors writeln("x - n'importe lequel")

autre writeln("pas de racines")

autreécrire(-c/b)

sinon commencer

D := b*b - 4*a*c ;

si D< 0 alors writeln("pas de racines")

sinon commencer

x1:= -b + carré(D);

x2:= -b - carré(D);

écrire(x1:0:2,""", x2:0:2)

Instructions de boucle

Les opérateurs de boucle implémentent des structures algorithmiques cycliques ; ils sont utilisés pour des actions répétées plusieurs fois. Dans de nombreux langages de programmation, il existe trois types d'opérateurs de boucle : « avec précondition », « avec postcondition », « avec paramètre ».

Une structure algorithmique nécessaire et suffisante pour programmer des boucles est une boucle « avec une précondition », on peut donc l'appeler le type principal de boucle. L'opérateur de boucle avec une précondition ressemble à :

tandis que B faire S

Opérateur S, pour lequel une boucle est créée pour une exécution répétée est appelé corps de la boucle. L'exécution d'un opérateur de boucle est réduite à l'exécution répétée du corps de la boucle jusqu'à la valeur de l'expression logique B vrai (jusqu'à ce qu'il devienne faux). En fait, des instructions de boucle similaires implémentent l'exécution répétée d'instructions conditionnelles. si B alors S, alors que la condition est vraie B.

Exemple 2. Considérons l'utilisation d'un tel opérateur de boucle pour calculer la somme des chiffres d'un nombre naturel N:

alors que N>0 commence

S:= S + N module 10;

N:=N div 10

Dans une boucle avec une postcondition, le corps de la boucle précède la condition B. Contrairement à une boucle avec une précondition, B est ici la condition de fin de boucle. L'opérateur de boucle avec postcondition en Pascal a la forme :

répéter S jusqu'à B

Avec cette organisation du cycle, le corps du cycle S doit être exécuté au moins une fois.

Dans presque tous les langages procéduraux, il existe opérateur de boucle avec paramètre. On peut le représenter schématiquement ainsi :

pour< variable > E1 à E2 étape E3 faire S

Voici le sens variable(paramètre de cycle) passe de la valeur de l'expression E1 à E2 par pas de E3. Pour chacune de ces valeurs d'un paramètre de boucle, l'opérateur est exécuté S. Dans le langage Pascal, la notion d'étape est absente dans la description de cet opérateur, et l'étape elle-même pour un paramètre de boucle entier peut être égale à 1 ou -1. L'opérateur « boucle avec paramètre » permet de programmer des boucles avec un nombre de répétitions spécifié. Il n'est pas adapté à la programmation de boucles itératives (dont le nombre de répétitions est inconnu à l'avance).

Opérateur d'appel de procédure

Dans l'article " Sous-programmes» décrit en détail ce type de sous-programme, comme les procédures. Les routines du langage de programmation standard incluses dans l'une des bibliothèques de routines, ainsi que les routines utilisateur décrites dans ce bloc, sont appelées à l'aide de l'opérateur appel de procédure:

<имя процедуры>(E1,E2,…,Fr)

Ici E1,E2,…,En sont des variables ou des expressions qui représentent paramètres réels accès à la procédure. Le plus couramment utilisé procédures standards sont des procédures d'entrée et de sortie de données (lecture et écriture en Pascal).

Appeler une procédure équivaut sémantiquement à exécuter le bloc décrit comme le corps de la procédure, après y avoir transmis les valeurs initiales de certaines variables (paramètres de valeur) ou remplacé les noms de certaines variables (paramètres de variable) par les noms des variables réelles spécifiées lors de l’appel de la procédure.

Exemple 3. Décrivons la procédure ABC :

procédure abc(a,b:entier; var c : entier) ;

Appeler cette procédure abc(2,3,x) équivaut à un bloc d'action :

Opérateurs de saut

L'opérateur le plus célèbre de ce groupe d'opérateurs est l'opérateur de saut inconditionnel. aller à. Si vous ajoutez à tout ou partie des énoncés de programme existants Mots clés, alors dans le programme il devient possible d'utiliser un opérateur de transition de la forme :

aller à<метка>

L'étiquette correspond dans ce cas au début de l'instruction à partir de laquelle l'exécution du programme doit continuer. Cet opérateur vous permet d'écrire des algorithmes dans un langage de programmation ayant une structure arbitrairement complexe. Mais souvent, le recours à une transition inconditionnelle est injustifié, car mène à la confusion, au mauvais programme lisible. Presque la seule utilisation significative de l'opérateur aller à est une sortie de plusieurs boucles imbriquées à la fois, par exemple lors du traitement de tableaux bidimensionnels.

Exemple 4. Supposons que nous devions déterminer si un tableau à deux dimensions a a un élément égal à 0 :

pour je:= 1 à N faire

pour j:= 1 à N faire

si a = 0 puis commence

1: si b alorsécrire("est") autreécrire("non");

Un programme développé selon les règles de la programmation structurée ne doit pas contenir d'opérateurs de saut inconditionnels. Le programme ci-dessus sans utiliser l'opérateur aller à peut être réécrit comme suit :

alors que non b et(je< N) commence

alors que non b et(j< N) commence

si une = 0 alors b:= vrai ;

si b alorsécrire("est") autreécrire("non");

Dans ce cas, le programme structuré est moins visuel que le programme avec aller à.

D'autres opérateurs de saut peuvent être définis dans les langages de programmation. Par exemple, en Pascal : casser(interruption anticipée de la boucle, passage à une instruction qui doit être exécutée après la fin de la boucle), continuer(achèvement anticipé de l'itération de la boucle en cours et transition vers la suivante), sortie(interruption anticipée du sous-programme, sortie de celui-ci), arrêt(interruption anticipée du programme, passage à sa fin). Des opérateurs similaires existent dans les langages C, C++ et Java.

Opérateur composé

Une instruction composée est un groupe d'instructions entourées de crochets d'opérateur (en Pascal - commencerfin; en C, C++ - (…).

L'opérateur composé a été introduit dans les langages de programmation pour faciliter la description des constructions du langage. Par exemple, en Pascal, la partie exécutable de chaque bloc (programme, procédure, fonction) est une instruction composée. De la même manière, le corps de tout opérateur de boucle est constitué d'un seul opérateur, peut-être composé. Une alternative à un opérateur composé peut être un mot de fonction indiquant la fin d'un opérateur particulier, par exemple : FIN SI en langage de base.

Le sujet « Opérateurs de langage de programmation » est généralement étudié uniquement dans le contexte d'un langage de programmation spécifique. Lors de sa réflexion, il est important de montrer le lien entre les constructions algorithmiques de base et les opérateurs : les constructions algorithmiques sont écrites dans un langage de programmation utilisant les opérateurs correspondants. L’exception, dans un sens, est la conception séquentielle ; elle détermine l’ordre linéaire des actions. Les actions dans un programme strictement linéaire sont implémentées uniquement par des instructions d'affectation et des instructions d'appel de procédure.

Au stade initial de l'apprentissage de la programmation, les écoliers sont confrontés à de nombreux problèmes. La première barrière psychologique qu’ils doivent surmonter est celle de l’apprentissage de l’opérateur d’affectation. L'une des tâches principales que vous devez résoudre avec vos élèves consiste à échanger les valeurs de deux variables. Vous pouvez demander aux écoliers de résoudre mentalement le problème de l'échange du contenu de deux tiroirs, par exemple un bureau. Généralement, à ce stade de la discussion, les élèves réalisent qu’une troisième case (variable) est nécessaire pour résoudre le problème. Cependant, lors de l'écriture de cet algorithme, ils confondent souvent dans quelle partie de l'opérateur d'affectation (gauche ou droite) une variable particulière doit apparaître.

Les erreurs dans l'écriture d'expressions arithmétiques et logiques résultent de la méconnaissance de la préséance des opérations utilisées dans l'expression. Dans le même temps, les opérations signifient non seulement l'arithmétique, mais aussi les opérations de comparaison et les connecteurs logiques, et en langage C l'opération d'affectation, ce qui est très inhabituel pour les écoliers. La situation est compliquée par le fait que dans différents langages de programmation, les mêmes opérations ont des priorités relatives différentes. Vous devez également faire attention à la correspondance entre les types de variables et l'expression sur les côtés gauche et droit de l'opérateur d'affectation (voir « Types de données”).

Lors de la maîtrise des opérateurs de sélection, il est utile de faire programmer aux étudiants un algorithme contenant une structure multi-branches, à la fois en utilisant une combinaison d'instructions conditionnelles et en utilisant un opérateur de sélection.

Exemple. Vers une variable entière N Entrez l'âge de la personne en années. Tapez la phrase « J'ai K ans», en remplaçant le mot années sur année ou de l'année en fonction du numéro K. Voici deux solutions à ce problème :

si(k module 100) dans

alors writeln("J'ai ",k," ans")

cas k module 10 de

0,5..9:writeln("J'ai ",k," ans");

1:writeln("J'ai ",k," ans");

2..4:writeln("J'ai ",k," ans");

var k, n : entier ;

readln(k); n:= kmod 10 ;

si(k module 100) dans

alors writeln("J'ai ",k," ans") autre

si n=1 alors writeln("J'ai ",k," ans")

si(n >=) et(n<= 4)

alors writeln("J'ai ",k," ans")

autre writeln("J'ai ",k," ans")

Lorsque l'on considère les opérateurs de boucle, il est utile de suggérer de programmer la même tâche de trois manières différentes en utilisant trois opérateurs de boucle, et vice versa, en fonction des conditions du problème, d'apprendre à déterminer quel opérateur de boucle est le plus approprié dans un cas particulier.

L'opérateur d'appel de procédure est simple à première vue. Ici, il est important d'expliquer les règles de transmission des paramètres aux procédures et fonctions, la différence entre les paramètres variables et les paramètres valeur (dans ce dernier cas, on peut transmettre non seulement le nom de la variable, mais aussi une constante ou même une expression du correspondant taper). Les paramètres formels et réels doivent correspondre dans leur type, mais pas dans leur nom, ce qui est loin d'être évident pour les étudiants.

L’étude du conditionnel et surtout de l’énoncé composé est une bonne occasion de parler aux étudiants du style d’écriture du programme. Il existe plusieurs manières courantes d'écrire des programmes structurés en Pascal, mais elles incluent toutes l'indentation pour s'adapter aux structures imbriquées. Important pour l'enregistrement des programmes et des commentaires.

Le code du programme est présenté sur la Fig. 4.3-9.

Option Strict On Option Explicit On Imports System.Math Public Class Form1 "Fonction pour saisir les coordonnées d'un point dans une TextBox Function vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "Procédure pour afficher le résultat dans un TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Fonction pour calculer la longueur d'un segment à partir des coordonnées de deux points Fonction publique Longueur du segment (ByVal x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "Procédure de calculer le périmètre et l'aire d'un triangle Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Longueur du segment (x1 , y1, x2, y2)"Appel de la fonction de calcul de la longueur du négatif. B = Longueur du segment (x2, y2, x3, y3) C = Longueur du segment (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Procédure de traitement de l'événement de clic sur le bouton Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x1 comme simple, x2 comme simple, x3 comme simple Dim y1 comme simple, y2 comme simple, y3 comme simple Dim par comme simple, Plo comme simple x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3 ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click (ByVal expéditeur As System.Object, _ ByVal e As System.EventArgs) Poignées Button2.Click End End Sub End Class

Exécuter l'application et obtenir des résultats

Le résultat est présenté sur la Fig. 4.3-10.

Preuve de l'exactitude du résultat

UNE =
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427 ; Рр = Р/2 = 3,414213 S= = 2


Questions de sécurité sur le sujet

«La structure des programmes, modules et procédures VB.

Outils de programmation pour les algorithmes de structure linéaire"

1. Qu'est-ce qu'un modèle mathématique ?

2. Quelles sont les principales étapes de la résolution de problèmes sur un ordinateur ?

3. Quelles étapes de résolution de problèmes informatiques sont effectuées sans la participation d'un ordinateur ?

4. Qu'appelle-t-on un modèle mathématique d'un objet ou d'un phénomène ?

5. Quelles sont les étapes séquentielles du processus de développement du programme ?

6. Qu'est-ce qu'un algorithme ?

7. Quelles propriétés de base un algorithme doit-il avoir ?

8. Quelles sont les manières de décrire les algorithmes ?

9. Quels symboles graphiques sont généralement représentés dans les diagrammes algorithmiques ?

10. Comment fonctionne l'interprète ?

11. Comment fonctionne le compilateur ?

12. Quel algorithme est dit linéaire ?

13. Quel algorithme est appelé cyclique ?

14. Quel algorithme est appelé branchement ?

15. Quelle est la différence entre transmettre les résultats de fonctions et de procédures ?

16. L’obtention d’un résultat plausible prouve-t-elle que le programme est correct ?

17. Quelles erreurs peuvent rester non détectées si vous ne vérifiez pas (visualisez, faites défiler) le programme ?

18. En quoi tester un programme est-il différent de le déboguer ?

19. Est-il possible de prouver l’exactitude d’un programme par des tests ?

20. A quelle étape du programme les résultats des tests de référence sont-ils calculés ?

21. Énumérez les principales étapes du processus de test.

22. Quelle est la différence entre les erreurs de syntaxe et les erreurs sémantiques ?

23. Qu'indique l'absence de messages d'erreur de syntaxe sur la machine ?

24. Quels types d’erreurs le traducteur n’est-il pas en mesure de détecter ?

25. Quel est le programme ?

26. A quelle étape ont lieu la recherche et l'élimination des erreurs dans le programme ?

27. Qu'est-ce qu'un système de programmation ?

28. Quelle est la procédure?

29. Quels sont les avantages d’un programme comportant des procédures ?

30. Quels outils de programmation procédurale sont disponibles en VB ?

31. Comment les données sont-elles échangées entre les procédures de programme individuelles ?

32. Quels sont les paramètres réels et formels ?

33. Comment passer en paramètre : une constante, une variable, une expression ?

34. Comment les variables globales sont-elles utilisées ?

35. Comment les variables locales sont-elles utilisées ?

36. Que sont les paramètres formels ?

37. Quels sont les paramètres réels ?

38. Que se passe-t-il lorsqu'une procédure est appelée ?

39. Comment passer des paramètres à une procédure ?

40. Quels paramètres sont transmis par valeur ?

41. Quels paramètres sont transmis à l'adresse ?

42. Que sont les outils de programmation procédurale ?

43. Quel est le résultat de l’exécution d’une fonction ?

44. Comment les variables individuelles doivent-elles être déclarées afin qu'elles soient locales au sein d'une fonction ?

45. Quelle instruction est utilisée pour quitter une fonction plus tôt ?

46. Qu'est-ce qui est contrôlé lors de l'appel de fonctions et de procédures ?

47. Comment déclarer les paramètres formels afin de transmettre un paramètre variable par valeur ?

48. Comment déclarer les paramètres formels afin de transmettre un paramètre variable à une adresse ?

49. Comment une procédure fonctionnelle est-elle appelée depuis le programme appelant ?

50. Quel pourrait être le résultat de la procédure ?

51. Quelle instruction est utilisée pour sortir prématurément d’une procédure ?

52. Où peut-on trouver les descriptions des fonctions et des procédures ?

53. Où sera disponible une variable déclarée via l'opérateur Public ?

54. Où peut-on situer l’opérateur privé ?

55. Qu'est-ce qu'un commentaire et les règles pour le rédiger ?

56. Quelles sont les valeurs des variables au début du programme ?

57. Pourquoi les procédures et les fonctions sont-elles décrites (définies) ?

58. Comment s’appellent les procédures ?

59. Comment s’appellent les fonctions ?


Informations connexes.





Haut