Befehle, die den Roboter ausführen können. Führungsroboter - Knowledge Hypermarket

Künstler-Roboter. GIA-Problemlösung

1. Der Roboter befindet sich in der oberen linken Ecke des umschlossenen Raums, der die Form eines Rechtecks ​​hat. Die Größe des Rechtecks ​​ist unbekannt. Irgendwo in der Mitte des Rechtecks ​​befindet sich eine vertikale Wand, die das Rechteck in zwei Teile teilt. Es gibt einen Durchgang in dieser Wand, und der Durchgang ist nicht die oberste oder unterste Zelle der Wand. Der genaue Ort der Passage ist ebenfalls unbekannt. Eine der möglichen Stellen der Wand und des Durchgangs darin ist in der Abbildung dargestellt.

Schreiben Sie dem Roboter einen Algorithmus, der den Roboter in die rechte untere Ecke des Rechtecks ​​bewegt (siehe Bild).

Zuerst müssen Sie den Roboter an die Wand bringen, indem Sie die Schleife mit der Bedingung verwenden. Dann halten Sie den Roboter vor dem Durchgang entlang der Wand, auch mit der Zustandsschleife. Dann halten Sie den Roboter mit zwei Zyklen mit Bedingungen in der rechten unteren Ecke.

2. Auf dem endlosen Feld befindet sich eine lange horizontale Wand. Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einer der Zellen direkt über der Wand. Die Ausgangsposition des Roboters ist ebenfalls unbekannt. Eine der möglichen Positionen des Roboters ist in der Abbildung dargestellt.

Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich oberhalb und außerhalb der Wand befinden, unabhängig von der Größe der Wand und der Ausgangsposition des Roboters. Für die Abbildung oben muss der Roboter beispielsweise die folgenden Zellen zeichnen:

Aufgaben für unabhängige Leistung:

1. Der Roboter befindet sich in der oberen linken Ecke des umschlossenen Raums, der die Form eines Rechtecks ​​hat. Die Größe des Rechtecks ​​ist unbekannt. Eine der möglichen Größen des Rechtecks ​​und die Position des Roboters ist im Bild dargestellt:

Schreiben Sie einen Algorithmus für den Roboter, der die vier Eckzellen des Rechtecks ​​übermalt. Der Roboter sollte nur die Eckzellen lackieren. Für das Bild oben muss der Roboter beispielsweise die folgenden Zellen zeichnen (siehe Bild):

2. Auf einem unendlichen Feld befindet sich eine vertikale Wand. Die Länge der Mauer ist unbekannt. Von der Oberkante der Wand geht die horizontale Wand, die auch unbekannter Länge ist, nach rechts. Eine senkrechte Wand mit unbekannter Länge geht vom rechten Rand der oberen Wand ab. Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter zu positionieren:

Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen rechts von der ersten vertikalen Wand und eine Eckzelle dazwischen malt horizontale Wand und rechte senkrechte Wand. Für die Abbildung oben muss der Roboter beispielsweise die folgenden Zellen zeichnen:

VARIANTE 1

Auf dem unendlichen Feld gibt es horizontale und vertikale Wände. Das linke Ende der horizontalen Wand ist mit dem unteren Ende der vertikalen Wand verbunden. Wandlängenunbekannt Es gibt genau einen Durchgang in der vertikalen Wand,genaue Stelle des Durchgangs und seine Breite ist unbekannt. Der Roboter befindet sich direkt in einem Käfigaber über der horizontalen Wand am rechten Ende. Das Bild zeigt eine der Luftmöglichkeiten, die Wände und den Roboter zu positionieren (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet).

Schreiben Sie für Robot einen Algorithmus, der alle Zellen zeichnet, die sich direkt rechts von der vertikalen Wand oberhalb des Durchgangs und links von der Vertikalen befindennoah Wand unter dem Gang. Die Passage muss unbemalt bleiben. Roboter muss fürmalen Sie nur Zellen, die diese Bedingung erfüllen. Zum Beispiel fürdaten über dem Bild Der Roboter muss folgende Zellen malen (siehe Bild):

zusammenbrechen

Weitere Informationen

Künstler-Roboter

top frei

frei frei

frei gelassen

recht frei

wenn < bedingung\u003e das befehlsfolge alle

Hierbedingung

