Cycle avec idole postcondition. Cycles et conditions dans le langage des idoles. Valeurs tabulaires et travailler avec elles

Boucles et branches imbriquées dans le système KUMIR

L'un des concepts fondamentaux de l'informatique est le concept d'algorithme. L'origine du terme « algorithme » lui-même est associée aux mathématiques. Ce mot vient d'Algorithmi - l'orthographe latine du nom de Muhammad al-Khwarizmi (787 - 850), un mathématicien exceptionnel de l'Orient médiéval. Dans son livre "On Indian Counting", il a formulé les règles d'écriture des nombres naturels à l'aide de chiffres arabes et les règles de leur manipulation dans une colonne.

À l'avenir, un algorithme a commencé à être appelé une prescription exacte qui détermine la séquence d'actions garantissant l'obtention du résultat souhaité à partir des données initiales.

L'algorithme peut être conçu pour être exécuté par un humain ou appareil automatique... Créer un algorithme, même le plus simple, est un processus créatif. Il est disponible exclusivement pour les êtres vivants, et Longtemps on croyait que seule une personne. Au XIIe siècle. une traduction latine de son traité mathématique a été faite, à partir de laquelle les Européens ont appris le nombre décimal système positionnel calcul et les règles de l'arithmétique pour les nombres à plusieurs chiffres. Ce sont ces règles que l'on appelait à l'époque des algorithmes.

La définition ci-dessus d'un algorithme ne peut pas être considérée comme stricte - il n'est pas tout à fait clair ce qu'est une "prescription précise" ou "une séquence d'actions qui garantit l'obtention du résultat souhaité". Par conséquent, plusieurs propriétés générales des algorithmes sont généralement formulées pour distinguer les algorithmes des autres instructions.

Ces propriétés sont :

Discrétion (discontinuité, séparation) - l'algorithme doit représenter le processus de résolution du problème comme une exécution séquentielle d'étapes simples (ou définies précédemment). Chaque action fournie par l'algorithme n'est effectuée qu'une fois l'exécution de la précédente terminée.

Certitude - chaque règle de l'algorithme doit être claire, sans ambiguïté et ne laisser aucune place à l'arbitraire. En raison de cette propriété, l'exécution de l'algorithme est de nature mécanique et ne nécessite aucune instruction ou information supplémentaire sur le problème à résoudre.

Efficacité (finité) - l'algorithme doit conduire à la solution du problème en un nombre fini d'étapes.

Caractère de masse - l'algorithme de résolution du problème est développé sous une forme générale, c'est-à-dire qu'il doit être applicable à une certaine classe de problèmes qui ne diffèrent que par les données initiales. Dans ce cas, les données initiales peuvent être sélectionnées dans une certaine région, appelée région d'applicabilité de l'algorithme.

Méthodes d'écriture d'algorithmes

Une variété d'outils sont utilisés pour enregistrer des algorithmes. Le choix d'un outil est déterminé par le type d'algorithme exécuté.

Il existe les principales méthodes d'écriture d'algorithmes suivantes :

- verbal lorsque l'algorithme est décrit en langage humain (naturel). Les langues nationales sont naturelles (russe, anglais, allemand, etc.) ;

- symbolique lorsque l'algorithme est décrit à l'aide d'un ensemble de caractères et est un programme (les programmes sont écrits à l'aide de langages de programmation) ;

- graphique lorsque l'algorithme est décrit à l'aide de l'ensemble images graphiques(diagramme).

Les méthodes d'enregistrement communément acceptées sontenregistrement graphique à l'aide de schémas fonctionnels etnotation des caractères avec l'aide d'un langage algorithmique - un programme.

À graphiquement les enregistrements sont établis sous forme de schémas fonctionnels, sur lesquels les différentes parties de l'algorithme sont indiquées à l'aide de symboles conventionnels (figures géométriques). Les éléments des schémas fonctionnels sont représentés sur la figure.

Système de programmation KUMIR

Lors de la maîtrise du sujet des algorithmes, nous utiliserons le système de programmation KUMIR.

Kumir (Set of Educational WORLDS) est un système de programmation conçu pour prendre en charge cours initiaux l'informatique et la programmation au collège et au lycée.

