Nachdem wir uns im letzten Praktikum die Lenkung angeeignet haben, wenden wir uns in diesem Praktikum Schleifen zu. So bezeichnet man Wiederholungen in Programmen.
Wenn du bisher noch kein c4ev3-Projekt in Eclipse angelegt hast, hilft dir unsere erste Praktikumsaufgabe dabei.

Zweck

Schleifen sind ein wichtiger Bestandteil von Programmen. Durch sie kann derselbe Vorgang mehrfach durchgeführt werden, ohne dass die gleichen Code-Zeilen immer wieder aufgeschrieben werden müssen. Dadurch ist es im Allgemeinen einfacher, den Überblick zu behalten.
Stellt euch vor, ihr würdet einen Vorgang mehrfach wiederholen wollen und schreibt dafür den Code immer wieder hintereinander auf. Wenn euch dann ein Fehler auffällt, müsst ihr diesen mühsam überall beheben. Mit einer Schleife geht die Korrektur viel einfacher und schneller. Somit helfen euch Schleifen dabei, einen guten Code zu programmieren.

Vorbereitung

Zur Vorbereitung erstellt ihr wie im vorherigen Praktikum zunächst ein neues c4ev3-Projekt. Wir starten diesmal mit einem „Empty Project“-Projekt, da wir die Befehle, welche Eclipse uns vorher abgenommen hat, nun selber vertiefen wollen.

Aufgabe

Programmiere den Roboter so, dass er ein kleines Quadrat fährt. Dazu soll der EV3 10 cm vorfahren und sich um 90° drehen. Dies muss er natürlich vier Mal machen, bis das Quadrat gefahren ist. Diesmal wollen wir den Befehl aber nur einmal programmieren und diese Programmierzeilen vier Mal ausführen lassen.

Die Befehle, die für dieses Praktikum notwendig sind, kannst du aus der EV3-API von c4ev3 heraussuchen, falls du sie nicht auswendig weißt. Wenn du gar nicht weiter kommst oder nicht weißt, wie du anfangen kannst, helfen dir die Tipps weiter unten vielleicht weiter. Aber versuche es erst ohne Hilfe.

Die Befehle für Schleifen in einer textuellen Programmiersprache sind abhängig von der gewählten Sprache. Da die grundlagen für Schleifen sich aber sehr ähnlich sind werden wir zum Thema Schleifen im Allgemeinen ein kleines Tutorial für euch erstellen, welches in Arbeit ist.

Brauchst du einen Tipp?

Die folgenden Tipps helfen dir, falls du nicht weißt, wie du anfangen sollst oder wenn du nicht weiterkommst.

  • Zerlege die Aufgabe in kleinere Teile. Zuerst fahren und wenn das funktioniert um 90° drehen. Anschließend muss darum eine Schleife gelegt werden, die den Code vier Mal wiederholt.
  • Achte immer darauf, dass du das aktuelle Projekt im Projekt-Explorer von Eclipse ausgewält hast.
  • Speichere dein Programm oft (Strg + S). So gehen Änderungen nicht verloren und beim Übertragen auf den EV3 wird die aktuelle Version übermittelt.
  • Denke daran, dein Programm zu kompilieren (Strg + B), bevor du den Code auf den EV3 überträgst.

Für die Aufgabe sind API-Aufrufe von c4ev3 nötig. Sie regeln, welche Befehle an den EV3 weitergeleitet werden. Wir haben das EV3-API etwas weiter oben im Text bereits verlinkt.

ZUR LÖSUNG WEITERSCROLLEN

Lösung

Das nachfolgende Listing zeigt das komplette Programm und damit auch eine mögliche Lösung.
Gerne könnt ihr eure Lösung mit dieser vergleichen. Wichtig ist aber, dass es hier nicht eine einzige richtige Lösung gibt. Teilt uns doch gerne mit, was ihr anders gemacht habt!

Wenn ihr gar nicht weiterkommt oder keine Ideen habt, wie ihr die Aufgabe angehen sollt, könnt ihr hier die Lösung anschauen. Wir empfehlen aber, in diesem Fall die vorherigen Praktika und diese Lösung genau nachzuvollziehen, um in den folgenden Praktika wieder voll einsteigen zu können.

[et_pb_dmb_code_snippet title=“Listing 1: Die Lösung zum c4ev3 Praktium 4″ code=“I2luY2x1ZGUgPGV2My5oPgoKaW50IG1haW4odm9pZCkKewoKCWludCBpID0gMDsKCglJbml0RVYzKCk7CgoJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKCXsKCQlPbkZ3ZFJlZyhPVVRfQkMsMjUpOwoJCVdhaXQoU0VDXzEpOwoKCQlPZmYoT1VUX0JDKTsKCQlXYWl0KE1TXzUwMCk7CgoJCU9uRndkUmVnKE9VVF9CLDI1KTsKCQlPZmYoT1VUX0MpOwoJCVdhaXQoU0VDXzEpOwoJCVdhaXQoTVNfNTAwKTsKCgkJT2ZmKE9VVF9CQyk7CgkJV2FpdChNU181MDApOwoJfQoKCglGcmVlRVYzKCk7CglyZXR1cm4gMDsKfQ==“ _builder_version=“3.23.3″ body_font=“||||||||“ language=“c“]I2luY2x1ZGUgPGV2My5oPgoKaW50IG1haW4odm9pZCkKewoKCWludCBpID0gMDsKCglJbml0RVYzKCk7CgoJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKCXsKCQlPbkZ3ZFJlZyhPVVRfQkMsMjUpOwoJCVdhaXQoU0VDXzEpOwoKCQlPZmYoT1VUX0JDKTsKCQlXYWl0KE1TXzUwMCk7CgoJCU9uRndkUmVnKE9VVF9CLDI1KTsKCQlPZmYoT1VUX0MpOwoJCVdhaXQoU0VDXzEpOwoJCVdhaXQoTVNfNTAwKTsKCgkJT2ZmKE9VVF9CQyk7CgkJV2FpdChNU181MDApOwoJfQoKCglGcmVlRVYzKCk7CglyZXR1cm4gMDsKfQ==[/et_pb_dmb_code_snippet]