logische Konnektoren ändernund oder nicht zum beispiel:

das nach rechts

alle

zu verwenden Der Roboter alg nach
.

.
nts tschüss frei gelassen
. .
nach links
.
kc
.
Gehen Sie zur Passage hoch
.
nts tschüss nein   frei gelassen
. .
auf
.
kc
.

.
nach links
.
nach unten
.
nts tschüss nein   Recht frei
. .
nach unten
.
kc
.

.
auf
.
nts tschüss nein   Recht frei
. .
übermalen
. .
auf
.
kc
.

.
nach rechts
.
nts tschüss frei gelassen
. .
auf
.
kc
.

.
nts tschüss nein   frei gelassen
. .
übermalen
. .
auf
.
kc con


Praktische Aufgabe für die Lektion „YET-Zyklus für einen Roboter-Performer“

OPTION 2

1. Erstellen Sie eine Startumgebung und schreiben Sie einen Algorithmus unter Verwendung des YET-Zyklus.

Wandlängen unbekannt In horizontale Wand   es gibt genau einen Durchgang,genaue Stelle des Durchgangs und seine Breite ist unbekannt. rechts an der senkrechten Wand am oberen Ende.

gekennzeichnet mit dem Buchstaben "P").

Schreiben Sie für Robot einen Algorithmus, der alle lokalisierten Zellen maltmittelmäßig über und unter der horizontalen Wand. Die Passage muss offen bleibenverrückt Ein Roboter muss nur Zellen malen, die diese Bedingung erfüllen.viyu. Für das obige Bild sollte der Roboter beispielsweise Folgendes malen:zellen (siehe Abbildung).

Weitere Informationen

Künstler-Roboter   kann vier weitere Befehle ausführen - dies sind bedingte Überprüfungsbefehle. Diese Befehle prüfenist der Pfad für den Roboter in jeder der vier möglichen Richtungen frei:

top frei

frei frei

frei gelassen

recht frei

Diese Befehle können mit der "if" -Bedingung verwendet werden, die die folgende Form hat:

wenn < bedingung\u003e das befehlsfolge alle

Hierbedingung - einer der Bedingungsüberprüfungsbefehle.

Eine "Befehlsfolge" ist eine oder mehrere Befehlsanweisungen.

In einer Bedingung können Sie mehrere Befehle verwenden, um die Bedingungen mit zu überprüfenlogische Konnektoren ändernund oder nicht zum beispiel:

wenn (rechts ist frei) und (nicht unten frei)

das nach rechts

alle

zu verwenden Der Roboter alg nach
.
Wir bewegen uns nach links, bis wir die senkrechte Wand erreichen
.
nts tschüss frei gelassen
. .
nach links
.
kc
.
Gehen Sie zur Passage hoch
.
nts tschüss nein   frei gelassen
. .
auf
.
kc
.
Gehen Sie durch den Durchgang nach links und gehen Sie nach unten bis zum 1 Quadrat unter dem Ende der Mauer
.
nach links
.
nach unten
.
nts tschüss nein   Recht frei
. .
nach unten
.
kc
.
| Wir bewegen uns zur Passage und streichen über die Zellen
.
auf
.
nts tschüss nein   Recht frei
. .
übermalen
. .
auf
.
kc
.
Durch den Durchgang nach rechts gehen und bis zum Ende des Durchgangs klettern
.
nach rechts
.
nts tschüss frei gelassen
. .
auf
.
kc
.
| Bewegen Sie sich bis zum Ende der Wand und übermalen Sie die Zellen.
.
nts tschüss nein   frei gelassen
. .
übermalen
. .
auf
.
kc con

Praktische Aufgabe für die Lektion „YET-Zyklus für einen Roboter-Performer“

Option 3

1. Erstellen Sie eine Startumgebung und schreiben Sie einen Algorithmus unter Verwendung des YET-Zyklus.

Auf dem unendlichen Feld gibt es horizontale und vertikale Wände. Linkes Ende von geheneine horizontale Wand ist mit dem unteren Ende einer vertikalen Wand verbunden.Wandlängen unbekannt Es gibt genau einen Durchgang in der horizontalen Wand,genaue Stelle des Durchgangs und seinbreite unbekannt. Der Roboter befindet sich direkt in einem Käfigrechts von der senkrechten Wand am oberen Ende.

Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter (Roboter) zu positionierengekennzeichnet mit dem Buchstaben "P").

Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen zeichnet, die sich direkt über der horizontalen Wand rechts von der Passage befinden. Passage mussunlackiert bleiben Der Roboter muss nur die Zellen lackieren, ich bin zufriedenbedingungen. Für die obige Abbildung muss der Roboter beispielsweiseÜbermalen Sie die folgenden Zellen (siehe Abbildung).

