Performer-Roboter. Fahrräder. Den Roboter kennenlernen

Der gesamte Prozess besteht aus zwei Phasen: Montage und Programmierung. Um einen guten Roboter zusammenzubauen, braucht man Kenntnisse in Mechanik. Um den Roboter für bestimmte Aktionen zu programmieren, müssen Sie die Sprache kennen, die das Motherboard oder der Programmblock versteht. Schulkenntnisse in Informatik reichen hier nicht aus.

Wo bekommt man Material?

Zuerst müssen Sie entscheiden, wie Sie den Roboter zusammenbauen möchten: aus vorgefertigten Bausätzen oder selbst aus Materialien auswählen. Der Vorteil des Bausatzes ist, dass Sie die Teile nicht einzeln suchen müssen. Meistens können mehrere Geräte aus einem Set zusammengestellt werden.

Ein Design, das nicht aus einem vorgefertigten Satz zusammengestellt wird, wird als offenes System bezeichnet. Es hat auch seine Vorteile: Ihr Roboter wird individuell und Sie können das Design selbst verbessern. Aber Sie werden definitiv mehr Zeit und Mühe aufwenden.

Woraus besteht der Roboter?

Gehäuse - Metall oder Kunststoff "Karosserie", an dem die restlichen Teile befestigt sind. Jeder Roboter hat eine Energiequelle - Batterien oder einen Akkumulator. Je nachdem, welche Aufgabe der Roboter ausführen soll, werden Sensoren ausgewählt: Sie können Farben und Licht erkennen und auf Berührungen reagieren.

Um den Roboter zu bewegen, braucht man Motoren. "Kopf" des gesamten Mechanismus - der Hauptplatine oder des Programmblocks. Mit ihrer Hilfe verbindet sich der Roboter mit dem Computer und erhält eine Reihe von Aufgaben.

Wie bringt man ihn dazu, etwas zu tun?

Damit der Roboter eine Aktion ausführen kann, müssen Sie ein Computerprogramm erstellen. Die Komplexität dieses Schritts hängt von der Baugruppe ab. Wird der Roboter aus einem Lego-Mindstorms- oder mBot-Set zusammengebaut, kommen auch Kinder mit ihrer Software zurecht.

Wenn Sie selbst einen Roboter bauen, müssen Sie die Grundlagen der Programmierung und die Sprache lernen, in der Sie das Programm schreiben werden, z. B. C ++.

Warum kann der Roboter das Programm nicht ausführen?

Wenn er an einen neuen Ort gelangt, kann er sich verirren und das Programm falsch ausführen. Damit der Roboter alles richtig macht, ist es notwendig, die Sensoren einzustellen. Beispielsweise kann eine zu helle Beleuchtung die adäquate Farberkennung beeinträchtigen. Je nach Untergrund, auf dem sich der Roboter bewegt, wird die Leistung der Motoren reguliert.

Kann ich das Zusammenbauen und Programmieren in der Schule lernen?

Obwohl Robotik nicht Teil des Schullehrplans ist, können Physik- und Informatiklehrer einem Kind das Zusammenbauen und Programmieren beibringen. In Belgorod haben einige Schulen Kreise, in denen sie Roboter bauen.

„Nach dem Unterricht bei Physik- und Informatiklehrern lernen wir programmieren. Wir wissen bereits, wie man in LegoMindstorms und Robolab arbeitet ( Software für Roboter - ca. ed.). Manchmal lernen wir auch, wie man 3D-Zeichnungen von Teilen anfertigt“, sagten Schüler des Belgorod Engineering Youth Boarding Lyceum und Teilnehmer des RoboFest-2018 Anton Perschin und Dmitri Tschernow.

Wo kann man neben der Schule Robotiker werden?

Die Ingenieurschule der BelSU hat eine Klasse, in der sie lernen, wie man Roboter zusammenbaut und programmiert. 2017 eröffnete das Quantorium in Belgorod, wo Schulkindern ab neun Jahren Robotik beigebracht wird.

Um ein echter Robotiker zu werden, können Sie die Fakultät für Robotik betreten. In Belgorod gibt es solche Leute noch nicht, aber in BSTU im. Shukhov hat eine Abteilung für technische Kybernetik. Ihre Studenten gewinnen Preise bei allrussischen Wettbewerben in Robotik.

Kannst du alleine lernen?

Ja. Es gibt viele Ressourcen im Internet, wo Sie lernen können, was man baut und wie man einen Roboter programmiert.

Wird der Roboter nützlich sein?

Er lässt sich für alltägliche Aufgaben anpassen und zum Helfer im Haushalt machen. Im Internet gibt es viele Beispiele dafür, wie Heimwerker Roboter zum Backen von Pfannkuchen oder zum Reinigen einer Wohnung bauen.

Wie können Sie Ihren Erfolg bei der Erstellung von Robotern bestätigen?

Nehmen Sie an Wettbewerben wie dem RoboFest teil. Je nach Alter und Richtung gibt es unterschiedliche Nominierungen. Grundsätzlich hat jeder Robotertyp eine Bahn, auf der er Aufgaben ausführt: einen Würfel erobern oder eine Linie ziehen. Es gibt auch statische Systeme, in denen Juroren die Präsentation des Projekts und die Funktionsweise der Mechanismen bewerten.

