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_v_gra [2025-07-31 06:53] – [BP10 – Punkte-Kreis] gra | gf_informatik:programmieren_v_gra [2025-08-12 06:44] (aktuell) – [Programmieren Teil 5 – Die for-Schleife] gra | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Programmieren Teil 5 – Die for-Schleife ====== | ====== Programmieren Teil 5 – Die for-Schleife ====== | ||
* Dieses Seite ist die Fortsetzung von [[gf_informatik: | * Dieses Seite ist die Fortsetzung von [[gf_informatik: | ||
- | * Weiter zu [[gf_informatik: | ||
- | ++++ Lernziele:| | + | ++++ Vorausgesetzte Kompetenzen:| |
- | * tbd | + | |
- | * tbd | + | - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt: |
+ | | ||
+ | * Mit einer while-Schleife alle Elemente einer Liste durchgehen, sie auslesen/ | ||
+ | * Die Listen-Funktionen '' | ||
+ | * Mit '' | ||
+ | * Listen analysieren (z.B. Mittelwert ermitteln) oder verändern (z.B. bestimmte Elemente ersetzen etc.). | ||
+ | | ||
+ | - Ich kann jeden //Begriff// des vorhergehenden Satzes erklären. | ||
+ | ++++ | ||
+ | ++++Lernziele: | ||
+ | - Ich kann die for-Schleife verwenden, um durch Elemente einer Sequenz (Liste oder String) durchzugehen (über eine Sequenz iterieren). | ||
+ | - Ich kann die direkte for-Schleife von der indirekten for-Schleife (mit range-Funktion) unterscheiden und weiss, in welchen Fällen ich besser die indirekte for-Schleife verwende. | ||
+ | - Ich kann die **range**-Funktion verwenden, um auf- und absteigende Zahlenfolgen in beliebigen Bereichen mit beliebigen Schritten zu erstellen. | ||
+ | - Ich kann mit for-Schleifen... | ||
+ | - ...Code-Abschnitte beliebig oft wiederholen, | ||
+ | - ...Elemente von Sequenzen schrittweise bearbeiten oder ausgeben, | ||
+ | - ...Positionen von Elementen in einer Sequenz ermitteln, | ||
+ | - ...aus bestehenden Sequenzen neue, modifizierte Sequenzen erstellen, | ||
+ | - ...mehrere Sequenzen zu einer Sequenz zusammenführen, | ||
+ | - ...komplexe Muster mit Turtle-Graphics erstellen. | ||
++++ | ++++ | ||
Zeile 141: | Zeile 159: | ||
<WRAP group> | <WRAP group> | ||
- | <WRAP column | + | <WRAP column |
- | **Wenn du nicht durch eine bestehende Sequenz (Liste/ | + | **Wenn du nicht durch eine bestehende Sequenz (Liste/ |
Zum Beispiel soll die Schleife nur dazu dienen, bestimmte Befehle mehrfach auszufürhen: | Zum Beispiel soll die Schleife nur dazu dienen, bestimmte Befehle mehrfach auszufürhen: | ||
Zeile 155: | Zeile 173: | ||
</ | </ | ||
- | <WRAP column | + | <WRAP column |
**Wenn du nicht (nur) die Elemente, sondern (auch) die Positionen dieser Elemente benötigst.** | **Wenn du nicht (nur) die Elemente, sondern (auch) die Positionen dieser Elemente benötigst.** | ||
Zeile 165: | Zeile 183: | ||
if numbers[i] == 42: | if numbers[i] == 42: | ||
print(f" | print(f" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP column third> | ||
+ | **Wenn du durch zwei oder mehr Sequenzen (Listen/ | ||
+ | |||
+ | Zum Beispiel möchtest du die Elemente aus zwei Listen zusammenführen: | ||
+ | <code python> | ||
+ | laender = [" | ||
+ | staedte = [" | ||
+ | |||
+ | for i in range(len(laender)): | ||
+ | print(f" | ||
</ | </ | ||
</ | </ | ||
Zeile 405: | Zeile 436: | ||
* Die Fakultät zur Zahl 2 ist 1 * 2 = 2 | * Die Fakultät zur Zahl 2 ist 1 * 2 = 2 | ||
* Die Fakultät zur Zahl 3 ist 1 * 2 * 3 = 6 | * Die Fakultät zur Zahl 3 ist 1 * 2 * 3 = 6 | ||
+ | |||
+ | === Q2 – Punkte-Kreis Pro === | ||
+ | Siehe Aufgabe PB12. Erweitere die Funktion '' | ||
+ | * Wenn die Durchmesser-Liste leer ist, wird nur ein Kreis gezeichnet, ohne einen Punkt drauf. | ||
+ | * Wenn die Farben-Liste leer ist, werden die Punkte schwarz gezeichnet. | ||
+ | * Wenn die Farben-Liste kürzer ist als die Durchmesser-Liste, | ||
+ | * Wenn die Durchmesser-Liste kürzer ist als die Farben-Liste, | ||
===== - Lösungen ===== | ===== - Lösungen ===== | ||
Zeile 701: | Zeile 739: | ||
raffael.dot(size) | raffael.dot(size) | ||
- | dot_sizes | + | diameters |
- | dot_arc(dot_sizes) | + | dot_arc(diameters) |
</ | </ | ||
Zeile 712: | Zeile 750: | ||
def dot_arc(list): | def dot_arc(list): | ||
- | | + | |
for size in list: | for size in list: | ||
- | raffael.rightArc(100, | + | raffael.rightArc(100, |
raffael.dot(size) | raffael.dot(size) | ||
- | dot_sizes1 | + | diameters1 |
- | dot_sizes2 | + | diameters2 |
- | dot_arc(dot_sizes2) | + | dot_arc(diameters2) |
</ | </ | ||
Zeile 728: | Zeile 766: | ||
raffael = Turtle() | raffael = Turtle() | ||
- | def dot_arc(list): | + | def dot_arc(l_dia, l_col): |
- | colors = [" | + | |
i = 0 | i = 0 | ||
- | | + | |
- | for size in list: | + | for i in range(len(l_dia)): |
- | raffael.setPenColor(colors[i%3]) | + | raffael.setPenColor(l_col[i]) |
- | i += 1 | + | raffael.rightArc(100, |
- | raffael.rightArc(100, | + | raffael.dot(l_dia[i]) |
- | raffael.dot(size) | + | |
- | dot_sizes | + | diameters |
- | + | colors = [" | |
- | dot_arc(dot_sizes) | + | " |
+ | " | ||
+ | | ||
+ | dot_arc(diameters, colors) | ||
</ | </ | ||
++++ | ++++ | ||
</ | </ |