Wenn der Algorithmus ausgeführt wird, sollte der Roboter die Ausführung des Algorithmus nicht kollabierenmuss abschließen. Die endgültige Anordnung des Roboters kann beliebig sein.

Der Algorithmus muss das Problem für jede akzeptable Position von Wänden und lösenbogogo Lage und Größe des Durchgangs in der Wand.

Weitere Informationen

Künstler-Roboter   kann vier weitere Befehle ausführen - dies sind bedingte Überprüfungsbefehle. Diese Befehle prüfenist der Pfad für den Roboter in jeder der vier möglichen Richtungen frei:

top frei

frei frei

frei gelassen

recht frei

Diese Befehle können mit der "if" -Bedingung verwendet werden, die die folgende Form hat:

wenn < bedingung\u003e das befehlsfolge alle

Hierbedingung - einer der Bedingungsüberprüfungsbefehle.

Eine "Befehlsfolge" ist eine oder mehrere Befehlsanweisungen.

In einer Bedingung können Sie mehrere Befehle verwenden, um die Bedingungen mit zu überprüfenlogische Konnektoren ändernund oder nicht zum beispiel:

wenn (rechts ist frei) und (nicht unten frei)

das nach rechts

alle

zu verwenden Der Roboter alg nach
.
Wir bewegen uns nach links, bis wir die senkrechte Wand erreichen
.
nts tschüss frei gelassen
. .
nach links
.
kc
.
Gehen Sie zur Passage hoch
.
nts tschüss nein   frei gelassen
. .
auf
.
kc
.
Gehen Sie durch den Durchgang nach links und gehen Sie nach unten bis zum 1 Quadrat unter dem Ende der Mauer
.
nach links
.
nach unten
.
nts tschüss nein   Recht frei
. .
nach unten
.
kc
.
| Wir bewegen uns zur Passage und streichen über die Zellen
.
auf
.
nts tschüss nein   Recht frei
. .
übermalen
. .
auf
.
kc
.
Durch den Durchgang nach rechts gehen und bis zum Ende des Durchgangs klettern
.
nach rechts
.
nts tschüss frei gelassen
. .
auf
.
kc
.
| Bewegen Sie sich bis zum Ende der Wand und übermalen Sie die Zellen.
.
nts tschüss nein   frei gelassen
. .
übermalen
. .
auf
.
kc
con

Praktische Aufgabe für die Lektion „YET-Zyklus für einen Roboter-Performer“

OPTION 4

1. Erstellen Sie eine Startumgebung und schreiben Sie einen Algorithmus unter Verwendung des YET-Zyklus.

2.Ergebnis speichern in persönlichen Ordner.

Auf einem unendlichen Feld befindet sich ein Rechteck, das von Wänden begrenzt wird.Länge einhundert das Rechteck ist unbekannt. Der Roboter befindet sich innerhalb des Rechtecks. Auf ridie mögliche Position der Wände und des Roboters wird angezeigtbedeutung des Buchstabens "P").

Schreiben Sie einen Algorithmus für den Roboter, der die unteren Eckzellen übermalt. Der Roboterdarf nur Zellen malen, die diese Bedingung erfüllen. Zum Beispielfür die obige Abbildung muss der Roboter die folgenden Zellen lackieren (siehezeichnung).

Die endgültige Anordnung des Roboters kann beliebig sein. Algorithmus muss neu seinshat-Task für eine beliebige Feldgröße und einen beliebigen gültigen Ortwände innen rechteckiges Feld. Beim Ausführen des Algorithmus sollte der Roboter dies nicht tunzusammenbrechen

Weitere Informationen

Künstler-Roboter   kann vier weitere Befehle ausführen - dies sind bedingte Überprüfungsbefehle. Diese Befehle prüfenist der Pfad für den Roboter in jeder der vier möglichen Richtungen frei:

top frei

frei frei