In der Regel kommen die Teilnehmer mit zusammengebauten Robotern zu Wettbewerben und verbringen in der Vorbereitung nur Zeit mit dem Kalibrieren von Sensoren und dem Anpassen des Programms.

Die Redaktion dankt den Teilnehmern des RoboFest-2018 für die Hilfe bei der Erstellung des Materials Dmitri Agafonow, Dmitri Tschernow, Anton Pershin und Danila Migrina.

Natalia Malyihina

Executor-Control-Roboter im KUMIR-System

Der Roboter befindet sich in einer bestimmten Umgebung (rechteckiges Schachbrettfeld). Zwischen einigen Zellen des Feldes können sich Wände befinden. Einige Zellen können schattiert sein (Abb. 3.11).

Der Roboter belegt genau eine Zelle des Feldes.

Bei Befehlen nach oben, unten, links und rechts bewegt sich der Roboter zur nächsten Zelle in der angegebenen Richtung. Befindet sich eine Wand auf dem Weg, tritt ein Fehler auf - es wird eine Meldung angezeigt, dass der nächste Befehl nicht ausgeführt werden kann.

Auf Befehl zum Übermalen übermalt der Roboter die Zelle, in der er steht. Wenn die Zelle bereits übermalt wurde, wird sie erneut übermalt, es treten jedoch keine sichtbaren Änderungen auf.

Der Roboter kann nur korrekt geschriebene Befehle ausführen. Wenn Sie anstelle des Befehls down schreiben, dann versteht der Robot diese Eingabe nicht und meldet sofort einen Fehler.

Ö
Fehler: 1 syntaktisch; 2. logisch

Beschreibungen von Umgebungen werden in Textdateien eines speziellen Formats (.fil-Format) gespeichert.

Strom- die Umgebung, in der sich der Roboter gerade befindet (einschließlich Informationen über die Position des Roboters).

Heim- die Umgebung, in der der Roboter zu Beginn der Ausführung des Programms unter Verwendung des Roboters zwangsweise platziert wird.

Gebrauchsprozedur:


  1. Fragen Ausgangsumgebung je nach Aufgabe:
Menü Extras → Startumgebung des Roboters ändern (Umgebung entsprechend der Aufgabenbedingung zeichnen, einen Namen vergeben, im persönlichen Ordner speichern)

2. Geben Sie den Auftragnehmer an:

Menü einfügen → Roboter verwenden

3. Schreiben Sie einen Algorithmus zur Lösung des Problems.

4. Führen Sie den Algorithmus aus (Menü Ausführen → Kontinuierlich ausführen / F9)

Das Befehlssystem des ausführenden Roboters im KUMIR-System


Team

Aktion

hoch

Der Roboter bewegt sich 1 Zelle nach oben

Nieder

Der Roboter bewegt sich 1 Zelle nach unten

Nach links

Der Roboter bewegt sich 1 Feld nach links

Rechts

Der Roboter bewegt sich 1 Zelle nach rechts

übermalen

Der Roboter malt die Zelle an, in der er sich befindet

Recht frei

Der Roboter überprüft die Ausführung des entsprechenden einfach Bedingungen

übrig geblieben



oben locker



unten locker



die Zelle ist schattiert



Käfig sauber



Zyklische Algorithmen

Zyklus Organisation sich wiederholender Aktionen, bis eine bestimmte Bedingung wahr ist .

Schleifenkörper - eine Reihe wiederholbarer Aktionen.

Kondition - boolescher Ausdruck (einfach oder komplex (Verbindung))
Zyklusarten:

1.Schleife „Wiederhole n mal“ 2. Schleife „Tschüss“
nc n mal Tschüss
. . Loop-Körper. . Loop-Körper
kts kts

Beispiel: Tschüss Recht frei


Gesamtansicht des Zyklus "n-mal wiederholen:

WIEDERHOLEN SIE n MAL

DAS ENDE
kts

Gesamtansicht der While-Schleife:

WÄHREND ZU TUN

DAS ENDE
Zusammengesetzte Bedingungen werden aus einer oder mehreren einfachen Bedingungen und Dienstwörtern gebildet UND, ODER, NICHT.


Zusammengesetzter Zustand A und B(wobei A, B einfache Bedingungen sind) ist erfüllt, wenn jede der beiden darin enthaltenen einfachen Bedingungen erfüllt ist.

Lassen Sie A - oben frei v - rechts frei dann die zusammengesetzte Bedingung A und B- oben frei UND rechts frei.


Zusammengesetzter Zustand A ODER B ist erfüllt, wenn mindestens eine der beiden darin enthaltenen einfachen Bedingungen erfüllt ist: oben frei ODER rechts frei
Zusammengesetzter Zustand KEIN- erfüllt, wenn Bedingung A nicht erfüllt ist.

Beispiel: Sei A eine schattierte Zelle (einfache Bedingung).

P Überprüfen des Verbindungszustands NICHT A:

a) A - fertig, NICHT A (NICHT schattiert) - nicht fertig.

b) A - nicht fertig, NICHT A (NICHT schattiert) - fertig.


Verzweigungsbefehl

Verzweigung - eine Organisationsform von Handlungen, bei der je nach Erfüllung oder Nichterfüllung einer bestimmten Bedingung entweder die eine oder andere Folge von Handlungen ausgeführt wird.

Gesamtansicht des IF-Befehls:

WENN DANN ANSONSTEN

DAS ENDE

In der KUMIR-Sprache:

