Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_iii_gra [2025-04-24 12:53] – [Aufgabe L21 – Popcorn (optional)] gragf_informatik:programmieren_iii_gra [2026-01-03 14:15] (aktuell) – [Elemente in einer Liste auswählen (Selektion) und verändern (Modifikation)] gra
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 ''random'' importieren und die Funktion ''randint'' verwenden.    * Ich kann das Modul ''random'' importieren und die Funktion ''randint'' verwenden.
-   * Ich kann bestimmte Elemente in einer Liste suchen.+   * Ich kann mit ''in'' fragen, ob ein bestimmtes Element in einer Liste vorkommt.
    * Ich kann bestimmte Elemente in einer Liste zählen.     * Ich kann bestimmte Elemente in einer Liste zählen. 
  
Zeile 98: Zeile 98:
 ==== Elemente in einer Liste auswählen (Selektion) und verändern (Modifikation) ==== ==== Elemente in einer Liste auswählen (Selektion) und verändern (Modifikation) ====
  
-Über den Index kann man auf ein **Element zugreifen**, das Element wird _ausgewählt_ oder **selektiert**. Dazu schreibt man zuerst den Namen der Liste und dann den Index in eckigen Klammern:+Über den Index kannst du auf ein **Element zugreifen**. Das Element wird _ausgewählt_ oder **selektiert**. Dazu schreibst du zuerst den Namen der Liste und dann den Index in eckigen Klammern:
 <code python> <code python>
 alphabet = ['a','b','c','d','e'] alphabet = ['a','b','c','d','e']
Zeile 107: Zeile 107:
 </code> </code>
  
-Einer Liste kann man Elemente **hinzufügen** und **entfernen**+Mit den Funktionen ''append'', ''insert'' und ''pop'' kannst du Elemente zu einer Liste **hinzufügen** und **entfernen**
 <code python> <code python>
 alphabet.append('f'  # Fügt Element hinten an, Liste nachher: ['a','b','c','z','e','f'] alphabet.append('f'  # Fügt Element hinten an, Liste nachher: ['a','b','c','z','e','f']
Zeile 115: Zeile 115:
 </code> </code>
  
-Die Länge einer Liste bestimmt man wie folgt:+Mit der Funktion ''len'' kannst du die Länge einer Liste abfragen:
 <code python> <code python>
-len(alphabet) # Anzahl Elemente in Liste+anzahl = len(alphabet) # Anzahl Elemente in Liste 
 +print(anzahl)
 </code> </code>
  
Zeile 464: Zeile 465:
  
 == 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 das Lied //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. Zum Beispiel beim Lied //Bruder Jakob//:
  
 {{:gf_informatik:programmieren_iii_gra:pasted:20250401-070509.png?400}} {{:gf_informatik:programmieren_iii_gra:pasted:20250401-070509.png?400}}
Zeile 474: Zeile 475:
  
 === Aufgabe L22 – Pixel-Art (für Fortgeschrittene) === === Aufgabe L22 – Pixel-Art (für Fortgeschrittene) ===
-Wir gehen von Aufgabe L20 aus und verändern sie wie folgt: +{{:gf_informatik:programmieren_iii_gra:pasted:20250424-125351.png?600}} 
- + 
 +Für diese Aufgabe benötigst du [[gf_informatik:programmieren_iv_gra|Funktionen]].  
 + 
 +Gehe von Aufgabe L20 aus und verändere sie wie folgt: 
 +  * Zeichne Quadrate statt kreisförmige Punkte. Erstelle hierzu eine Funktion ''square(color, side)'', der du die Farbe als String und die Seitenlänge als Zahl übergibst. Die Funktion zeichnet dann ein Quadrat mit gewünschter Farbe und Seitenlänge. 
 +  * Die zweidimensionale Liste für ein Bild ist nun mehrfarbig: Die Zahlen 0 bis 3 stehen für Positionen in der Farbliste ''colors'', siehe Code unten. 
 +  * Du kannst die [[https://www.trinket.io/docs/colors|Farbnamen hier]] (ohne Abstände) oder RGB-Hexwerte verwenden. Auf jeden Fall musst du die Werte in Anführungstriche setzen. 
 + 
 +<WRAP group> 
 +<WRAP column half> 
 +Folgende Listen... 
 +<code python> 
 +# 4 Farben: 1 für Hintgergrund, 3 für Bild 
 +colors = ("#2D1A2E", "#ADE3F9", "cornflowerblue", "#3671F4"
 + 
 +# Pixel-Liste: Zahlen sind Positionen in Farben-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]] 
 +</code> 
 +</WRAP> 
 + 
 +<WRAP column half> 
 +...entsprechen diesem Bild: 
 + 
 +{{:gf_informatik:programmieren_iii_gra:pasted:20250424-130408.png?220}} 
 +</WRAP> 
 +</WRAP> 
 + 
 +== Aufgabe == 
 + 
 +  - Wähle ein Bild aus dieser {{ :gf_informatik:8x8pixelart.jpg?linkonly|Kollektion aus dreifarbigen Bildern}}. 
 +  - 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 774: Zeile 817:
  
 </nodisp> </nodisp>
-<nodisp 2+<nodisp 1
-++++Lösungen L16-L21|+++++Lösungen L16-L22|
  
 === Aufgabe L16 === === Aufgabe L16 ===
Zeile 944: Zeile 987:
         playTone(popcorn[i], dauer, instrument = "guitar")         playTone(popcorn[i], dauer, instrument = "guitar")
     i = i + 1     i = i + 1
 +</code>
 +
 +=== Aufgabe L22 ===
 +<code python>
 +from gturtle import * 
 +morla = Turtle()
 + 
 +morla.right(90)
 +morla.penUp()
 +morla.hideTurtle()
 +
 +# 4 Farben: 1 für Hintgergrund, 3 für Bild
 +colors = ("#2D1A2E", "#ADE3F9", "cornflowerblue", "#3671F4")
 +
 +# Pixel-Liste: Zahlen sind Positionen in Farben-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, side):
 +    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, ypos)
 +    column = 0
 +    while column < 8:
 +        square(colors[pixels[row][column]], px_size)
 +        morla.forward(px_size)
 +        column = column + 1
 +    ypos = ypos - px_size
 +    row = row + 1
 </code> </code>
 ++++ ++++
  
 </nodisp> </nodisp>
  • gf_informatik/programmieren_iii_gra.1745499180.txt.gz
  • Zuletzt geändert: 2025-04-24 12:53
  • von gra