JavaKara Aufgaben. 1 Kara und die Blätter... (einfach)

Ähnliche Dokumente
Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

Aufgaben zu JavaKara: Arrays

Einfaches Labyrinth Kleeblatt-Suche

Wie funktioniert Kara?

Tutorial zum Umgang mit Scratch

AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE)

Kapitel 2: Programmfluss steuern

Grundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte

Algorithmen - unplugged

PROGRAMMIEREN. Kapitel 1 Erste Schritte

Kara-Programmierung. Mag. Karen Hollweger, BG/BRG Bad Ischl Informatik, Mathematik

Vom Leichtesten zum Schwersten Sortieralgorithmen

Kurze Begründung, warum der Ausdruck korrekt ist oder jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist

Kara programmieren als Automat

Arbeitsblatt zu Methoden

Was ändert sich, wenn zu Beginn eine andere Anzahl n an Streichhölzern auf dem Haufen liegt?

Kontextfreie Grammatiken

Fraktale. Mathe Fans an die Uni. Sommersemester 2009

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

2.6. Aufgaben zu Kongruenzabbildungen

3 Programme benennen und aufrufen

FRAKTALE. Eine Dokumentation von Dominik Assmann, Philipp Gewessler und Paul Maier

Übungen zu gewöhnlichen Differentialgleichungen Lösungen zu Übung 23

Pig Game Spielanleitung

Am Anfang wird auf ein Spielfeld ein regelmäßiges 2012-Eck gezeichnet.

STERNBURG BINGO STERNBURG BINGO UND SO FUNKTIONIERT S: MITMACHEN UND TOLLE PREISE GEWINNEN! RAUM FÜR EIGENE BEMERKUNGEN, GRÜSSE ETC.

Bubblesort. Leitprogrammartige Unterrichtsunterlagen von Lucia Keller

Greenfoot: Verzweigungen

Kapitel 2 Einfache Schleifen mit dem Befehl repeat

MB 10. Seiten im Materialblock: Wissensspeicher ab Seite MB 11 Methodenspeicher Seite MB 14 Arbeitsmaterial ab Seite MB 15 Checkliste Seite MB 23

Einführung. 1 Vektoren

Programmieren mit xlogo

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

17. Berliner Tag der Mathematik 2012 Wettbewerb Stufe III: Klassen 11 bis 12/13

Digitale Typografie (SS 2016)

1/12. IdeenSet Robotik. Pro-Bot Aufgabenblätter. IdeenSet Robotik. PHBern 2015,

Kapitel 1. Koordinaten im Raum. 1.1 Schrägbilder - Kavalier-Perspektive Koordinaten

Sprachen sind durch folgenden Aufbau gekennzeichnet:

START MATHEMATIK-STAFFEL 2008 Du hast 60 Minuten Zeit um die 20 Aufgaben zu bearbeiten. Insgesamt kann man 500 Punkte erreichen.

Einführung in die objektorientierte Programmierung mit C++

Jgst. 11/I 2.Klausur

2. Hausübung Diskrete Mathematik SS 2003

2 Teil 2: Nassi-Schneiderman

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Prüfung Programming, Automation, Computation

5. Einführung in die Algorithmik

Aufgabenblatt 3 - Events und Arrays

1 Vektorrechnung als Teil der Linearen Algebra - Einleitung

Ausleuchtung/Überwachung von polygonalen Flächen

ZAHLENMAUERN UND ZAHLENDREIECKE. Korrekturen, Verbesserungsvorschläge und Anregungen bitte an herrmann bei mathematik.tu-darmstadt.

Beispiellösungen zu Blatt 65

Biograe Grundlagen Arten Anwendung Problem. L-Systeme. Fabian Trattnig, Georg Messner, Benedikt Huber. 25. Jänner 2008

Aufnahmeprüfung 2016 für die Berufsmaturitätsschulen des Kantons Zürich

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Tag der Mathematik 2007

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

VEKTOREN. Allgemeines. Vektoren in der Ebene (2D)

Koordinatensystem, Strecken, Geraden

Ein Blick in den Garten meiner Nachbarn

Blende die Achsen aus! Dein Resultat sollte in etwa wie in der folgenden Abbildung aussehen.

Aufgaben 1. a) Male die Seite (Skala) des Geodreiecks, mit der Strecken gemessen werden, rot an. b) Markiere den Nullpunkt des Geodreiecks gelb.

Datenstrukturen und Algorithmen (SS 2013)

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Lektion 5: Turtle-Geometrie im Koordinatensystem

Anwendungen System Realisierung Algorithmik Theorie

HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1. Variables to store a true/false state: boolean movingright = true;