Vollverzweigung: Teilverzweigung:
wenn dann wenn dann

ansonsten

alles alles

Hilfsalgorithmus- ein Algorithmus, der ein Teilproblem des Hauptproblems löst.

Im KUMIR-System werden Hilfsalgorithmen am Ende des Hauptprogramms geschrieben (nach dem Dienstwort con) werden im Hauptprogramm namentlich zur Ausführung aufgerufen.

v Umfragen und Aufgaben

1. Geben Sie alle Algorithmen der drei Befehle an, die den Roboter von seiner ursprünglichen Position zu Zelle B bewegen.

Gibt es einen Algorithmus für diese Aufgabe, bei dem der Roboter Folgendes tut:

a) zwei Schritte b) vier Schritte; c) fünf Schritte; d) sieben Schritte?


  1. Petya hat einen Algorithmus entwickelt, der den Roboter von Zelle A nach Zelle B überträgt, wobei einige Zellen übermalt werden. Was sollte Kolya mit diesem Algorithmus tun, um einen Algorithmus zu erhalten, der den Roboter von B nach A bringt und dieselben Zellen ausfüllt?


7. Zwei Hilfsroboteralgorithmen sind bekannt

Zeichnen Sie, was passiert, wenn der Roboter die folgenden grundlegenden Algorithmen ausführt:


ein)

nc 5 mal


Muster_1

Rechts; Rechts;


B)

nc 7 mal


Muster_2

Rechts; Rechts


v)
Rechts; Rechts; Rechts

hoch; hoch

Rechts; Rechts; Rechts

Nieder; Nieder


G)
Rechts; Rechts
Rechts; Rechts

8. Erstellen Sie Algorithmen, unter denen der Roboter die angegebenen Zellen übermalt:



9. Es ist bekannt, dass sich irgendwo rechts vom Roboter eine Wand befindet. Erfinden Sie einen Algorithmus, unter dessen Kontrolle der Roboter eine Reihe von Zellen bis zur Wand übermalt und an seine ursprüngliche Position zurückkehrt.

10. Es ist bekannt, dass sich irgendwo rechts vom Roboter eine schattierte Zelle befindet.

MIT Verlassen Sie den Algorithmus, unter dessen Kontrolle der Roboter eine Reihe von Zellen bis zu der schattierten Zelle malt und zu seiner ursprünglichen Position zurückkehrt.

11. Es ist bekannt, dass sich der Roboter in der Nähe des linken Eingangs zum horizontalen Korridor befindet.

12. Es ist bekannt, dass sich der Roboter irgendwo im horizontalen Korridor befindet. Keine der Zellen des Korridors ist übermalt.

Erfinden Sie einen Algorithmus, unter dessen Kontrolle der Roboter alle Zellen dieses Korridors übermalt und an seine ursprüngliche Position zurückkehrt.


13. In einer Reihe von zehn Zellen rechts vom Roboter sind einige Zellen schattiert.

MIT Verlassen Sie den Algorithmus, der die Zellen malt:

a) unter jeder schattierten Zelle;

b) über und unter jeder schattierten Zelle.


14. Was kann über die Korrektheit des folgenden Fragments des Algorithmus gesagt werden?

Tschüss die Zelle ist schattiert

WENN Recht frei DANN

Rechts; übermalen

Zu
C

15. Schreiben Sie ein Programm, mit dem der Roboter in allen drei Labyrinthen zu Zelle B gelangen kann.


16. Schreiben Sie ein Programm, nach dem der Roboter den Korridor von der unteren linken Ecke des Feldes bis zur oberen rechten Ecke entlanggehen kann. Der Korridor hat eine Breite von einer Zelle und erstreckt sich in Richtung von links-unten-rechts-oben. Ein Beispiel für einen möglichen Korridor ist in der Abbildung dargestellt.

W

Adachi GIA


  1. Korridor1. Der Roboter befindet sich irgendwo im vertikalen Korridor. Keine der Zellen des Korridors ist übermalt. Erstellen Sie einen Algorithmus, bei dem der Roboter alle Zellen dieses Korridors übermalt und an seine ursprüngliche Position zurückkehrt.

  1. ZU
    Notwendig

    Gegeben
    Korridor2. Der Roboter befindet sich in der oberen Zelle eines schmalen vertikalen Korridors. Die Breite des Korridors ist eine Zelle, die Länge des Korridors kann beliebig sein.

Eine mögliche Variante der anfänglichen Position 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 Zellen im Korridor ausfüllt und den Roboter an seine ursprüngliche Position zurückbringt. Für das obige Bild sollte der Roboter beispielsweise die folgenden Zellen übermalen (siehe Bild):


  1. Es gibt eine lange horizontale Wand auf dem endlosen Feld. Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einem der Käfige direkt über der Wand. Die Ausgangsposition des Roboters ist ebenfalls unbekannt. Eine der möglichen Positionen:
h


Notwendig

Gegeben
Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen über und neben der Wand malt, unabhängig von der Größe der Wand und der Ausgangsposition des Roboters. Zum Beispiel muss der Roboter für die gegebene Zeichnung die folgenden Zellen übermalen:

