Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:programmieren_iii_gra [2025-04-01 15:18] – [Lösungen] gra | gf_informatik:programmieren_iii_gra [2025-06-05 07:21] (aktuell) – [Programmieren Teil 3 – Listen (mit der while-Schleife)] gra | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Programmieren Teil 3 – Listen (mit der while-Schleife) ====== | ====== Programmieren Teil 3 – Listen (mit der while-Schleife) ====== | ||
| - | + | * Dieses Seite ist die Fortsetzung von [[gf_informatik: | |
| - | Dieses Seite ist die Fortsetzung von [[gf_informatik: | + | * Weiter zu [[gf_informatik: |
| ++++Lernziele: | ++++Lernziele: | ||
| Zeile 13: | Zeile 13: | ||
| * Ich kann Listen anaylsieren (z.B. Mittelwert oder Höchstwert ermitteln) oder verändern (z.B. Duplikate entfernen etc). | * Ich kann Listen anaylsieren (z.B. Mittelwert oder Höchstwert ermitteln) oder verändern (z.B. Duplikate entfernen etc). | ||
| * Ich kann das Modul '' | * Ich kann das Modul '' | ||
| - | * Ich kann bestimmte Elemente | + | * Ich kann mit '' |
| * Ich kann bestimmte Elemente in einer Liste zählen. | * Ich kann bestimmte Elemente in einer Liste zählen. | ||
| Zeile 464: | Zeile 464: | ||
| == Zusatzaufgabe 1 – Bruder Jakob == | == Zusatzaufgabe 1 – Bruder Jakob == | ||
| - | Die Popcorn-Melodie ist einfach mit Blick auf die Rhythmus: Alle Töne sind gleich lang. Bei den meisten Liedern ist das nicht so. Zu m Beispiel | + | Die Popcorn-Melodie ist einfach mit Blick auf die Rhythmus: Alle Töne sind gleich lang. Bei den meisten Liedern ist das nicht so. Zum Beispiel |
| {{: | {{: | ||
| Zeile 472: | Zeile 472: | ||
| * Erstelle dann eine zweite Liste für die Tondauern: Für jeden Ton der ersten Liste speichert diese Liste die entsprechende Dauer (Viertelton, | * Erstelle dann eine zweite Liste für die Tondauern: Für jeden Ton der ersten Liste speichert diese Liste die entsprechende Dauer (Viertelton, | ||
| * In der while-Schleife kannst du dann beide Listen gleichzeitig durchgehen. | * In der while-Schleife kannst du dann beide Listen gleichzeitig durchgehen. | ||
| + | |||
| + | === Aufgabe L22 – Pixel-Art (für Fortgeschrittene) === | ||
| + | {{: | ||
| + | |||
| + | Für diese Aufgabe benötigst du [[gf_informatik: | ||
| + | |||
| + | Gehe von Aufgabe L20 aus und verändere sie wie folgt: | ||
| + | * Zeichne Quadrate statt kreisförmige Punkte. Erstelle hierzu eine Funktion '' | ||
| + | * Die zweidimensionale Liste für ein Bild ist nun mehrfarbig: Die Zahlen 0 bis 3 stehen für Positionen in der Farbliste '' | ||
| + | * Du kannst die [[https:// | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP column half> | ||
| + | Folgende Listen... | ||
| + | <code python> | ||
| + | # 4 Farben: 1 für Hintgergrund, | ||
| + | colors = ("# | ||
| + | |||
| + | # Pixel-Liste: | ||
| + | pixels = [[0, 0, 0, 1, 1, 0, 0, 0], | ||
| + | [0, 0, 1, 1, 1, 1, 0, 0], | ||
| + | [0, 1, 1, 1, 1, 1, 1, 0], | ||
| + | [0, 1, 0, 1, 1, 0, 1, 0], | ||
| + | [0, 2, 2, 2, 2, 2, 2, 0], | ||
| + | [0, 0, 2, 0, 0, 2, 0, 0], | ||
| + | [0, 3, 0, 3, 3, 0, 3, 0], | ||
| + | [3, 0, 3, 0, 0, 3, 0, 3]] | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP column half> | ||
| + | ...entsprechen diesem Bild: | ||
| + | |||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | == Aufgabe == | ||
| + | |||
| + | - Wähle ein Bild aus dieser {{ : | ||
| + | - Passe die Farbliste und die Pixel-Liste so an, dass sie deinem Bild entsprechen. | ||
| + | - Passe deinen Code an, sodass die Turtle das gewünschte Bild zeichnet. | ||
| + | |||
| + | == Zusatzaufgabe == | ||
| + | Erweitere deine Pixelliste um eine weitere Dimension: Die Liste enthält mehrere Bilder, die nacheinander angezeigt werden, sodass eine Animation entsteht. Tipp: Starte mit bloss zwei Bildern. Verändere im zweiten Bild nur einzelne Punkte und beobachte den Effekt. | ||
| + | |||
| ===== Lösungen ===== | ===== Lösungen ===== | ||
| Zeile 770: | Zeile 816: | ||
| </ | </ | ||
| - | < | + | < |
| - | ++++Lösungen L16-L21| | + | ++++Lösungen L16-L22| |
| === Aufgabe L16 === | === Aufgabe L16 === | ||
| Zeile 940: | Zeile 986: | ||
| playTone(popcorn[i], | playTone(popcorn[i], | ||
| i = i + 1 | i = i + 1 | ||
| + | </ | ||
| + | |||
| + | === Aufgabe L22 === | ||
| + | <code python> | ||
| + | from gturtle import * | ||
| + | morla = Turtle() | ||
| + | |||
| + | morla.right(90) | ||
| + | morla.penUp() | ||
| + | morla.hideTurtle() | ||
| + | |||
| + | # 4 Farben: 1 für Hintgergrund, | ||
| + | colors = ("# | ||
| + | |||
| + | # Pixel-Liste: | ||
| + | pixels = [[0, 0, 0, 1, 1, 0, 0, 0], | ||
| + | [0, 0, 1, 1, 1, 1, 0, 0], | ||
| + | [0, 1, 1, 1, 1, 1, 1, 0], | ||
| + | [0, 1, 0, 1, 1, 0, 1, 0], | ||
| + | [0, 2, 2, 2, 2, 2, 2, 0], | ||
| + | [0, 0, 2, 0, 0, 2, 0, 0], | ||
| + | [0, 3, 0, 3, 3, 0, 3, 0], | ||
| + | [3, 0, 3, 0, 0, 3, 0, 3]] | ||
| + | |||
| + | # Ein Quadrat mit gewünschter Farbe zeichnen: | ||
| + | def square(color, | ||
| + | morla.setFillColor(color) | ||
| + | morla.startPath() | ||
| + | count = 0 | ||
| + | while count < 4: | ||
| + | morla.forward(side) | ||
| + | morla.right(90) | ||
| + | count += 1 | ||
| + | morla.fillPath() | ||
| + | |||
| + | # Pixel für Pixel gemäss Liste zeichnen: | ||
| + | px_size = 20 | ||
| + | row = 0 | ||
| + | xpos = 0 | ||
| + | ypos = 0 | ||
| + | while row < 8: | ||
| + | morla.setPos(xpos, | ||
| + | column = 0 | ||
| + | while column < 8: | ||
| + | square(colors[pixels[row][column]], | ||
| + | morla.forward(px_size) | ||
| + | column = column + 1 | ||
| + | ypos = ypos - px_size | ||
| + | row = row + 1 | ||
| </ | </ | ||
| ++++ | ++++ | ||
| </ | </ | ||