Aufgaben. Objektorientierte Programmierung

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Bisher wurden nur Prozeduren behandelt, in denen eine feste Abfolge von Befehlen durchzuführen war. Mit den Befehlswörtern

Thema aus dem Bereich Analysis Funktionen 1.Grades

Parallelogramme und Dreiecke A512-03

20. Essener Mathematikwettbewerb für Grundschulen 2017/2018

Schuleigener Arbeitsplan Fach: Mathematik Jahrgang: 5

Mathematik erzeugt grafische Kunstwerke und zauberhafte Videos: Was sind Fraktale?

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Mathematik, 2. Sekundarschule (bisheriges Lehrmittel)

Technische Berufsmaturitätsprüfung Baselland 2009 Mathematik Teil 2 (Mit Hilfsmitteln)

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

Aufgaben. Objektorientierte Programmierung

BeeBot. Worum geht es?

Quelle: programmierung/scratch. Wiederholungen. Informatik AG Goetheschule Dieburg Christian Wach

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5.

Praktikum Ingenieurinformatik. Termin 2a. Schleifen und Verzweigungen in C und mit MATLAB

Aufgabenblatt 3 - Events und Arrays

ARBEITSBLATT 14 ANALYTISCHE BERECHNUNGEN AM KREIS

Punkte mit besonderen Koordinaten 1

i I 7 Programmieren von Animationen Ein Quadrat, das Spuren hinterlässt

Kapitel 3: Variablen

2. Klausur Datenstrukturen und Algorithmen SS 2014

Aufnahmeprüfung 2014 Mathematik

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Henry Krasemann / Hilke Krasemann / Michael Friedrichs, LEGO -Boost-Roboter, dpunkt.verlag, ISBN

Zahlbereich Ganze Zahlen

Känguru der Mathematik 2017 Gruppe Ecolier (3. und 4. Schulstufe) Österreich

A n a l y s i s Differentialrechnung I

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Test zur Erfassung des Kenntnisstands

Transkript:

1 Kara und die Blätter... (einfach) Schreiben Sie ein Programm, das Kara bis zum nächsten Baum führt. Liegt auf einem Feld ein Blatt, soll Kara es aufnehmen; liegt auf einem Feld kein Blatt, eines hinlegen. Bei dem Baum angekommen ist das Programm zu beenden. 2 Kara, der Tunnelsucher I (einfach) Kara sucht den Eingang eines geraden Tunnels (Feld 2a). Schreiben Sie ein Programm, das ihn auf dem ersten Feld im Tunnelinnern anhalten lässt. Aber Achtung: manche Tunnels haben zunächst eine einseitige Wand, manche links, manche rechts. 3 Kara, der Tunnelsucher II (einfach) Kara will den Ausgang des Tunnels finden (Feld 2b). Dazu muss er zunächst den Tunnel durchqueren. Schreiben Sie ein Programm, das ihn auf dem ersten Feld nach dem Tunnel anhalten lässt er soll nicht bis zum Ende der Gallerie laufen! 1/10

4 Kleeblattsuche im Wald I (einfach) Kara sucht ein Kleeblatt. Er weiss, dass eines geradeaus vor ihm liegt - er muss nur um die Bäume herumlaufen. Glücklicherweise stehen nie zwei Bäume nebeneinander. Schreiben Sie ein Programm, das ihn bis zum Kleeblatt führt! 5 Kleeblattsuche im Wald II (einfach) Erweitern Sie Ihr Programm von Aufgabe 4 so, dass Kara auch mit mehreren nebeneinander stehenden Bäumen fertig wird! 6 Kleeblattsuche im Wald III (einfach) In Karas Welt gibt es Wälder mit Rundgängen, in denen Kara auf Kleeblättersuche geht. Jedes Feld in einem Rundgang hat genau zwei freie benachbarte Felder. Eines davon liegt hinter Kara, von diesem Feld aus ist auf das aktuelle Feld gekommen. Das heisst, genau hinter einem der drei Fragezeichen in der folgenden Abbildung ist ein leeres Feld, hinter den beiden anderen Fragezeichen liegen Felder mit Bäumen: 2/10

7 PacMan (mittel) Programmieren Sie Kara so, dass er die Spur von Kleeblättern "auffrisst"! Da Sie wissen, dass die Spur nie entlang eines Baumes geht, kann das Programm beendet werden, sobald Kara auf einem Kleeblatt vor einem Baum steht. Sie können selbst bestimmen, ob Sie auf einem Kleeblatt oder davor starten wollen. 8 Wand entlang laufen (mittel) Kara möchte einen Wald im Uhrzeigersinn patrouillieren. Programmieren Sie Kara so, dass er endlos im Uhrzeigersinn um diesen Wald läuft. 3/10