Die Endposition des Roboters kann beliebig sein. Beim Ausführen des Algorithmus sollte der Roboter nicht zerstört werden.



  1. Es gibt eine lange vertikale Wand auf dem unendlichen Feld. Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einem der Käfige direkt rechts neben der Wand. Auch die Ausgangsposition des Roboters ist 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 die Arbeit, der alle an die Wand angrenzenden Zellen übermalt: links, von oben beginnend unbemalt und durch eins; auf der rechten Seite, beginnend von unten schattiert und durch eins. Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen. Für die obige Abbildung muss der Roboter beispielsweise die folgenden Zellen ausfüllen (siehe Abbildung): Der endgültige Standort des Roboters kann beliebig sein. Der Algorithmus muss das Problem für eine beliebige Wandgröße und jede gültige Anfangsposition des Roboters lösen. Beim Ausführen des Algorithmus sollte der Roboter nicht zusammenbrechen.


Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen links von der vertikalen Wand und über der horizontalen Wand und angrenzend an sie malt. Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen. Zum Beispiel muss der Roboter für das obige Bild die folgenden Zellen übermalen (siehe Bild).


h Schreiben Sie einen Algorithmus für den Roboter, der die Zellen neben der Wand malt, von oben und unten, beginnend von links und durch eine. Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen. Zum Beispiel muss der Roboter für die gegebene Figur a) die folgenden Zellen übermalen (siehe Abb. b).

Die Endposition des Roboters kann beliebig sein. Der Algorithmus muss das Problem für eine beliebige Wandgröße und jede gültige Anfangsposition des Roboters lösen.



R

  1. Es gibt eine lange vertikale Wand auf dem unendlichen Feld. Die Länge der Mauer ist unbekannt. Der Roboter befindet sich in einem der Käfige direkt links von der Wand. Auch die Ausgangsposition des Roboters ist unbekannt. Eine der möglichen Positionen des Roboters ist in der Abbildung dargestellt (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet):
Schreiben Sie für die Arbeit einen Algorithmus, der alle an die Wand angrenzenden Zellen übermalt:

  • alle auf der linken Seite;

  • auf der rechten Seite, beginnend von oben unbemalt und durch eins.
Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen.

B
1102_GIA2011

Es gibt zwei horizontale Wände auf dem unendlichen Feld. Die Länge der Mauern ist unbekannt. Der Abstand zwischen den Wänden ist unbekannt. Der Roboter befindet sich über der unteren Wand in einem Käfig, der sich an der linken Kante befindet. Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich über der unteren Wand und unter der oberen Wand und angrenzend an sie befinden. Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen. Für die obige Zeichnung muss der Roboter beispielsweise die folgenden Zellen ausfüllen (siehe Abbildung):

Der endgültige Standort des Roboters kann beliebig sein. Der Algorithmus muss das Problem für eine beliebige Feldgröße und jede zulässige Lage von Wänden innerhalb eines rechteckigen Felds lösen. Beim Ausführen des Algorithmus sollte der Roboter nicht zusammenbrechen.


v
1103_GIA_2011


Es gibt eine horizontale Wand auf dem unendlichen Feld. Die Länge der Mauer ist unbekannt. Vom rechten Ende der Wand erstreckt sich eine vertikale Wand nach unten, ebenfalls von unbekannter Länge. Der Roboter befindet sich über einer horizontalen Wand in einem Käfig, der sich am linken Rand befindet. Die Abbildung zeigt eine der möglichen Anordnungen der Wände und des Roboters (der Roboter ist mit dem Buchstaben „P“ gekennzeichnet).

Schreiben Sie einen Algorithmus für den Roboter, der alle Zellen malt, die sich über der horizontalen Wand und rechts von der vertikalen Wand und angrenzend an sie befinden. Der Roboter muss nur die Zellen übermalen, die diese Bedingung erfüllen. Zum Beispiel muss der Roboter für das obige Bild die folgenden Zellen übermalen (siehe Bild).

Bekanntschaft mit dem Programm Kumir Beherrschung der Grundlagen der Programmierung.

Darin können die Schüler praktische Fähigkeiten zum Erstellen und Debuggen eines Algorithmus erwerben und mit Darstellern wie Roboter, Zeichner, Wassermann, Heuschrecke und Schildkröte zusammenarbeiten.

Beim Studium eines der schwierigsten Teilbereiche der Informatik „Algorithmisierung und Programmierung“.

Zweck der Entwicklung :

Herunterladen:


Vorschau:

Methodenentwicklung in der Informatik.

Thema: „Roboterdarsteller im KuMir-Programm im Informatikunterricht“

Techniklehrer "Informatik und IKT"

Erläuterungen

Entwicklungsziel: die Möglichkeiten der Programmierung am Beispiel eines bestimmten ausführenden Roboters unter Verwendung der KUMIR-Umgebung zu studieren; praktische Fertigkeiten vermitteln, um mit dem Darsteller zu arbeiten.

Methodische Entwicklungfür den Informatikunterricht zusammengestelltAm Computer üben: Arbeit mit dem pädagogischen Vollstrecker von Algorithmen; Erstellen von linearen, verzweigenden und zyklischen Algorithmen zur Verwaltung eines Ausführenden; Erstellung von Algorithmen mit komplexer Struktur; Verwendung von Hilfsalgorithmen (Prozeduren, Unterprogramme).