frei gelassen

recht frei

Diese Befehle können mit der "if" -Bedingung verwendet werden, die die folgende Form hat:

wenn < bedingung\u003e das befehlsfolge alle

Hierbedingung - einer der Bedingungsüberprüfungsbefehle.

Eine "Befehlsfolge" ist eine oder mehrere Befehlsanweisungen.

In einer Bedingung können Sie mehrere Befehle verwenden, um die Bedingungen mit zu überprüfenlogische Konnektoren ändernund oder nicht zum beispiel:

wenn (rechts ist frei) und (nicht unten frei)

das nach rechts

alle

zu verwenden Der Roboter
alg
nach
.
Wir bewegen uns nach links, bis wir die senkrechte Wand erreichen
.
nts tschüss frei gelassen
. .
nach links
.
kc
.
Gehen Sie zur Passage hoch
.
nts tschüss nein   frei gelassen
. .
auf
.
kc
.
Gehen Sie durch den Durchgang nach links und gehen Sie nach unten bis zum 1 Quadrat unter dem Ende der Mauer
.
nach links
.
nach unten
.
nts tschüss nein   Recht frei
. .
nach unten
.
kc
.
| Wir bewegen uns zur Passage und streichen über die Zellen
.
auf
.
nts tschüss nein   Recht frei
. .
übermalen
. .
auf
.
kc
.
Durch den Durchgang nach rechts gehen und bis zum Ende des Durchgangs klettern
.
nach rechts
.
nts tschüss frei gelassen
. .
auf
.
kc
.
| Bewegen Sie sich bis zum Ende der Wand und übermalen Sie die Zellen.
.
nts


Artist Robot kann sich durch das Labyrinth bewegen, gezeichnet in einer Ebene, unterteilt in Zellen.

Das Folgende ist eine Beschreibung des Roboters



Bei der Ausführung eines dieser Befehle bewegt sich der Roboter um ein Quadrat: nach oben, unten, links, rechts. Zwischen den benachbarten (an den Seiten) Zellen kann sich eine Wand befinden, durch die der Roboter nicht hindurchgehen kann. Wenn der Roboter den Bewegungsbefehl durch die Wand erhält, bricht er zusammen.

Vier Teams prüfen, ob auf jeder Seite der Zelle, in der sich der Roboter befindet, keine Mauer vorhanden ist:

top frei

frei frei

frei gelassen

recht frei

Diese Befehle können mit der "if" -Bedingung verwendet werden, die die folgende Form hat:

wenn das

befehlsfolge

alle

Eine „Befehlsfolge“ ist einer oder mehrere Befehle, die vom Roboter ausgeführt werden. Wenn Sie beispielsweise eine Zelle nach rechts verschieben möchten, wenn sich rechts keine Wand befindet, können Sie den folgenden Algorithmus verwenden:

wenn das Recht frei ist

nach rechts
alle


In einer Bedingung können Sie mehrere Befehle verwenden, logische Verbindungen verwenden und beispielsweise nicht:

wenn (rechts ist frei) und (nicht unten ist frei) dann

nach rechts

alle

Um eine Folge von Befehlen zu wiederholen, können Sie die „while“ -Schleife verwenden, die wie folgt aussieht:

tschüss

befehlsfolge
kc


Um beispielsweise so lange wie möglich nach rechts zu gehen, können Sie den folgenden Algorithmus verwenden:

nts ist frei recht

nach rechts
kc


Roboter hat auch ein Team   übermalenMalen der Zelle, in der sich der Roboter gerade befindet.

Führen Sie die Aufgabe aus.




Auf einem unendlichen Feld befindet sich eine horizontale Wand. Die Länge der Mauer ist unbekannt. Vom rechten Ende der Wand geht eine senkrechte Wand mit unbekannter Länge aus. Der Roboter befindet sich in einer Zelle unter einer horizontalen Wand.

Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter zu positionieren (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet).

Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich links von der vertikalen Wand befinden, und muss nur die Zellen malen, die diese Bedingung erfüllen. Für die Abbildung oben muss der Roboter beispielsweise die folgenden Zellen zeichnen (siehe ABBILDUNG).

