Difference between revisions of "Java - Methoden"

From Coders.Bay Wiki
Jump to navigation Jump to search
Line 1: Line 1:
==Tag 1==
==Tag 1==
===Methoden===
====Aufgabe: Fizz Buzz====
Überarbeite dein Fizz Buzz Programm und verwende dabei Methoden.
https://wiki.streampy.at/index.php?title=Java_-_Einf%C3%BChrung#Aufgabe:_FizzBuzz
==Tag 2==
====Aufgabe: Game of Life====
====Aufgabe: Game of Life====


Line 19: Line 13:
Schreib einen Algorithmus der ein N X N Feld visualisert (z.B. # für lebende Zellen und Leerzeichen/'.' für tote Zellen) und Generationen durchlaufen lässt. Entweder X Generationen oder bis das Programm mit Strg+C abgebrochen wird.
Schreib einen Algorithmus der ein N X N Feld visualisert (z.B. # für lebende Zellen und Leerzeichen/'.' für tote Zellen) und Generationen durchlaufen lässt. Entweder X Generationen oder bis das Programm mit Strg+C abgebrochen wird.


==Tag 3==
==Tag 2==


====Aufgabe: Divide & Conquer - Maximum finden====
====Aufgabe: Divide & Conquer - Maximum finden====

Revision as of 08:42, 9 June 2022

Tag 1

Aufgabe: Game of Life

Conways Spiel des Lebens ist ein beliebter Algorithmus der Automatentheorie. Dabei hat man ein beliebig großes Feld (e.g. 100 x 100 Zellen). Jede der Zelle kann entweder lebendig oder tod sein. Eine Zelle hat immer acht Nachbarzellen (Moor). Die Anfangspopulation wird zufällig gewählt, danach entwickelt sich der Algorithmus in Generationen nach folgenden Regeln:

  • ist eine Zelle tot und hat genau 3 lebende Nachbarn, wird sie in der nächsten Generation geboren 👶
  • ist eine Zelle am Leben und hat weniger als 2 Nachbarn stirbt sie an Einsamkeit 😔
  • ist eine Zelle am Leben und hat 2 oder 3 Nachbarn, bleibt sie am Leben 🤝‍
  • ist eine Zelle am Leben und hat mehr als 3 Nachbarn, stirbt sie an Überbevölkerung 💀

Eine schöne Visualisierung des Algorithmus findet ihr auf https://bitstorm.org/gameoflife/.

Schreib einen Algorithmus der ein N X N Feld visualisert (z.B. # für lebende Zellen und Leerzeichen/'.' für tote Zellen) und Generationen durchlaufen lässt. Entweder X Generationen oder bis das Programm mit Strg+C abgebrochen wird.

Tag 2

Aufgabe: Divide & Conquer - Maximum finden

Schreibe ein Programm, dass in einem Array von Zahlen das Maximum findet. Da dieses Array sehr, sehr groß werden kann wollen wir das Divide & Conquer Prinzip anwenden.

Das Zahlenarray könnt ihr direkt anlegen, ihr müsst sie nicht von der Konsole einlesen. Bonus: Lass die Liste mit zufälligen Werten befüllen.

Die Maximum Suche sollten wir mit dem Divide & Conquer Prinzip umsetzen. Solange das Array 2 oder mehr Elemente behält, wird das Array in der Mitte geteilt und für beide Arrays das Maximum gesucht. Löse das Problem mit Hilfe einer Rekursion.

Kompezenzcheck

Aufgabe: Merge Sort

Implementiere einen Merge Sort Algorithmus!

Eine super Visualisierung zu Sortieralgorithmen findest du auf http://sorting.at/. Eine gute Erklärung zur Vorgehensweise des Merge Sortfindest du auf Wikipedia: https://de.wikipedia.org/wiki/Mergesort