9 Slalom (mittel) Kara möchte zwischen den Bäumen Slalom fahren. Der Anfang des Slaloms ist im Bild eingezeichnet. Programmieren Sie Kara so, dass er den Slalom endlos hin- und zurück fährt. Am Anfang ist Kara immer so platziert, dass er zuerst eine Linkskurve machen muss. Wie lange der Parcour ist (wieviele Bäume der Slalom hat), weiss Kara zu Beginn natürlich nicht. Es soll ihm auch egal sein, ob die Bäume horizontal oder vertikal nebeneinander stehen. 10 Bilder invertieren (mittel) Programmieren Sie Kara so, dass er ein "Negativbild" von dem Kleeblattbild innerhalb des Baumrechtecks erstellt. Wo ein Kleeblatt liegt, soll er es aufnehmen, und wo keines liegt, soll er eines hinlegen. Kara startet immer oben links in der Ecke mit Blick nach rechts. 4/10

11 Spirale zeichnen (mittel) Programmieren Sie Kara so, dass er eine Kleeblatt-Spirale wie die obige zeichnet. Von innen nach aussen ist jede Kante der Spirale um eins länger als die vorangehende. 12 Dreiecke zeichnen (mittel) Programmieren Sie Kara so, dass er Dreiecke zeichnet! 13 Labyrinthe (schwierig) Führen Sie Kara durch das Labyrinth zum Kleeblatt. Jede horizontale Baumreihe, ausser der untersten, hat genau einen Ausgang, der in die nächst höhere Zeile führt. Diesen muss Kara jeweils finden. Hinter dem letzten Ausgang wartet das Kleeblatt auf ihn. Programmieren Sie Kara so, dass er das Kleeblatt findet und aufnimmt. Dabei soll er nie an einem Ausgang vorbeilaufen, ohne ihn zu benutzen! Zu Beginn schaut Kara immer nach rechts. 5/10

14 Game of life (schwierig) Kara möchte dem "Game of Life" zuschauen. Ausgedacht hat sich dieses "Spiel" der amerikanische Mathematiker Conway. Die Regeln sind einfach: Ein Feld in Kara's Welt ist entweder besetzt (Kleeblatt drauf) oder unbesetzt (kein Kleeblatt drauf). Die ganze Welt kann man sich als Population von Lebewesen vorstellen, aus der sich die nächste Generation nach folgenden Regeln entwickelt: 1. Ein leeres Feld wird in der nächsten Generation besetzt, wenn es genau drei besetzte Nachbarfelder hat. Beispiel: Das mittlere, leere Feld hat drei besetzte Nachbarfelder und wird daher "geboren": 2. Ein besetztes Feld bleibt auch in der nächsten Generation besetzt, wenn es zwei oder drei besetzte Nachbarfelder hat. Beispiel: Das mittlere Feld mit Kleeblatt (hell) hat drei besetzte Nachbarfelder und bleibt daher am Leben: 3. Alle Felder, bei denen die Voraussetzungen der Regeln 1 und 2 nicht zutreffen, sind in der nächsten Generation unbesetzt. Beispiel: Das mittlere Feld mit Kleeblatt (hell) hat zu viele besetzte Nachbarfeldern und "stirbt" daher: Auch bei relativ einfachen Startwelten (mit vier oder fünf besetzten Feldern) ist es schwierig, die Entwicklung der nächsten Generationen vorauszusehen. Man muß sie wirklich durchspielen! 6/10

15 Lindenmayer-Systeme / Fraktale (schwierig) Der Biologe Aristid Lindenmayer wandte kontextfreie Grammatiken an, um das Wachstum von Pflanzen zu beschreiben. Wir können in Kara ein einfaches Turtle-Graphiksystem simulieren, mit dem wir einige Beispiele von Lindenmayer-Systemn studieren können. Das Turtle-System kenne die Bewegungsbefehle der Kara-Umgebung: F für einen Schritt vorwärts sowie L und R für Links- beziehungsweise Rechtsdrehung um 90. Diese drei Befehle können als Alphabet für Lindenmayer-Grammatiken benutzt werden. Ein Wort, das aus den Buchstaben dieses Alphabets gebildet wird, ist eine Wegbeschreibung für die Turtle. Eine einfache Grammatik besteht beispielsweise lediglich aus der folgenden Ersetzungsregel: Diese Ersetzungsregel wird wiederholt auf ein beliebiges Wort angewendet, das aus den Buchstaben F, L und R besteht. Dabei wird jeweils jedes Vorkommen von F entsprechend der Ersetzungsregel ersetzt. Betrachten wir als Beispiel, wie die Regel zwei Mal auf das Wort "F" angewendet wird: Die Länge der resultierenden Zeichenkette wächst exponentiell. Die Zeichenkette beschreibt eine immer detaillierter werdende Schneeflockenkurve, wie sie in obersten Abbildung dargestellt ist. Programmieren Sie Kara so, dass er einfache Lindenmayer-Systeme anwenden und darstellen kann! Sie benötigen dazu eine Suche-/Ersetze-Regel, die angibt, wie die Zeichenkette generiert werden soll, sowie Wort, das als Ausgangspunkt für die Ersetzungen dient. Ihr Programm muss die Ersetze-Regel auf dieses Wort mehrmals anwenden und die dabei entstehende Zeichenkette schliesslich "interpretieren", das heisst, die in ihr enthaltenen Befehle durch Kara ausführen lassen. 16 Kleeblattbalken sortieren / BubbleSort (schwierig) 7/10

Kara hat etwas gegen Unordnung. Daher beschliesst er, die Balken von Kleeblätter in seiner Welt zu sortieren. Ein mögliches Sortierverfahren ist BubbleSort. Bubblesort funktioniert wie in der untenstehenden Abbildung dargestellt. Man "durchläuft" von oben nach unten die Welt und vergleicht immer zwei "Balken" von Kleeblättern miteinander. Wenn der untere kürzer ist als der obere, müssen sie vertauscht werden. Wenn zwei Balken vertauscht werden, muss nochmals vorne anfangen werden. Erst wenn bei einem Durchlauf aller Balken keine vertauscht werden mussten, sind sie sortiert. 8/10

17 Apfelmännchen zeichnen (sehr schwierig) Programmieren Sie JavaKara so, dass er "zweifarbige" Apfelmännchen zeichnet! Was ist ein Apfelmännchen? Das Apfelmännchen wurde von Benoit Mandelbrot entdeckt; sie repräsentieren die sogenannte Mandelbrot-Menge. Um erklären zu können, nach welchen Vorschriften eine Mandelbrot-Menge berechnet wird, stellen wir uns folgendes vor: Ein Mandelbus startet innerhalb eines Kreises an einem Anfangspunkt und fährt nach bestimmten Vorschriften einer Strecke nach. Gelangt der Mandelbus auf seiner Fahrstrecke ausserhalb des Kreises, so ist die Fahrroute ungültig und diese Fahrstrecke wird eliminiert, bleibt der Mandelbus hingegen immer im Kreis, so kann diese "Stecke" als gültig bezeichnet werden. Die Fahrstrecke besteht aus Punkten. Den den aktuellen Anfangspunkt im Kreis bezeichnen wir als (a b). Der Mandelbus startet im Punkt (a b) und kommt durch unten dargestellte Berechnung zum nächsten Punkt. x und y sind die aktuellen Koordinaten des Mandelbusses, beim Start also a und b. (x[neu] y[neu]) ist der nächste Punkt, zu dem sich der Mandelbus bewegt. Liegt nun einer dieser Punkte nach einer bestimmten Anzahl Berechnungen nicht mehr im Kreis, so ist die aktuelle Fahrroute ungültig. Vorgehen für die Berechnung der Punkte in einer Mandelbrot-Menge: Menge: 9/10

Man nehme einen Punkt (a b) innerhalb eines Kreises mit Radius 2 und rechne: x[neu] = x² - y² + a für die X-Koordinate des neuen Punktes, y[neu] = 2*x*y + b für die Y-Koordinate. Nun rechne man nach obiger Vorschrift die Fahrstrecke des Mandelbusses. Für weitere Stationen des Mandelbusses wird der Punkt (x[neu] y[neu]) immer zum aktuellen Punkt (x y). So lässt sich dann der nächste Punkt als (x[neu] y[neu]) berechnen. Diesen Vorgang führen wir für jeden Punkt des Kreises ( = Anfangspunkte) 100 mal durch. Wenn nach diesen 100 Iterationen mit dem gewählten Anfangspunkt der aktuelle Punkt (x y) nicht aus dem Kreis geraten ist, wird der zuvor gewählte Anfangspunkt eingefärbt. Aufgabe Schreiben Sie ein Programm, das in Kara's Welt Apfelmännchen zeichnet. Sie können wie folgt vorgehen: 1. Schreiben Sie ein Hauptprogramm, das alle Felder in Kara's Welt durchläuft. 2. Rechnen Sie dabei für jedes Feld die Koordinaten des Feldes um auf Koordinaten in einem Koordinatensystem mit (x_min=-2, x_max=2, y_min=-2, y_max=2). 3. Wenden Sie die obige Rechenvorschrift an, um rauszufinden, ob der entsprechende Mandelbus den Kreis mit Radius 2 verlässt oder nicht. 4. Falls der Bus den Kreis verlassen hat, legen Sie je ein Kleeblatt auf das entsprechende Feld in Kara's Welt 10/10