Die endgültige Anordnung des Roboters kann beliebig sein. Der Algorithmus muss das Problem lösen, um eine beliebige Größe des Feldes und jede zulässige Position der Wände des rechteckigen HUTPI-Feldes zu erreichen. Wenn der Algorithmus ausgeführt wird, sollte der Roboter nicht zusammenbrechen. Algorithmus schreiben Sie in einen Texteditor und speichern Sie eine Textdatei.

Der Name der Datei und der Katalog zum Speichern werden Ihnen von den Prüfungsorganisatoren mitgeteilt..


Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich links von der vertikalen Wand befinden, und muss nur die Zellen malen, die diese Bedingung erfüllen. Für die obige Abbildung muss der Roboter beispielsweise die folgenden Zellen lackieren (siehe BILDERGEBNIS)
LÖSUNG
NTS UNTER TOP KOSTENLOS

UP

NC NOCH (NICHT TOP FREE)

LINKS

UP

NC RICHTIG FREI

RECHTS

NTS WÄHREND (NICHT RECHTFREI)

SHINE UP

Kolleginnen und Kollegen, hier kommen wir zum wichtigsten!

Wir werden versuchen, dieses Wissen zu nutzen, um die Probleme der GIA zu lösen. Und wir wissen schon viel! Und ich bezweifle nicht einmal, dass es uns gelingen wird!

Betrachten Sie die Aufgabe aus der Demo 2012. Ich werde hier die vollständige Formulierung des Problems geben.

20.1.   Artist Robot kann sich durch das Labyrinth bewegen, gezeichnet in einer Ebene, unterteilt in Zellen. Nachfolgend finden Sie eine Beschreibung des Roboters.
   Der Roboter hat vier Bewegungsbefehle:

auf
   nach unten
   nach links
   nach rechts

Bei der Ausführung eines dieser Befehle bewegt der Roboter eine Zelle.
   jeweils: hoch, runter ↓, links ←, rechts →.
   Zwischen den benachbarten (an den Seiten) Zellen kann sich eine Wand befinden, durch die der Roboter nicht hindurchgehen kann. Wenn der Roboter den Bewegungsbefehl durch die Wand erhält, bricht er zusammen.
   Vier Teams prüfen, ob es für jede eine Mauer gibt
   die Seite der Zelle, auf der sich der Roboter befindet:

top frei
   frei frei
   frei gelassen
   Recht frei

Diese Befehle können in Verbindung mit einer if-Bedingung verwendet werden
   folgende Ansicht:

wenn<условие>   das
   Befehlsfolge
   alle

   Eine „Befehlsfolge“ ist einer oder mehrere Befehle, die vom Roboter ausgeführt werden. Um beispielsweise ein Quadrat nach rechts zu verschieben,
   Wenn sich rechts keine Wand befindet, können Sie den folgenden Algorithmus verwenden:

wenn das Recht frei ist
   nach rechts
   alle

In einer Bedingung können Sie mehrere Befehle anwenden
   logische Verbindungen und, oder nicht, zum Beispiel:

wenn (rechts ist frei) und (nicht unten ist frei) dann
   nach rechts
   alle

Sie können die Schleife verwenden, um eine Folge von Befehlen zu wiederholen.
   "Tschüss" mit folgender Form:

tschüss< условие >
   Befehlsfolge
   kc

Um sich beispielsweise so lange wie möglich nach rechts zu bewegen, können Sie verwenden
   folgenden Algorithmus:

nts ist frei recht
   nach rechts
   kc

Außerdem hat der Roboter ein Team, in dem er die Zelle übermalen kann
   Der Roboter ist im Moment.

Führen Sie die Aufgabe aus.

Auf einem unendlichen Feld gibt es eine senkrechte Wand. Die Länge der Mauer ist unbekannt. Vom oberen Ende der Wand geht die horizontale Wand, die auch unbekannter Länge ist, nach rechts. Der Roboter befindet sich in dem Käfig links von der Unterkante der vertikalen Wand.
   Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter zu positionieren.
   (Der Roboter ist mit dem Buchstaben "P" gekennzeichnet).

Schreiben Sie für Robot einen Algorithmus, der alle lokalisierten Zellen malt
   links von der vertikalen Wand und über der horizontalen Wand und angrenzend
zu ihnen. Ein Roboter muss nur Zellen malen, die dies erfüllen.
   Bedingung. Für die obige Abbildung muss der Roboter beispielsweise
   Übermalen Sie die folgenden Zellen (siehe Abbildung).

