s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Karten ziehen

Karten von einem Endlosstapel ziehen

Um Karten zu ziehen, nutzen wir einen endlosen Stapel von Karten, der bei Bedarf eine neue, zufällige Karte liefert. Die Klassendiagramme zeigen die wesentliche Struktur der Klassen Endlosstapel und Karte.

Klassendiagramme Endlosstapel und Karte

Aufgabe 1 - Endlosstapel nutzen

(a) Beschreibe die Struktur der beiden Klassen mit Hilfe der Klassendiagramme. Gehe dabei auch auf den Rückgabetyp der Methode zieheKarte ein.

(b) Lade das vorbereitete BlueJ-Projekt herunter, entpacke es und erzeuge einen Endlosstapel, indem du rechts auf die Klasse klickst und den Konstruktor auswählst.

(c) Ziehe eine Karte vom Stapel, indem du die Methode zieheKarte aufrufst. Experimentiere mit der Rückgabe, indem du die Buttons "Inspect" und "Get" benutzt. Beschreibe deren Wirkung.

(d) Ziehe eine Karte vom Stapel und speichere sie mit Hilfe des "Get"-Buttons in der Objektleiste unten in BlueJ. Wiederhole das mehrfach für die gerade gezogene Karte - also ohne wieder eine neue Karte zu ziehen. Untersuche die in der Objektleiste angezeigten Karten. Vervollständige den Satz:
„Objekte können unter ... Namen gespeichert werden, die sich alle auf das ... Objekt beziehen.‟

(e) Schreibe ein Hauptprogramm, das

  • einen Endlosstapel erzeugt,
  • zwei Karten vom Stapel zieht,
  • und diese ausgibt.

Mehrere Karten ziehen

Um Aktionen mehrfach zu wiederholen, gibt es in den meisten Programmiersprachen das Konzept von Schleifen, auch Wiederholungen genannt. Wir benötigen Schleifen hier, um mehrere Karten zu ziehen und verwenden hierfür for-Schleifen. Eine for-Schleife in Kotlin funktioniert nach folgendem Schema:

        für jedes Element x aus einer Menge von Elementen {
           // tue etwas (möglicherweise mit x)
        }
    
Konkret sehen for-Schleifen beispielsweise so aus:

Beispiel 1

fun main() {
    for (zahl in 1..5) {
        println("$zahl : ${ zahl * zahl }")
    }
}

Beispiel 2

fun main() {
    for (zahl:Int in 1..5) {
        println("$zahl : ${ zahl * zahl }")
    }
}

Beispiel 3

fun main() {
    for (zeichen in "Hallo") {
        println(zeichen)
    }
}

Beispiel 4

fun main() {
    var counter = 0
    for (zeichen in "Hallo") {
        counter = counter + 1
    }
    println("Anzahl Zeichen: $counter")
}

Die Beispiele verwenden teilweise String-Templates, um die Ausgabe zu vereinfachen. Im Abschnitt Tipps zu Kotlin sind diese beschrieben.

Aufgabe 2

Beschreibe die Benutzung einer for-Schleife an den obigen Beispielen.

Aufgabe 3

Schreibe in BlueJ ein Hauptprogramm, das einen Endlosstapel erzeugt, davon zehn Karten zieht und diese ausgibt.

Suche

v
100.123.4.1.1 Karten ziehen
Kopieren durch Anklicken

Rückmeldung geben