Studierende sollten wissen:

  • Was ist ein Darsteller? SKI Robot, Mittwochskünstler Robot;
  • Was ist ein Algorithmus?Was sind die Haupteigenschaften des Algorithmus?
  • Schreibweisen von Algorithmen: Flussdiagramme, pädagogische algorithmische Sprache;grundlegende algorithmische Konstruktionen: Folgen, Verzweigen, Schleife; Strukturen
  • Algorithmen; ⇒ Zuordnung von Hilfsalgorithmen; Technologien zum Erstellen komplexer Algorithmen:

Die Studierenden sollten in der Lage sein:

  • Beschreibungen von Algorithmen in einer lernenden algorithmischen Sprache verstehen;
  • Durchführen einer Algorithmusverfolgung für einen bekannten Ausführenden;
  • komponieren Sie lineare, verzweigende und zyklische Steueralgorithmen für den Roboter-Executor; Teilaufgaben zuweisen; Hilfsalgorithmen definieren und anwenden.

Sitzung 1 (2 Stunden) Lektion 1.

Performer-Roboter.Executor-Befehlssystem.

Unterrichtsplan.

  1. Beschreibung des UCS des Ausführenden, der Umgebung des Ausführenden.

2. Analyse typischer Roboteralgorithmen.

Während des Unterrichts.

Betrachten Sie die Beschreibung des Darstellers.

Ausführende Umgebung: Performer Der Roboter kann sich durch das Labyrinth bewegen, das auf einer in Zellen unterteilten Ebene gezeichnet ist.

SKI-Roboter : einfache Befehle: hoch, runter, links, rechts, Farbe.

Logikbefehle: (Zustandsprüfungen)

oben frei unten frei

links frei rechts frei.

Logische Verknüpfungen: AND, NOT, OR:

Beispiel: (Nicht links frei) oder (Nicht rechts frei)

Verzweigungsbefehl: Zyklusbefehl:

Wenn Bedingung dann nts während Bedingung

Reihe von Befehlen Reihe von Befehlen

alle kts

(In den CIMs von 2009 unterschieden sich die Befehle des Roboters von denen, die Kindern vertraut waren, was dazu führte, dass Verwechslung :)

Verzweigungsbefehl: Zyklusbefehl:

Wenn Bedingung dann nts während Bedingung tun

Reihe von Befehlen Reihe von Befehlen

ende ende

Gesamtansicht des Kumir-Programmfensters. Grafische Umgebung des Roboters:

In den Demo-CIMs von 2010 wurde das Befehlsformat in geändert gewohnheitsmäßig

Die Reihenfolge der Erstellung des Algorithmus:

1. Mannschaften Extras -Startumgebung bearbeitenzeichne Wände auf das Roboterfeld und bringe den Roboter in seine Ausgangsposition.

2.Befehle Roboter - Startumgebung ändernSpeichern Sie die neue Umgebung.

3.Befehle Einfügen - Roboter verwendenKünstler angeben.

4. Schreiben Sie im Dokumentfenster den Algorithmus über das Menü Einfügung.

5. Befehlsausführung – Führen Sie den Algorithmus kontinuierlich (oder Schritt für Schritt) aus.

6. Betrachten Sie das Ergebnis der Algorithmusausführung und debuggen Sie es gegebenenfalls.

Lektion 1 (2 Stunden) Lektion 2.

Praktische Arbeit "Zusammenstellung linearer Algorithmen.

Aufgaben: 1. Roboter an beliebiger Stelle im Feld. Färben Sie die Zelle über, unter und rechts von der Startposition.

  1. Roboter an beliebiger Stelle im Feld. Bewegen Sie den Roboter um 4 Felder nach rechts und übermalen Sie ihn.
  2. Erstellen Sie eine neue Startumgebung, indem Sie ein 4-Zellen-Quadrat auf das Brett zeichnen. Schonen Sie die Umwelt als Anfang.
  3. Erstellen Sie eine neue Ausgangsumgebung, indem Sie einen Korridor mit Durchgängen in die Wände auf dem Feld zeichnen. Speichern Sie die Umgebung als obst2.fil. Ändern Sie die Startumgebung in die neu erstellte.

Sitzung 2 (2 Stunden) Lektion 1.

Thema : Verzweigung und sequentielle Verfeinerung des Algorithmus.

Analyse von CIM-Aufgaben mit dem Robot Executor.

Roboter verwenden

Al Kim 2009

früh

wenn nicht unten locker

dann nach rechts

alle

wenn nicht unten locker

dann nach rechts

alle

wenn nicht unten locker

dann nach rechts

alle

con

Roboter verwenden

Al Kim 2010

früh

wenn nicht unten locker

dann nach rechts

alle

wenn nicht unten locker

dann nach rechts

alle

wenn nicht unten locker

dann nach rechts

alle

con

Etc. Sklave. Nr. 14. Kompilieren und Debuggen von Verzweigungsalgorithmen

Aufgaben. Siehe Anhang.

Lektion 3. Zyklische Algorithmen. Lektion 1-2

Ziel: Enthüllen Sie die Essenz des Konzepts eines Zyklus in Algorithmen, zeigen Sie die Formen des Schreibens von Zyklen in Algorithmen, vermitteln Sie Fähigkeiten zum Erstellen und Schreiben zyklischer Algorithmen.

Etc. Sklave. Nr. 15. Kompilieren und Debuggen von zyklischen Algorithmen

1. Erstellen Sie einen Algorithmus, der alle inneren Zellen neben der Wand malt.

Roboter verwenden

alg

früh

nc während rechts frei

übermalen; Rechts

kts

nc, während der Boden frei ist