Die endgültige Anordnung des Roboters kann beliebig sein. Der Algorithmus
   muss ein Problem für eine beliebige Feldgröße und eine beliebige lösen
   zulässige Anordnung der Wände innerhalb eines rechteckigen Feldes. Mit
   Algorithmus-Leistung Roboter darf nicht zusammenbrechen.
   Schreiben Sie den Algorithmus in einen Texteditor und speichern Sie ihn in einer Textdatei.
   Der Name der Datei und das Verzeichnis, in dem Sie gespeichert werden sollen, werden von den Organisatoren informiert
   die Prüfung

Lösung: Kolleginnen und Kollegen, ja wir alle können es schaffen, oder?!


Das ist alles! Probieren Sie es selbst aus.

Ich werde nicht den vollen Zustand des Problems geben, es wird wiederholt. Ich werde mich kurz beschränken, ich denke, dass alles klar sein wird.

Aufgabe 4

Aufgabe 4.1. Auf einem unendlichen Feld gibt es eine bestimmte Position der Wände (siehe Abbildung). Die Länge der Wände ist unbekannt. Der Roboter befindet sich in einem Käfig zwischen den horizontalen Wänden links von der vertikalen Wand.
   Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter zu positionieren (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet).

Schreiben Sie für Robot einen Algorithmus, der die oberen und unteren Zellen rechts von der vertikalen Wand malt. Der Roboter sollte nur die auf dem Bild angezeigten Zellen malen.

Die endgültige Anordnung des Roboters kann beliebig sein. Der Algorithmus sollte das Problem für eine beliebige Größe des Feldes und für jede zulässige Position der Wände innerhalb eines rechteckigen Feldes lösen. Wenn der Algorithmus ausgeführt wird, sollte der Roboter nicht zusammenbrechen.

Aufgabe 4.2. Auf einem unendlichen Feld gibt es eine festgelegte Anordnung der Wände (siehe
   Zeichnung). Die Länge der Wände ist unbekannt. Der Roboter befindet sich im Käfig links von der vertikalen Wand. Die Abbildung zeigt eine der möglichen Möglichkeiten, die Wände und den Roboter zu positionieren (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet).

Schreiben Sie für Robot einen Algorithmus, der Zellen an den Ecken der Wände malt, die sich in den Ecken befinden. Der Roboter sollte nur die Zellen lackieren, die diese Bedingung erfüllen.
   Für die obige Abbildung muss der Roboter beispielsweise
   Übermalen Sie die folgenden Zellen (siehe Abbildung).

Die endgültige Anordnung des Roboters kann beliebig sein.
   Der Algorithmus sollte das Problem für eine beliebige Größe des Feldes und für jede zulässige Position der Wände innerhalb eines rechteckigen Feldes lösen. Wenn der Algorithmus ausgeführt wird, sollte der Roboter nicht zusammenbrechen.

Aufgabe 4.3.   Auf einem endlosen Feld gibt es eine lange senkrechte Wand. Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einer der Zellen
direkt links von der Wand. Die Ausgangsposition des Roboters ist ebenfalls
   unbekannt Eine der möglichen Positionen des Roboters ist in der Abbildung dargestellt.
   (Der Roboter ist mit dem Buchstaben "P" gekennzeichnet):

Schreiben Sie einen Algorithmus für den Roboter, der alle links und links neben der Wand befindlichen Zellen malt. Der Roboter sollte nur die Zellen lackieren, die diese Bedingung erfüllen. Für die obige Abbildung muss der Roboter beispielsweise die folgenden Zellen lackieren (siehe Abb.).

Die endgültige Anordnung des Roboters kann beliebig sein. Der Algorithmus sollte das Problem für eine beliebige Größe der Wand und für jeden zulässigen Anfangsort des Roboters lösen.

Aufgabe 4.4 . Auf dem unendlichen Feld befindet sich eine lange horizontale Wand (die Länge der Wand entspricht einer geraden Anzahl von Zellen). Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einer der Zellen oberhalb der Wand (siehe Abb.)


Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich oberhalb und unterhalb der Wand sowie neben ihr und in einer Zelle befinden, beginnend mit der ersten rechten unteren.

Für das obige Bild muss der Roboter beispielsweise die folgenden Zellen zeichnen:


Die endgültige Anordnung des Roboters kann beliebig sein. Der Algorithmus muss das Problem für eine beliebige Größe der Wand und eine gültige anfängliche Anordnung des Roboters lösen.

Packen Sie alle Ordner im Archiv mit dem Namen Familia I.O._zadanie4und an die Mailbox senden [E-Mail geschützt]

Vergessen Sie nicht, die Leistung in der Tabelle der Selbstaufnahme zu markieren

   Dies ist der Darsteller, der uns erlauben wird zu sehenwie der von uns erstellte Algorithmus ausgeführt wird.

Menü Einfügen   mit den Hauptteams ROBOT

Im menü Bearbeiten   (das Bild rechts) hebt die wichtigsten Befehle hervor, mit denen wir arbeiten werden ROBOT.A zeigt unten das Code-Schreibfenster für den Algorithmus. Achten Sie darauf, was benötigt wird kommentar entfernen   im Code-Schreibfenster!


Fenster zum Schreiben des Algorithmus-Codes

In diesem Fenster schreiben wir unseren Algorithmus. Zunächst wenden wir uns jedoch der Aussage des Problems zu: Auf dem endlosen Feld gibt es eine horizontale Wand, die sich endlos nach links fortsetzt und endet mit einer Leiter, die sich von links nach rechts erhebt. Die Höhe jedes Schrittes beträgt zwei Zellen, die Breite vier Zellen. Der Roboter steht an einer horizontalen Wand, links von der Treppe.

Schreiben Sie einen Algorithmus für ROBOT, der alle direkt lokalisierten Zellen malt über der Treppe. Es ist erforderlich, nur Zellen, die diese Bedingung erfüllen, übermalen. Der endgültige Standort des ROBOTS kann beliebig sein.

Der Algorithmus sollte das Problem für eine beliebige Feldgröße und eine beliebige Anzahl von Schritten lösen. Bei der Ausführung des Algorithmus ROBOT sollte nicht zusammenbrechen.

Im Text der Task werden nach der Ausführung des Algorithmuscodes der Anfangszustand des ROBOT und der ROBOT-Zustand angezeigt. Siehe unten

Die Position des ROBOTERS wird in allen Figuren durch einen Diamanten angezeigt.

Untersuchen wir die Entwicklungsstadien des ROBOT-Bewegungsalgorithmus (und die notwendigen Aktionen des ROBOTS):

1. Das Bewegen von ROBOT hat zwei Fragmente:

A) Bewegen auf einer Stufe mit Färbung einer Stufe; b) Steige zum nächsten Schritt auf.

2. Das Tragen von ROBOT trägt zyklisch : wiederholt sich so oft, wie die Treppe Treppen hat. Aber (!), Unter der Bedingung des Problems an uns es ist nicht bekannt, wie viele Stufen eine Leiter hat . Daher können wir im Algorithmus nicht angeben, wie viele Wiederholungen (Wiederholungen) ROBOT ausführen soll.

3. Wir kennen die Größe der Stufen: Höhe - 2 Zellen; width - 4 Zellen (im Bild beträgt die Breite der Stufe 3 Zellen :), aber dies sollte uns nicht daran hindern, die Reihenfolge der Aktionen von ROBOT festzulegen).

4. Wählen Sie in der ROBOT-Aktion zwei Fragmente aus: eine Abfolge von Schritten

4.1. auf dem Segment 1    ROBOT bewegt sich   nach rechts: macht einen Schritt; und malt einen Schritt. Definieren leistungsbedingungen   von diesen beiden Aktionen: In der Aussage des Problems gibt es dazu folgende Daten: ROBOT hat vier   Befehle verschieben: auf, nach unten, nach links, nach rechts. Dieselben Befehle werden auch für unseren Artist ROBOT in KUMIR angezeigt (siehe Menübefehle im Menü Einfügen - sie sind rot unterstrichen). Wenn Sie einen dieser Befehle ausführen, bewegt sich ROBOT in einer Zelle   in der angegebenen Richtung. Zwischen den benachbarten (an den Seiten) Zellen können eine Wand stehen, durch die der ROBOT hindurchgeht   kann nicht. Wenn ROBOT den Bewegungsbefehl durch die Wand erhält, dann er bricht zusammen. Daher bestätigen vier Teams die Wahrheit   Abwesenheitsbedingungen   Die Wände an jeder Seite der Zelle, auf der sich der ROBOT befindet, sind: 1) von oben ist frei; 2) von unten frei; 3) nach links frei; 4) nach rechts frei.

Sie können die Schleife verwenden, um eine Folge von Befehlen zu wiederholen. TSCHÜSS.

ROBOT hat auch ein Team   übermalendie Farbe der Zelle, in der sich der ROBOT befindet.

Also auf das Segment 1    Wir erhalten die folgenden Befehle:

1. übermalen   (da die Ausgangsposition des Roboters auf der horizontalen Wand eine Stufe ist);

2. (Schritt)   nach rechts

Und es ist notwendig, die folgenden Befehle auszuführen: bodenwand und es gibt keine Wand auf der rechten Seite .

4.2. Wenn ein ROBOT bewegt wird, gelangt er in eine Position, wo rechte WandDann muss er Befehle ausführen, um zum nächsten Schritt zu gelangen:

1. übermalen (da es auf dem Käfig eine Stufe steht und dieser Käfig noch nicht übermalt ist);

2. (Schritt) auf   (Zelle mit einer Schritthöhe);

3. (Schritt) auf   (Zelle der zweiten Schritthöhe);

4. (Schritt) nach rechts.

5. Teams der ROBOT-Abschnitte 1 und 2 zusammenfassen:

NTS BYE (untere Wand) und (nicht rechte Wand) übermalen rechts kc | ROBOT stoppte vor der Wand, wenn die rechte Wand dann ganz rechts | ROBOT ist an den Anfang der nächsten Stufe übergegangen (siehe - Ausgangsposition des ROBOTS)

Wir werden prüfen, wie das von uns geschriebene Fragment des Algorithmus ROBOT ist. Aber zuerst wollen wir uns mit dem Umweltidol befassen.

ROBOT-Menü


Ausgangssituation ROBOT

1. Öffnen das Menü ROBOT   und wähle ein Team aus Ändern Sie die Ausgangssituation. Ein Fenster öffnet sich bearbeiten der Ausgangssituation   ROBOT, wo wir die Zeichnung einer Leiter neu erstellen müssen. Klicken Sie zum Erstellen der Wände auf die Trennlinie zwischen den Zellen. Bringen Sie den ROBOTEN (weiße Raute) in die Ausgangsposition. Die Größe des Feldes ist begrenzt, so dass wir die Leiter nicht vollständig neu erstellen können, wie auf dem Papier.

2. Nachdem die Bearbeitung abgeschlossen ist, führen wir den Befehl aus. Einrichtung \\ Als Anfang speichern ...   Geben Sie den Namen der Dateieinstellung an. In KUMIR hat sich jedoch die Ausgangssituation geändert.

3. Öffnen Sie das ROBOT-Fenster, indem Sie auf die Schaltfläche in der Symbolleiste des Idol-Fensters klicken Roboterfenster anzeigen .

Demonstration des Algorithmuscodes (siehe Mediendatei).

Wir haben ein Fragment des Codes des Algorithmus erhalten, in dem zwei Module: die Befüllung der Stufe und der Aufstieg zur nächsten Stufe erfüllt wurden. Nun ist es notwendig, diesen Algorithmus so oft zu wiederholen, wie Stufen in der Treppe vorhanden sind. Aber wir wissen (durch die Bedingung des Problems) nicht im Voraus, wie oft wir den obigen Algorithmus ausführen müssen, also verwenden wir einen anderen ( extern   Zyklus) TSCHÜSS, innerhalb dessen   und unseren Code einbetten.

Und unser Code sieht jetzt so aus:

   benutze robot alg betteln. bis zur unteren Wand. . nts ist nicht die richtige Wand. . . übermalen. . . nach rechts . kts . wenn (rechte Wand) und (untere Wand). . . das . . . übermalen. . . . auf . . . auf . . . nach rechts . alle kc con

Sehen Sie, wie der Sänger ROBOT den Algorithmus jetzt ausführt:

Wie Sie dem Video entnehmen können, haben wir alle Bedingungen des Problems erfüllt: ROBOT malt alle Schritte, ohne zu brechen. Und vor allem der ROBOT-Steuerungsalgorithmus rational(optimal).