Jahrgangsstufe 8 - Informatik - Dienstag, der 09. Februar 2021


Kara macht etwas x mal!

Vorgaben:

Die folgenden Methoden sind schon vorgegeben:

def turnAround():
    kara.turnLeft()
    kara.turnLeft()

def gehe(schritte):
    for i in range(schritte):
        kara.move()

def lege(schritte):
    for i in range(schritte):
        kara.putLeaf()
        kara.move()

Wiederholung: Das Dreieck auf dem Arbeitsblatt "Geometrische Figuren"


def dreieck(hoehe):
  zeile = 1
  while zeile <= hoehe:
       lege(zeile)
       turnAround()
       gehe(zeile)
       kara.turnLeft()
       kara.move()
       kara.turnLeft()
       zeile = zeile + 1

# Aufruf:
dreieck(7)

Erläuterungen:

1. Durchgang: zeile = 1 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = hoehe --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
Schleife wird beendet.

und wenn, wie im Beispiel, hoehe = 7 ist:
1. Durchgang: zeile = 1 --> lege(1) -->...--> gehe(1) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(2) -->...--> gehe(2) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(3) -->...--> gehe(3) -->...--> zeile = 3 + 1 = 4
...
7. Durchgang: zeile = 7 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 7 + 1 = 8
Schleife wird beendet.

Musterlösung vom 02.02.2021

Aufgabe 2:


def quadrat(laenge):
  zeile = 1
  while zeile <= laenge:
       lege(laenge)
       turnAround()
       gehe(laenge)
       kara.turnLeft()
       kara.move()
       kara.turnLeft()
       zeile = zeile + 1

# Aufruf:
quadrat(7)

Erläuterungen:

1. Durchgang: zeile = 1 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = laenge --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
Schleife wird beendet.

und wenn, wie im Beispiel, laenge = 7 ist:
1. Durchgang: zeile = 1 --> lege(7) -->...--> gehe(7) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(7) -->...--> gehe(7) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(7) -->...--> gehe(7) -->...--> zeile = 3 + 1 = 4
...
7. Durchgang: zeile = 7 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 7 + 1 = 8
Schleife wird beendet.

Aufgabe 3:


def rechteck(laenge, breite):
  zeile = 1
  while zeile <= breite:
       lege(laenge)
       turnAround()
       gehe(laenge)
       kara.turnLeft()
       kara.move()
       kara.turnLeft()
       zeile = zeile + 1

# Aufruf:
rechteck(6, 5)

Erläuterungen:

1. Durchgang: zeile = 1 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = breite --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
Schleife wird beendet.

und wenn, wie im Beispiel, laenge = 7 und breite = 5 ist:
1. Durchgang: zeile = 1 --> lege(7) -->...--> gehe(7) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(7) -->...--> gehe(7) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(7) -->...--> gehe(7) -->...--> zeile = 3 + 1 = 4
...
5. Durchgang: zeile = 5 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 5 + 1 = 6
Schleife wird beendet.

Musterlösung vom 04.02.2021

Auftrag 2:


def rechteckRahmen(laenge, breite):
     lege(laenge-1)
     kara.turnRight()
     lege(breite-1)
     kara.turnRight()
     lege(laenge-1)
     kara.turnRight()
     lege(breite-1)
     kara.turnRight()

# Aufruf:
rechteckRahmen(7, 5)

Erläuterungen:

Kara muss waagerecht laenge-1 Blätter und senkrecht breite-1 Blätter legen. Er steht ja nach dem Legen hinter dem letzten gelegten Blatt und startet auf dieser Position mit weiterem Legen nach der Drehung.