übermalen; Nieder

kts

nc bis der Boden locker ist

übermalen; Nach links

kts

con

2. Erstellen Sie einen Algorithmus, der alle Zellen zwischen dem Roboter und der Wand füllt. Der Abstand zur Wand ist unbekannt.

Roboter verwenden

alg

früh

nc während rechts frei

Rechts; übermalen

kts

con

3. Erstellen Sie einen Algorithmus, der alle Zellen zwischen zwei Wänden übermalt.

Roboter verwenden

alg uch3

früh

nc noch (nicht oben lose) oder (nicht unten lose)

Rechts

if (nicht oben frei) und (nicht unten frei)

dann

übermalen

alle

kts

con

4. Erstellen Sie einen Algorithmus, der alle Zellen um eine rechteckige Wand füllt.

alg uch4

früh

malen;auf

nc bis rechts locker

malen;auf;

kts

malen; richtig

nc bis der Boden locker ist

malen; richtig;

kts

übermalen; nach unten

nc bis locker gelassen

Farbe; Daunen;

kts

malen;links

nc bis oben locker

übermalen; links;

kts

con

Roboter verwenden

alg uch5

früh

Rechts

nc bis der Boden locker ist

übermalen; Rechts

kts

übermalen; Nieder

nc frei gelassen

übermalen; Nach links

kts

nc bis locker gelassen

übermalen; Nieder

kts

malen;links;malen; hoch;

nc während top frei

übermalen; hoch

kts

nc bis oben locker

übermalen; Nach links

kts

con

Aktivität 4 Lektion 1

Hilfsalgorithmen.

Ziel: Einführung in das Konzept des Haupt- und Hilfsalgorithmus; erklären Sie die Regeln für die Verwendung des Hilfsalgorithmus; Analysieren Sie Beispiele für Algorithmen mit einem Hilfsverb.

Unterrichtsplan

1.Einführung neuer Begriffe (Haupt- und Hilfsalgorithmus, Call) und Erläuterung neuer Konzepte.

2. Analyse von Beispielen zur Lösung von Problemen mit einem Hilfsalgorithmus.

Bei der Lösung einiger Probleme ist es zweckmäßig, sie in kleinere Teilaufgaben aufzuteilen, von denen jede als unabhängiger Algorithmus entworfen werden kann. Dabei wird zunächst der sogenannte Hauptalgorithmus zusammengestellt, bei dem Aufrufe von Hilfsalgorithmen zur Lösung später hinzukommender Teilaufgaben verwendet werden. Diese Art von Lösung heißtsequentielle Verfeinerungsmethode.Es erlaubt einer Gruppe von Programmierern, an einem Projekt zu arbeiten, während jeder seine eigene Teilaufgabe löst.

Jeder Hilfsalgorithmus kann bei der Problemlösung ggf. in kleinere Hilfsalgorithmen aufgeteilt werden.

Der Befehl zum Ausführen des Hilfsalgorithmus wird aufgerufen Herausforderung und wird in den Körper des Hauptalgorithmus geschrieben.

Ein und derselbe Algorithmus kann gegenüber anderen Algorithmen als Haupt- und Hilfsalgorithmus betrachtet werden. In einer algorithmischen Sprache wird der Hauptalgorithmus zuerst geschrieben, und Hilfsalgorithmen werden darunter in einer Reihe geschrieben.

Aufgabe 1:

Der Roboter befindet sich in der oberen linken Ecke des Feldes. Es gibt keine Wände oder schattierten Zellen. Erstellen Sie einen Algorithmus, indem Sie einen Hilfsalgorithmus verwenden und vier Kreuze auf einer horizontalen Linie zeichnen. Die Endposition des Roboters kann beliebig sein.

Lösung

Analyse an der Tafel:

Aufgabe2. Der Roboter befindet sich in der oberen linken Ecke des Feldes. Es gibt keine Wände oder schattierten Zellen. Schreiben Sie einen Algorithmus, der ein 8 x 8 Quadrat in einem Schachbrettmuster malt. Die Endposition des Roboters kann beliebig sein.

Aktivität 4, Lektion 2

Praktische Arbeit am PC „Problemlösung mit Hilfsalgorithmen“.

Ziel : Vermittlung praktischer Fähigkeiten zur Konstruktion von Algorithmen durch die Methode der sequentiellen Verfeinerung.

Unterrichtsplan

1. Die Aufgabe wird vollständig vom PC erledigt. Die Schüler erhalten Aufgaben und bearbeiten sie in der Kumir-Softwareumgebung. Die Ergebnisse der Arbeit werden zur späteren Überprüfung als Dateien gespeichert.

Aufgabe 1 . Der Roboter befindet sich in der unteren linken Ecke des Feldes. Es gibt keine Wände oder schattierten Zellen. Schreiben Sie einen Algorithmus, der 6 vertikale Streifen gleicher Länge in 6 Zellen malt. Die Endposition des Roboters kann beliebig sein.

Aufgabe2 . Erstellen Sie mit Hilfe von Hilfslinien einen Algorithmus zum Übermalen der Zellen, die die Zahl 1212 bilden.

Hausaufgaben: Überlegen Sie sich einen Algorithmus, der das folgende Bild zeichnet: Um das Problem zu lösen, wenden Sie zwei Hilfsalgorithmen an.

Aktivität 5 Lektion 1-2

Prüfung

