Difference between revisions of "Java - Methoden"

From Coders.Bay Wiki
Jump to navigation Jump to search
Line 20: Line 20:


==Tag 3==
==Tag 3==
====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===
===Kompezenzcheck===
====Aufgabe: Merge Sort====
====Aufgabe: Merge Sort====

Revision as of 12:19, 8 June 2022

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

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 3

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