Le système Kumir utilise un langage algorithmique scolaire avec du vocabulaire russe et des exécuteurs intégrés Robot et Draftsman, etc.

Lors de la saisie d'un programme, Kumir surveille en permanence son exactitude, informant dans les champs du programme de toutes les erreurs qu'il trouve.

Lorsque le programme est exécuté en mode pas à pas, Kumir affiche les résultats des opérations d'affectation et les valeurs des expressions logiques sur les champs. Cela vous permet d'accélérer le processus de maîtrise des bases de la programmation.

Robot Graphiste

Performer graphique Robot permet de maîtriser les bases de la programmation et de comprendre le travail des principales structures algorithmiques.

Artiste graphiqueest un objet de contrôle. Un paquetnous le ferons avec vous.

Le robot interprète est dans certainsréglage de départ - un champ rectangulaire, divisé en cellules, entre lesquelles des murs peuvent se tenir.

Le robot peut se déplacer sur le terrain, en contournant les murs et en peignant les cellules. Le robot ne peut pas traverser le mur, mais il peut vérifier s'il y a un mur à côté. Le robot ne peut pas sortir de la zone de délimitation du champ.

R
OBOT peut exécuter des commandes
: haut, bas, droite, gauche, repeindre.

Le robot peut vérifier les conditions : haut libre, bas libre, droit libre, gauche libre, ajouter une particule ne pas inverse la condition. Pas libre d'en haut, pas libre d'en bas, pas libre à droite, pas libre à gauche.

Structures algorithmiques de base

    Il existe trois structures algorithmiques de base (constructions)-linéaire (suivant), ramifié et cycle, à partir duquel vous pouvez construire n'importe quel algorithme.Chaque structure algorithmique a un point d'entrée et un point de sortie.

    Nous écrirons des algorithmes à la fois sur le langage scolaire et sous forme de schémas fonctionnels.

Structure linéaire

Structure linéaire est l'organisation la plus simple des algorithmes - les commandes sont exécutées séquentiellement les unes après les autres

Exemple:

Structure cyclique (cycle)

    Structure cyclique (cycle) fournit l'exécution multiple des mêmes commandes. Il existe plusieurs types de structures cycliques.

    Toute structure cyclique a deux parties -titre et le corps de la boucle.

    L'ensemble des commandes qui se répètent lors de l'exécution de la boucle est appeléle corps du cycle.

    Titre détermine le nombre de répétitions du corps de la boucle.

Cycle pour le nombre de répétitions (fois)

nts N une fois que

<команда>

nœuds

N.-É. Exemple:

utilisation Robot
alg colonne

de bonne heure
.
nts 5 une fois que
... ... peindre
... ... en haut
.
nœuds

inconvénient

Boucle avec précondition (pour l'instant)

(entrée dans langage algorithmique)

nts tandis que <условие>

<команда>

À c

Exemple:

utilisation Robot
alg Ligne

de bonne heure

nts tandis que libre d'en haut
peindre
en haut
nœuds

inconvénient

Boucle avec postcondition (at)

(écrit en langage algorithmique)

m c

<команда>

kts_with <условие>

Exemple:

utilisation Robot
alg Ligne

de bonne heure
nts

peindre; en haut

kts_with laissé librement

inconvénient

Structure ramifiée.

    Structure ramifiée. Certaines tâches nécessitent différentes actions en fonction du respect de certaines conditions. Dans de tels cas, on parle de branchement de l'algorithme.

    Pour mettre en œuvre la structure de "branchement", deux équipes structurées de l'école AY sont utilisées - si et un choix, chacune pouvant être complète et incomplète.

    Dans les schémas fonctionnels et l'école AY<условие>- c'est Expression booléenne, ce qui peut donner l'une des deux valeurs possibles -vrai ou Couché. Dans la langue scolaire, ces valeurs sont enregistrées comme oui et non. Dans les langages de programmation, les valeurs sont souvent utiliséesVrai et Faux... L'ordinateur stocke ces valeurs sous la forme 1 et 0.

Branchement complet

(écrit en langage algorithmique)

e si <условие>
. .
alors <команда1>
. .
autrement <команда2>
tous

Exemple:

utilisation Robot
alg branche_pleine

de bonne heure
.
si libre d'en haut
. .
alors en haut
. .
autrement descente
.
tous

inconvénient

Branchement incomplet

(écrit en langage algorithmique)

e si <условие>
. .
alors <команда1>
tous

Exemple:

utilisation Robot
alg branche_incomplète

de bonne heure
.
si libre d'en haut
. .
alors en haut
.
tous

inconvénient

Algorithme auxiliaire (procédure)

    L'algorithme par lequel certaines sous-tâches du problème principal sont résolues et qui, en règle générale, est exécutée de manière répétée, est appelé algorithme auxiliaire.

    Un algorithme auxiliaire écrit dans un langage de programmation est appelé sous-programme ou procédure.

    L'algorithme d'assistance est appelé à partir du programme principal via le nom. L'algorithme auxiliaire est écrit après l'algorithme principal. Ont algorithme auxiliaire il doit y avoir un nom.

utilisation Robot
alg
de bonne heure
descente

carré
descente

descente
inconvénient

carré alg
de bonne heure

peindre

À droite

peindre

descente

peindre

À gauche

peindre
inconvénient

Boucles et branches imbriquées

Lors de la résolution de certains problèmes avec un robot, il est nécessaire d'utiliser des boucles ou des branches imbriquées.

C Un icl est dit imbriqué s'il est imbriqué dans une autre boucle.

Regardons une boucle imbriquée en utilisant une boucle pour l'instant comme exemple.

Nous savons que la boucle consiste en un en-tête de boucle qui définit le nombre de fois que le corps de la boucle sera répété.

Le corps de la boucle est la partie de la boucle qui se répète lorsque la boucle est exécutée.

Le corps d'une boucle peut être une commande, plusieurs commandes ou une autre boucle ou branche.

Dans le cas où le corps de la boucle est une autre boucle ou branche, elles sont dites imbriquées.

Boucle imbriquée

Lors de la première passe, la boucle externe appelle la boucle interne, qui est exécutée jusqu'à ce qu'elle se termine, après quoi le contrôle est transféré au corps de la boucle externe. Au deuxième passage, la boucle externe appelle à nouveau la boucle interne. Et ainsi de suite jusqu'à la fin du cycle extérieur.

Branche imbriquée

Considérez la solution à un problème avec les branches et les boucles imbriquées :

Problème 1 Le robot est sur un mur avec des trous, se déplaçant le long du mur vers la droite, le robot doit peindre sur toutes les cellules où il y a des trous.

utilisation Robot alg de bonne heure
.
nts tandis que sur la droite avec librement
nts tandis que d'en bas librement
repeindre;
À droite
. .
nœuds
... ... À droite
.
nœuds inconvénient AVEC
Laissons l'algorithme pour résoudre le problème avec une boucle extérieure pour l'instant et une boucle imbriquée pour l'instant.

R Nous résolvons le même problème en utilisant une boucle externe pour le moment et des branchements imbriqués.

Résolvons le même problème en utilisant la boucle externe at et la boucle imbriquée pour le moment.

Connaissance du programme Kumir maîtrisant les bases de la programmation.

Dans ce document, les étudiants peuvent acquérir des compétences pratiques dans la création et le débogage d'un algorithme, en travaillant avec des artistes tels que Robot, Draftsman, Aquarius, Grasshopper, Turtle.

Lors de l'étude de l'une des sections les plus difficiles de l'informatique "algorithmes et programmation".

Objectif du développement :

Télécharger:


Aperçu:

Développement méthodique en informatique.

Sujet : "Robot performeur dans le programme Kumir en cours d'informatique"

professeur de technologie "Informatique et TIC"

Note explicative

Objectif de développement: étudier les possibilités de programmation sur l'exemple d'un robot exécuteur spécifique utilisant l'environnement IDC ; pour donner des compétences pratiques dans le travail avec l'interprète.

Développement méthodiquecompilé pour les cours d'informatiquePratique sur l'ordinateur: travailler avec le formateur exécuteur d'algorithmes ; compilation d'algorithmes de contrôle linéaire, de branchement et cyclique pour l'exécuteur ; compilation d'algorithmes à structure complexe; l'utilisation d'algorithmes auxiliaires (procédures, sous-programmes).

Les étudiants doivent savoir :

  • qu'est-ce qu'un interprète ; SKI Robot, environnement de robot performeur ;
  • qu'est-ce qu'un algorithme ;quelles sont les principales propriétés de l'algorithme ;
  • méthodes d'écriture d'algorithmes : schémas fonctionnels, langage algorithmique pédagogique ;constructions algorithmiques de base : suite, branchement, boucle ; structure
  • algorithmes; ?? affectation d'algorithmes auxiliaires; technologies pour construire des algorithmes complexes :

Les étudiants doivent être capables de :

  • comprendre des descriptions d'algorithmes dans un langage algorithmique pédagogique ;
  • tracer l'algorithme d'un artiste bien connu ;
  • composer des algorithmes de contrôle linéaire, de branchement et cyclique pour l'exécuteur Robot ; mettre en évidence les sous-tâches ; définir et utiliser des algorithmes d'aide.

Leçon 1 (2 heures) Leçon 1.

Robot artiste.Système de commandement de l'exécuteur.

Plan de cours.

  1. Description du SKI du performeur, de l'environnement du performeur.

2. Analyse des algorithmes typiques du Robot.

Pendant les cours.

Considérez la description de l'interprète.

Environnement d'artiste: Performer Le robot est capable de naviguer dans un labyrinthe dessiné sur un plan divisé en cellules.

SKI Robot : commandes simples: haut, bas, gauche, droite, repeindre.

Commandes booléennes : (contrôle de condition)

haut gratuit bas gratuit

gauche libre droit libre.

Connecteurs logiques : ET, NON, OU :

Exemple : (Pas laissé libre) ou (Pas droit libre)

Commande de branche: commande de boucle :

Si l'état puis nts tant que condition

Série de commandes Série de commandes

tous les nœuds

(Dans les CMM 2009, les commandes Robot différaient de celles auxquelles elles étaient habituées pour les enfants, ce qui a conduit à confusion :)

Commande de branche: commande de boucle :

Si l'état alors nts alors que la condition est de faire

Série de commandes Série de commandes

fin fin

Vue générale de la fenêtre du programme Kumir. Environnement graphique du Robot :

Dans les CMM de la version démo 2010, le format de commande a été changé en habituel

Procédure de création de l'algorithme :

1.Équipes Outils -Modifier l'environnement de démarragedessinez des murs sur le champ Robot et placez le Robot dans sa position initiale.

2.Équipes Robot - Changer l'environnement de départgarder le nouvel environnement.

3.Équipes Insérer - Utiliser le robotpréciser l'exécuteur.

4.Dans la fenêtre du document, notez l'algorithme à l'aide du menu Insérer.

5. À l'aide des commandes d'exécution - exécutez-les en continu (ou pas à pas) pour exécuter l'algorithme.

6. Considérez le résultat de l'algorithme et, si nécessaire, déboguez-le.

Leçon 1 (2 heures) Leçon 2.

Travaux pratiques "Elaboration d'algorithmes linéaires".

Tâches : 1. Robot à un point arbitraire du champ. Peignez la cellule au-dessus, en dessous et à droite de la position d'origine.

  1. Un robot à un point arbitraire du champ. Déplacez les cellules Robot 4 vers la droite en peignant dessus.
  2. Créez un nouvel environnement de départ en dessinant un carré avec un côté de 4 cellules au tableau. Enregistrez le paramètre comme point de départ.
  3. Créez un nouvel environnement de départ en dessinant un couloir avec des passerelles dans les murs du terrain. Enregistrez le mobilier sous le nom obst2.fil. Remplacez l'environnement de départ par celui qui vient d'être créé.

Leçon 2 (2 heures) Leçon 1.

Thème : Branchement et raffinement séquentiel de l'algorithme.

Analyse des tâches CMM à l'aide de Robot performer.

utiliser Robot

alg kim 2009

de bonne heure

sinon libre d'en bas

alors à droite

tous

sinon libre d'en bas

alors à droite

tous

sinon libre d'en bas

alors à droite

tous

inconvénient

utiliser Robot

alg kim 2010

de bonne heure

sinon libre d'en bas

alors à droite

tous

sinon libre d'en bas

alors à droite

tous

sinon libre d'en bas

alors à droite

tous

inconvénient

NS. trimer. N° 14. Compilation et débogage d'algorithmes de branchement

Tâches. Voir pièce jointe.

Lecon 3. Algorithmes cycliques. Leçon 1-2

Cible: révéler l'essence du concept de cycle dans les algorithmes, montrer les formes d'enregistrement des cycles dans les algorithmes, donner les compétences de création et d'enregistrement d'algorithmes cycliques.

NS. trimer. N° 15. Compilation et débogage d'algorithmes cycliques

1. Créez un algorithme qui peint toutes les cellules intérieures adjacentes au mur.

utiliser Robot

alg

de bonne heure

nts tandis que sur la droite est libre

peindre; À droite

nœuds

nts jusqu'à ce que le bas soit libre

peindre; descente

nœuds

nts jusqu'à ce que le bas soit libre

peindre; À gauche

nœuds

inconvénient

2. Créez un algorithme qui peint toutes les cellules entre le robot et le mur. La distance au mur est inconnue.

utiliser Robot

alg

de bonne heure

nts tandis que sur la droite est libre

À droite; peindre

nœuds

inconvénient

3. Créez un algorithme qui peint toutes les cellules entre les deux murs.

utiliser Robot

alg uch3

de bonne heure

nts jusqu'à (pas d'en haut librement) ou (pas d'en bas librement)

À droite

si (pas libre d'en haut) et (pas d'en bas libre)

alors

peindre

tous

nœuds

inconvénient

4. Créez un algorithme qui peint toutes les cellules autour du mur rectangulaire.

alg uch4

de bonne heure

peindre; jusqu'à

nts pas encore libre

peindre dessus;

nœuds

peindre; à droite

nts jusqu'à ce que le bas soit libre

peindre par-dessus, à droite;

nœuds

peindre; vers le bas

nts pas encore laissé libre

peindre dessus;

nœuds

peindre; à gauche

nts jusqu'à ce que le sommet soit libre

peindre; À gauche;

nœuds

inconvénient

utiliser Robot

alg uch5

de bonne heure

À droite

nts jusqu'à ce que le bas soit libre

peindre; À droite

nœuds

peindre; descente

nts si loin sur la gauche est gratuit

peindre; À gauche

nœuds

nts pas encore laissé libre

peindre; descente

nœuds

peindre; à gauche; peindre; en haut;

nts jusqu'à ce que le sommet soit libre

peindre; en haut

nœuds

nts jusqu'à ce que le sommet soit libre

peindre; À gauche

nœuds

inconvénient

Leçon 4 Leçon 1

Algorithmes d'aide.

Cible: introduire le concept des algorithmes principaux et auxiliaires; expliquer les règles d'utilisation de l'algorithme auxiliaire ; désassembler des exemples d'algorithmes à l'aide de l'auxiliaire.

Plan de cours

1. Introduction de nouveaux termes (algorithme principal et auxiliaire, appel) et explication de nouveaux concepts.

2. Analyse d'exemples de résolution de problèmes à l'aide d'un algorithme auxiliaire.

Lors de la résolution de certains problèmes, il est pratique de les décomposer en sous-tâches plus petites, chacune pouvant être formalisée en tant qu'algorithme indépendant. Dans ce cas, tout d'abord, un algorithme dit principal est élaboré, dans lequel des appels d'algorithmes auxiliaires sont utilisés pour résoudre des sous-tâches, qui sont ajoutées ultérieurement. Cette solution s'appellepar la méthode du raffinement séquentiel.Il permet à un groupe de programmeurs de travailler sur un projet, chacun résolvant sa propre sous-tâche.

Dans le processus de résolution du problème, chaque algorithme auxiliaire peut, si nécessaire, être divisé en algorithmes auxiliaires plus petits.

La commande d'exécution de l'algorithme auxiliaire est appelée défi et est écrit dans le corps de l'algorithme principal.

Un même algorithme peut être considéré comme principal et auxiliaire par rapport aux autres algorithmes. Dans un langage algorithmique, l'algorithme principal est d'abord écrit, suivi des auxiliaires ci-dessous.

Tache 1:

Le robot est dans le coin supérieur gauche du champ. Il n'y a pas de murs ou de cellules peintes. Créez un algorithme en utilisant un auxiliaire qui dessine quatre croix sur une ligne horizontale. La position finale du Robot peut être arbitraire.

Solution

Analyse au tableau :

Tâche 2. Le robot est dans le coin supérieur gauche du champ. Il n'y a pas de murs ou de cellules peintes. Créez un algorithme qui colore en damier un carré de 8 x 8. La position finale du robot peut être arbitraire.

Leçon 4 Leçon 2

Travaux pratiques sur PC "Résoudre le problème à l'aide d'algorithmes auxiliaires".

Cible : inculquer des compétences pratiques dans la construction d'algorithmes par la méthode du raffinement séquentiel.

Plan de cours

1. La tâche se déroule complètement sur le PC. Les étudiants reçoivent des devoirs et les effectuent dans l'environnement logiciel Kumir. Résultats Le travail est enregistré sous forme de fichiers pour une vérification ultérieure.

Tache 1 ... Le robot est dans le coin inférieur gauche du champ. Il n'y a pas de murs ou de cellules peintes. Créez un algorithme qui peint 6 bandes verticales de même longueur dans 6 cellules. La position finale du Robot peut être arbitraire.

Tâche2 En utilisant les auxiliaires, créez un algorithme pour peindre les cellules qui forment le nombre 1212.

Devoirs: Trouvez un algorithme qui dessine l'image suivante : Pour résoudre le problème, appliquez deux algorithmes auxiliaires.

Leçon 5 Leçon 1-2

Test

"Elaboration d'un algorithme dans l'environnement de l'exécuteur Robot."

Cible: vérifier les connaissances acquises sur la création et la capacité à analyser des algorithmes dans l'environnement logiciel Kumir.

Missions pour travail d'essai sont divisés par niveaux de difficulté et comprend 3 tâches avec l'exécuteur Robot (1 et 2 tâches - pour les branchements et les boucles, 3 tâches avec - pour l'utilisation d'un algorithme auxiliaire.) Les textes des tâches sont donnés en annexe.

Les réglages initiaux et finaux et les algorithmes créés sont enregistrés dans un fichier.

La note est établie en fonction du niveau de difficulté de la tâche. L'étudiant a le droit de choisir lui-même le type de travail.

Et aujourd'hui, nous allons parler de cycles. Voyons ce qu'est un cycle et comment apprendre à exécuter les algorithmes cycliques de notre robot.

Donc, qu'est-ce qu'un cycle? Imaginez que nous sommes dans une leçon d'éducation physique et que nous sommes confrontés à une tâche faire 7 squats... Cette tâche peut être formulée comme un algorithme linéaire et ressemblera alors à ceci :

faire un squat

faire un squat

faire un squat

faire un squat

faire un squat

faire un squat

faire un squat

C'est-à-dire que nous avons répété la commande de squat 7 fois. Est-il judicieux d'écrire 7 commandes identiques ? Il peut être plus facile de donner une commande faire 7 squats? Bien sûr, c'est plus facile et plus correct. C'est le cycle... Vous vous souvenez vous-même d'exemples de cycles de la vie - il y en a pas mal.

Ainsi algorithme linéaire , où les mêmes commandes sont répétées, nous pouvons émettre comme algorithme cyclique - comme ça:

répéter 7 fois

faire un squat

fin de cycle

Donc, dans le langage que nous avons inventé, nous avons conçu le cycle. L'interprète Robot a également la capacité d'enregistrer des boucles. De plus, les cycles sont différents... L'option que nous venons d'envisager s'appelle contre-cycle ou boucle avec paramètre.

Types de cycles.

Boucle avec compteur.

Cycle avec compteur il est utilisé lorsqu'on sait à l'avance combien de répétitions doivent être effectuées. Dans l'exemple de squat ci-dessus, c'est exactement le cas.

Afin d'écrire une boucle avec un compteur pour l'exécuteur, vous devez connaître sa syntaxe. Et il est comme ça :

nts<nombre de répétitions> fois

<команда 1>

<команда 2>

<команда n>

Ici, nous devons indiquer le nombre de répétitions (nombre) et les commandes qui seront répétées. Les commandes qui sont répétées dans la boucle sont appelées corps du cycle.

Voyons cela avec un exemple.

Initialement, le Robot était dans la cage supérieure gauche.

Commençons par résoudre le problème de manière linéaire. Dans ce cas, nous allons peindre sur la cellule actuelle et déplacer 1 cellule vers la droite, et le programme ressemblera à ceci :
utiliser Robot
alg
de bonne heure

peindre

À droite

peindre

À droite

peindre

À droite

peindre

À droite

peindre

À droite

peindre

À droite

peindre

À droite

Comme vous pouvez le voir, les commandes pour peindre par-dessus et à droite sont répétées 7 fois. Réécrivons maintenant le programme en utilisant une boucle. D'ailleurs, pour insérer un cycle dans votre programme, vous pouvez aller dans le menu Insérer sélectionner un article nts-une fois-kts ou appuyez sur l'une des combinaisons de touches Échap, P(lettre russe P) ou Échap, H(lettre latine H). de plus les touches doivent être enfoncées séquentiellement- d'abord Esc, relâchez-le et ensuite seulement P ou H.

Donc notre programme en boucle ressemblera à ceci :

utiliser Robot

nts 7 fois

peindre

À droite

Si nous l'exécutons, nous verrons que le résultat est le même - 7 cellules remplies. Cependant, le programme est devenu plus court et beaucoup plus alphabétisé d'un point de vue algorithmique !

En guise d'échauffement et de consolidation, je propose d'écrire indépendamment un programme pour le Robot, qui dessinera un carré de 7 cellules de côté. Naturellement en utilisant une boucle. J'attends une solution dans les commentaires.

Boucle avec condition.

Lors de la résolution du problème 19 du GIA en informatique avec un robot, il ne fonctionnera pas d'utiliser une boucle avec un compteur. Étant donné que le champ y est généralement infini et que les murs n'ont pas une longueur spécifique. Par conséquent, nous ne pourrons pas déterminer le nombre de répétitions pour une boucle avec un compteur. Mais ce n'est pas grave - cela nous aidera boucle conditionnelle.

Revenons à l'éducation physique et changeons le problème. Après tout, quelqu'un peut ne pas faire 7 squats, alors qu'un autre est capable d'en faire 27. Cela peut-il être pris en compte lors de la création d'un cycle ? Bien sûr. Seulement maintenant nous n'utiliserons pas un compteur (nombre de répétitions), mais une condition. Par exemple, pendant que vous n'êtes pas fatigué, faites des squats. Dans ce cas, la personne ne fera pas un nombre spécifique de squats, mais s'accroupira jusqu'à ce qu'elle soit fatiguée. Et notre boucle dans un langage abstrait ressemblera à ceci :

tandis que pas fatigué

faire un squat

fin de cycle

Les mots ne sont pas fatigués dans notre cas - c'est une condition. Quand c'est vrai, la boucle est exécutée. S'il est faux (fatigué), le corps de la boucle ne sera pas exécuté. L'exécuteur Robot a plusieurs conditions

libre d'en haut

d'en bas librement

laissé librement

droit librement

mur supérieur

paroi inférieure

mur gauche

mur de droite

Mais dans la condition du problème 19 du GIA, seuls les 4 premiers sont indiqués, nous n'utiliserons donc que ceux-ci.

Résolvons maintenant le problème suivant pour le robot : tracez une ligne verticale de la bordure gauche à la droite du champ à l'aide d'une boucle conditionnelle. Initialement, le Robot est dans le coin supérieur gauche.

Formons d'abord un algorithme verbal - c'est-à-dire décrivons avec des mots ce que le robot doit faire. Cet algorithme ressemblera à ceci :

« À droite, faites librement un pas vers la droite et peignez par-dessus la cage »

En conséquence, le robot parcourra toutes les cellules à droite et les peindra jusqu'à ce que le mur soit à droite.

Le code source de notre programme Robot ressemblera à ceci :

utiliser Robot

nts tandis que sur la droite est libre

À droite

peindre

À la suite de l'exécution de ce programme, nous verrons l'image suivante :

Khirianov Timofey Fedorovitch

Les principales constructions algorithmiques, outre les opérations élémentaires représentées par un élément du circuit, sont l'exécution et les cycles alternatifs. Il existe deux options pour programmer l'exécution alternative et il existe trois types principaux de cycle.

Code exécutable conditionnellement

Certaines opérations peuvent être placées sous opérateur conditionnel... Alors elles ne seront remplies que si cette condition est vraie.

si<условие>
alors
<действия>
tous

Alternative

Dans un organigramme, un contrôle de condition peut servir de guide pour sélectionner des opérations alternatives. C'est-à-dire que si la condition est vraie, l'exécution suivra une trajectoire, et si elle est fausse, une autre. Dans la langue Kumir, un cycle avec une condition préalable a la forme suivante :

si<условие>
alors
<действия>
autrement
<альтернативные действия>
tous


Conditions pour le robot :
mur gauche
mur de droite
paroi inférieure
mur supérieur
la cellule est repeinte
laissé librement
droit librement
d'en bas librement
libre d'en haut
la cage est propre

Boucle avec précondition

Une boucle avec une précondition est une boucle qui est exécutée tant qu'une certaine condition spécifiée avant son début est vraie. Cette condition est vérifiée avant l'exécution du corps de la boucle, de sorte que le corps ne peut pas être exécuté une seule fois (si la condition est fausse dès le début). Dans la plupart des langages de programmation procédurale, il est implémenté par l'instruction while, d'où son deuxième nom - while-loop. Dans la langue Kumir, un cycle avec une condition préalable a la forme suivante :

au revoir<условие>
<тело цикла>
nœuds

Boucle avec postcondition

Une boucle avec une postcondition est une boucle dans laquelle la condition est vérifiée après l'exécution du corps de la boucle. Il s'ensuit que le corps est toujours exécuté au moins une fois. En Pascal, cette boucle implémente l'opérateur repeat..until, en C - do ... while.
Dans le langage Kumir, un cycle avec une postcondition a la forme suivante :

nts
<тело цикла>
kts_with<условие>

Cycle avec compteur

Une boucle avec un compteur est une boucle dans laquelle une variable change sa valeur d'une valeur initiale donnée à sa valeur finale avec un certain pas, et pour chaque valeur de cette variable, le corps de la boucle est exécuté une fois. Dans la plupart des langages de programmation procédurale, il est implémenté par l'opérateur pour, qui indique le compteur (la "variable de cycle"), le nombre de passages requis (ou la valeur limite du compteur) et, éventuellement, le pas avec lequel le compteur change. Dans le langage Kumir, une boucle avec un compteur ressemble à ceci :

intact
nts pour a de 0 à 9
... le corps de la boucle
nœuds

Différents langages de programmation résolvent le problème de la valeur d'une variable à la fin d'une boucle dans laquelle cette variable a été utilisée comme compteur de différentes manières.

Cartes de tâches

    Trouver parmi les n-entiers saisis au clavier le nombre de négatifs

    Deux nombres arbitraires sont donnés. Alors que leur produit est inférieur à 100, augmentez chaque nombre de 2 et affichez les nombres finaux sur le moniteur

    N-entiers sont entrés séquentiellement. Trouver le nombre de cinq dans une séquence

    N-entiers sont entrés séquentiellement. Trouver la différence entre les valeurs maximales et minimales de nombres donnés

    Trouver parmi les n-entiers saisis au clavier le nombre de négatifs

    Deux nombres arbitraires sont donnés. Alors que leur produit est inférieur à 100, augmentez chaque nombre de 2 et affichez les nombres finaux sur le moniteur

    N-entiers sont entrés séquentiellement. Trouver le nombre de cinq dans une séquence

    N-entiers sont entrés séquentiellement. Trouver la différence entre les valeurs maximales et minimales de nombres donnés

    Trouver parmi les n-entiers saisis au clavier le nombre de négatifs

    Deux nombres arbitraires sont donnés. Alors que leur produit est inférieur à 100, augmentez chaque nombre de 2 et affichez les nombres finaux sur le moniteur

    N-entiers sont entrés séquentiellement. Trouver le nombre de cinq dans une séquence

    N-entiers sont entrés séquentiellement. Trouver la différence entre les valeurs maximales et minimales de nombres donnés

    Trouver parmi les n-entiers saisis au clavier le nombre de négatifs

    Deux nombres arbitraires sont donnés. Alors que leur produit est inférieur à 100, augmentez chaque nombre de 2 et affichez les nombres finaux sur le moniteur

    N-entiers sont entrés séquentiellement. Trouver le nombre de cinq dans une séquence

    N-entiers sont entrés séquentiellement. Trouver la différence entre les valeurs maximales et minimales de nombres donnés