"Zusammenstellung des Algorithmus in der Umgebung des Vollstreckers Robot".

Ziel: das erworbene Wissen über die Erstellung und Analysefähigkeit von Algorithmen in der Kumir-Softwareumgebung zu testen.

Aufgaben für die Kontrollarbeit sind nach Schwierigkeitsgraden unterteilt und umfassen 3 Aufgaben mit dem ausführenden Roboter (Aufgaben 1 und 2 - für Verzweigungen und Schleifen, Aufgabe 3 - für die Verwendung eines Hilfsalgorithmus). Die Texte der Aufgaben sind im Anhang angegeben.

Die Anfangs- und Endbedingungen und die erstellten Algorithmen werden als Datei aufgezeichnet.

Die Note richtet sich nach dem Schwierigkeitsgrad der Aufgabe. Der Student hat das Recht, die Art der Aufgabe zu wählen.




Performer-Roboter Befehlssystem für den Performer-Roboter Bewegungsbefehle: hoch, runter, links, rechts Der Roboter bewegt sich eine Zelle hoch, runter, links, rechts. Der Befehl zum Übermalen - übermalt die Zelle, in der der Roboter steht. Überprüfung der Wahrheit der Bedingung: frei von oben, frei von unten, frei von links, frei von rechts Der Roboter prüft die Wahrheit der Bedingung des Fehlens einer Wand in der Zelle, in der sich der Roboter befindet. Sie können den Datensatz der zusammengesetzten Bedingungen verwenden, die durch die logischen Operationen AND, OR, NOT gebildet werden.




Performer Robot Direkte Umgebungsbearbeitung Alle Umgebungsbearbeitungsbefehle werden mit der Maus ausgeführt: Wand setzen/entfernen - auf die Grenze zwischen Zellen klicken, Zelle bemalen/löschen - Zelle anklicken, Roboter bewegen - Maus auf die gewünschte Zelle ziehen .


Executor Robot Robot-Menübefehle Show Robot-Feld Macht das Robot-Überwachungsfenster sichtbar. Umgebung drucken Erstellt eine PDF-Datei, die die aktuelle Umgebung in Farbe oder Schwarzweiß zeigt. Umgebung in Datei speichern Erstellt eine Textdatei mit einer Beschreibung der Umgebung im internen Format *.fil. Diese Datei kann später als Startumgebung (Befehl Startumgebung ändern) oder beim Bearbeiten der Startumgebung (Befehl Startumgebung öffnen, Fenster bearbeiten) geladen werden. Als Startumgebung ändern Legt einen neuen Dateinamen für die Startumgebung fest (über den Standarddialog) und lädt eine neue Startumgebung. Zurück zur Ausgangsumgebung Macht die Ausgangsumgebung aktuell.


Performer Robot Bild der aktuellen Situation im Beobachtungsfenster Das Bild der aktuellen Situation wird immer komplett im Arbeitsbereich des Beobachtungsfensters für den Roboter platziert. Der Hintergrund des Arbeitsfeldes ist grün. Die schattierten Zellen sind grau. Zwischen den Zellen befinden sich dünne schwarze Linien. Wände Als dicke gelbe Linien dargestellt. In der Zelle des Arbeitsbereichs des Beobachtungsfensters wird der Roboter als Raute dargestellt.


Performer-Roboter-Beispiel 1. Lassen Sie uns einen Algorithmus namens "Knight's Move" erstellen, um den Roboter von Punkt A nach Punkt B zu bringen (Abb. 3). Der Algorithmus hat die Form (Abb. 4.). Nach seiner Ausführung bewegt sich der Roboter zum gewünschten Punkt (Abb. 5). Ein in der Sprache des Ausführenden geschriebener Algorithmus wird als Programm bezeichnet. Abb.3Abb.4 Abb.5











Lassen Sie uns heute über Zyklen sprechen. Lassen Sie uns herausfinden, was ein Zyklus ist und wie wir unserem Roboter beibringen, zyklische Algorithmen auszuführen.

So, was ist ein zyklus? Stellen Sie sich vor, wir befinden uns in einer Sportstunde und stehen vor der Aufgabe mach 7 Kniebeugen. Diese Aufgabe kann als linearer Algorithmus formalisiert werden und sieht dann etwa so aus:

mache eine Kniebeuge

mache eine Kniebeuge

mache eine Kniebeuge

mache eine Kniebeuge

mache eine Kniebeuge

mache eine Kniebeuge

mache eine Kniebeuge

Das heißt, wir haben den Befehl, eine Kniebeuge zu machen, 7 Mal wiederholt. Ist es sinnvoll, 7 identische Befehle zu schreiben? Vielleicht ist es einfacher, einen Befehl zu geben. mach 7 Kniebeugen? Sicherlich einfacher und richtiger. Das ist der Kreislauf. Sie können sich selbst an Beispiele von Zyklen aus dem Leben erinnern - es gibt einige davon.

Auf diese Weise linearer Algorithmus, wo die gleichen Befehle wiederholt werden, können wir ausgeben in Form eines zyklischen Algorithmus- ungefähr so:

7 mal wiederholen

mache eine Kniebeuge

Ende des Zyklus

Also haben wir in der Sprache, die wir erfunden haben, den Zyklus entworfen. Der Roboterdarsteller hat auch die Fähigkeit, Zyklen aufzuzeichnen. Darüber hinaus, Zyklen sind unterschiedlich.. Die Option, die wir gerade betrachtet haben, wird aufgerufen Schleife mit Zähler oder Schleife mit Parameter.

