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-03-25 11:10] – [Lösungen] gragf_informatik:programmieren_iii_gra [2025-04-19 08:28] (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:programmieren_ii_gra|]]. 
-Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_ii_gra|]]. +  * Weiter zu [[gf_informatik:programmieren_iv_gra|]].
  
 ++++Lernziele:| ++++Lernziele:|
Zeile 414: Zeile 414:
  
 == Zusatzaufgaben == == Zusatzaufgaben ==
-  * Erstelle zusätzliche Bilder, [[https://xantorohara.github.io/led-matrix-editor/#|hier]] kannst du bestehende abrufen, neue erstellen und jeweils die Binär-Codes dazu abrufen. +  * Erstelle zusätzliche Bilder, [[https://xantorohara.github.io/led-matrix-editor/#|hier]] kannst du bestehende laden, neue erstellen und jeweils die Binär-Codes dazu abrufen. 
   * Erstelle Animationen aus mehreren Bildern.   * Erstelle Animationen aus mehreren Bildern.
  
 +
 +=== Aufgabe L21 – Popcorn (optional) ===
 +{{:gf_informatik:programmieren_iii_gra:pasted:20250331-211019.png?300}}
 +
 +Mit der Turtle-Funktion ''playTone'' kannst du einen Ton von bestimmter Frequenz für eine bestimmte Dauer spielen ein Instrument wählen. Beispiel:
 +<code python>
 +playTone(440, 300, instrument = "guitar")
 +</code>
 +Hier wird der Ton A4 (440 Hz) für 300 Millisekunden mit dem Klang einer Gitarre gespielt. Weitere Infos zur Funktion [[https://www.python-online.ch/index.php?inhalt_links=turtle/navigation.inc.php&inhalt_mitte=turtle/turtledoc.html#|hier]]. 
 +
 +Mit Listen können wir Melodien erstellen: Wir können alle Töne in einer Melodie in einer Liste speichern. 
 +<code python>
 +# Frequenzen der Noten von A3 bis G5
 +A3  = 220
 +B3  = 247
 +C4  = 262
 +D4  = 294
 +E4  = 330
 +F4  = 349
 +G4  = 392
 +A4  = 440
 +B4  = 494
 +C5  = 523
 +D5  = 587
 +E5  = 659
 +F5  = 698
 +F5s = 740
 +G5  = 784
 +P = 0
 +
 +popcorn = [
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, B4, C5, B4, C5, A4, B4, A4, B4, G4, A4, G4, A4, F4, A4, P, 
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, B4, C5, B4, C5, A4, B4, A4, B4, G4, A4, G4, A4, B4, C5, P,
 +    E5, D5, E5, C5, G4, C5, E4, P, 
 +    E5, D5, E5, C5, G4, C5, E4, P, 
 +    E5, F5s, G5, F5s, G5, E5, F5s, E5, F5s, D5, E5, D5, E5, C5, E5, P 
 +]
 +</code>
 +Obiger Code definiert erst die Frequenzen für die Töne A3 bis G5 (und P für Pause). Dann werden die Töne des Lieds [[https://youtu.be/Yx0KBLFG8qc?si=npQqnemJkc1lV2Fj|Pop Corn von Gershon Kingsley]] in einer Liste gespeichert. **Beachte:** P steht für Pause. Hier soll für die Dauer eines Tones kein Ton gespielt werden.
 +
 +**Aufgabe:** Schreibe ein Programm, das die Liste durchgeht und Ton für Ton der Melodie spielt. Bei einem Pausenton soll für die Dauer eines Tons nichts gespielt, also gewartet werden (mit der Funktion ''delay()'').
 +
 +== 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//:
 +
 +{{:gf_informatik:programmieren_iii_gra:pasted:20250401-070509.png?400}}
 +
 +Schreibe ein Programm, das die Melodie von Bruder Jakob korrekt spielt. 
 +  * Erstelle erst die Liste der Töne (ausgehnd von den Noten). [[https://mixbutton.com/music-tools/frequency-and-pitch/music-note-to-frequency-chart|Hier die Zuordnung zu den Frequenzen]]. 
 +  * Erstelle dann eine zweite Liste für die Tondauern: Für jeden Ton der ersten Liste speichert diese Liste die entsprechende Dauer (Viertelton, Halbton, ganzer Ton).
 +  * In der while-Schleife kannst du dann beide Listen gleichzeitig durchgehen. 
 ===== Lösungen ===== ===== Lösungen =====
  
Zeile 716: Zeile 771:
 </nodisp> </nodisp>
 <nodisp 2> <nodisp 2>
-++++Lösungen L16-L20|+++++Lösungen L16-L21|
  
 === Aufgabe L16 === === Aufgabe L16 ===
Zeile 807: Zeile 862:
 === Aufgabe L20 === === Aufgabe L20 ===
 <code python> <code python>
-rom gturtle import * +from gturtle import * 
 morla = Turtle() morla = Turtle()
  
Zeile 840: Zeile 895:
     ypos = ypos - 30     ypos = ypos - 30
     row = row + 1     row = row + 1
 +</code>
 +
 +=== Aufgabe L21 ===
 +<code python>
 +from gturtle import *
 +
 +# Frequenzen der Noten von A3 bis G5
 +A3  = 220
 +B3  = 247
 +C4  = 262
 +D4  = 294
 +E4  = 330
 +F4  = 349
 +G4  = 392
 +A4  = 440
 +B4  = 494
 +C5  = 523
 +D5  = 587
 +E5  = 659
 +F5  = 698
 +F5s = 740
 +G5  = 784
 +P = 0
 +
 +popcorn = [
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, B4, C5, B4, C5, A4, B4, A4, B4, G4, A4, G4, A4, F4, A4, P, 
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, G4, A4, E4, C4, E4, A3, P,
 +    A4, B4, C5, B4, C5, A4, B4, A4, B4, G4, A4, G4, A4, B4, C5, P,
 +    E5, D5, E5, C5, G4, C5, E4, P, 
 +    E5, D5, E5, C5, G4, C5, E4, P, 
 +    E5, F5s, G5, F5s, G5, E5, F5s, E5, F5s, D5, E5, D5, E5, C5, E5, P 
 +]
 +
 +dauer = 200
 +i = 0
 +
 +while i < len(popcorn):
 +    if popcorn[i] == 0:
 +        delay(dauer)
 +    else:
 +        playTone(popcorn[i], dauer, instrument = "guitar")
 +    i = i + 1
 </code> </code>
 ++++ ++++
  
 </nodisp> </nodisp>
  • gf_informatik/programmieren_iii_gra.1742901030.txt.gz
  • Zuletzt geändert: 2025-03-25 11:10
  • von gra