Arten von Zyklen.

Zyklus mit einem Zähler.

Schleife mit Zähler verwendet, wenn im Voraus bekannt ist, wie viele Wiederholungen durchgeführt werden müssen. Im obigen Beispiel mit Kniebeugen ist genau das der Fall.

Um eine Schleife mit einem Zähler für einen Executor zu schreiben, müssen Sie dessen Syntax kennen. Und er ist so:

nc<Anzahl der Wiederholungen> mal

<команда 1>

<команда 2>

<команда n>

Hier müssen wir die Anzahl der Wiederholungen (Anzahl) und die Befehle angeben, die wiederholt werden. Es werden Befehle aufgerufen, die sich zyklisch wiederholen Schleifenkörper.

Schauen wir uns das an einem Beispiel an.

Anfangs befand sich der Roboter in der oberen linken Zelle.

Lösen wir das Problem zunächst linear. In diesem Fall übermalen wir die aktuelle Zelle und verschieben eine Zelle nach rechts, und das Programm sieht folgendermaßen aus:
Roboter verwenden
alg
früh

übermalen

Rechts

übermalen

Rechts

übermalen

Rechts

übermalen

Rechts

übermalen

Rechts

übermalen

Rechts

übermalen

Rechts

Wie Sie sehen können, werden die Befehle zum Übermalen und nach rechts 7 Mal wiederholt. Lassen Sie uns nun das Programm mit einer Schleife umschreiben. Um einen Zyklus in Ihr Programm einzufügen, können Sie übrigens das Menü verwenden Einfügung Menüpunkt wählen nc-Zeit-kc oder drücken Sie eine der Tastenkombinationen Esc, P(Russischer Buchstabe Р) oder Esc, H(Lateinischer Buchstabe H). Und Tasten müssen nacheinander gedrückt werden- zuerst Esc, loslassen und erst dann P oder H.

Hier ist also unsere Zyklusprogramm wird so aussehen:

Roboter verwenden

nc 7 mal

übermalen

Rechts

Wenn wir es ausführen, werden wir sehen, dass das Ergebnis dasselbe sein wird - 7 gefüllte Zellen. Allerdings ist das Programm aus algorithmischer Sicht kürzer und viel intelligenter geworden!

Als Aufwärm- und Festigungsübung schlage ich vor, selbstständig ein Programm für den Roboter zu schreiben, das ein Quadrat mit einer Seitenlänge von 7 Feldern zeichnet. Natürlich mit einem Kreislauf. Warten auf die Lösung in den Kommentaren.

Bedingte Schleife.

Beim Lösen von Problem 19 des GIA in Informatik mit einem Roboter funktioniert es nicht, eine Schleife mit einem Zähler zu verwenden. Denn dort ist das Feld meist unendlich und die Wände haben keine bestimmte Länge. Daher können wir die Anzahl der Wiederholungen für eine Schleife nicht mit einem Zähler bestimmen. Aber egal - es wird uns helfen Schleife mit Bedingung.

Kehren wir zum Sportunterricht zurück und ändern die Aufgabe. Schließlich darf der eine keine 7 Kniebeugen machen, während der andere 27 schafft. Kann man das bei der Erstellung eines Zyklus berücksichtigen? Bestimmt. Nur verwenden wir jetzt keinen Zähler (Anzahl der Wiederholungen), sondern eine Bedingung. Machen Sie zum Beispiel Kniebeugen, bevor Sie müde werden. In diesem Fall macht eine Person keine bestimmte Anzahl von Kniebeugen, sondern hockt, bis sie müde wird. Und unsere Schleife in der abstrakten Sprache sieht so aus:

Tschüss nicht müde

mache eine Kniebeuge

Ende des Zyklus

Die Worte sind in unserem Fall nicht müde - das ist eine Bedingung. Wenn es wahr ist, wird die Schleife ausgeführt. Wenn es falsch (müde) ist, wird der Rumpf der Schleife nicht ausgeführt. Der Roboterdarsteller hat mehrere Bedingungen

oben locker

unten locker

übrig geblieben

Recht frei

obere Wand

untere Wand

linke Wand

rechte Wand

Aber im Zustand von Problem 19 der GIA sind nur die ersten 4 angegeben, also werden wir nur sie verwenden.

Lassen Sie uns nun die nächste Aufgabe für den Roboter lösen – zeichnen Sie eine vertikale Linie vom linken zum rechten Feldrand, indem Sie eine Schleife mit einer Bedingung verwenden. Anfangs befindet sich der Roboter in der oberen linken Ecke.

Lassen Sie uns zuerst einen verbalen Algorithmus formulieren – das heißt, wir werden in Worten beschreiben, was der Roboter tun muss. Dieser Algorithmus klingt ungefähr so:

« Machen Sie auf der rechten Seite einen Schritt nach rechts und übermalen Sie die Zelle »

Als Ergebnis wird der Roboter durch alle Zellen nach rechts laufen und sie übermalen, bis die Wand auf der rechten Seite ist.

Der Quellcode für unser Robot-Programm sieht in etwa so aus:

Roboter verwenden

nc während rechts frei

Rechts

übermalen

Als Ergebnis der Ausführung dieses Programms sehen wir das folgende Bild: