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 [2024-12-30 09:29] hofgf_informatik:programmieren_iii [2025-02-10 14:02] (aktuell) hof
Zeile 7: Zeile 7:
 Bisher haben wir in Variablen einzelne Werte gespeichert. Kann man auch *mehrere Werte* in einer Variablen speichern? Ja! Mit Listen! Bisher haben wir in Variablen einzelne Werte gespeichert. Kann man auch *mehrere Werte* in einer Variablen speichern? Ja! Mit Listen!
  
-Eine Liste erstellt man wie folgt:+Eine Liste wird erstellt, indem die Elemente in `[` eckigen Klammern `]` (_en_brackets) eingeschlossen werden: 
 <code python> <code python>
 alphabet = ['a','b','c','d','e'] alphabet = ['a','b','c','d','e']
Zeile 14: Zeile 15:
 Die Liste im Beispiel oben hat die fünf **Elemente** `'a'`, `'b'`, `'c'`, `'d'` und `'e'`. Jedes dieser Elemente hat einen bestimmten **Index**, seine **Position** in der Liste: Die Liste im Beispiel oben hat die fünf **Elemente** `'a'`, `'b'`, `'c'`, `'d'` und `'e'`. Jedes dieser Elemente hat einen bestimmten **Index**, seine **Position** in der Liste:
  
-^ Position Index ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ +^ Position Index ^  `0 `1 `2 `3 `4
-|Element| 'a' | 'b' | 'c' | 'd' | 'e' |+|Element| `'a'`'b'`'c'`'d'`'e'|
  
 Beachte, dass das erste Element den **Index 0** hat! Beachte, dass das erste Element den **Index 0** hat!
Zeile 78: Zeile 79:
    * am Ende ein "K" anhängst    * am Ende ein "K" anhängst
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 97: Zeile 98:
  
 Betrachte die Liste: Betrachte die Liste:
 +
 <code python> <code python>
 likeable_football_clubs = ["bvb", "liverpool", "st. gallen", "bayern", "freiburg", "breitenrain"] likeable_football_clubs = ["bvb", "liverpool", "st. gallen", "bayern", "freiburg", "breitenrain"]
Zeile 104: Zeile 106:
    1. Die Bayern haben nichts in dieser Liste verloren. Bitte entferne sie, danke! Füge weiter deinen Lieblingsklub hinzu.    1. Die Bayern haben nichts in dieser Liste verloren. Bitte entferne sie, danke! Füge weiter deinen Lieblingsklub hinzu.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python> 
 <code python> <code python>
 likeable_football_clubs = ["bvb", "liverpool", "st. gallen", "bayern", "freiburg", "breitenrain"] likeable_football_clubs = ["bvb", "liverpool", "st. gallen", "bayern", "freiburg", "breitenrain"]
Zeile 133: Zeile 134:
 Natürlich sollen sämtliche Schritte voll automatisiert ablaufen. Tauscht man die Liste mit einer anderen Liste, so soll der Code auch funktionieren. Natürlich sollen sämtliche Schritte voll automatisiert ablaufen. Tauscht man die Liste mit einer anderen Liste, so soll der Code auch funktionieren.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 179: Zeile 180:
 </code> </code>
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 215: Zeile 216:
 Definiere eine Funktion `mittelwert(numbers)`, welcher eine Liste mit Zahlen übergeben wird. Von diesen Zahlen wird dann der Mittelwert berechnet und zurückgegeben. Übergibt man zum Beispiel eine Liste mit Schulnoten, so erhält man den Notendurchschnitt zurück. Zeige den Durchschnittswert dann in einem formatierten String an, z.B. "Der Mittelwert ist 4.46". Definiere eine Funktion `mittelwert(numbers)`, welcher eine Liste mit Zahlen übergeben wird. Von diesen Zahlen wird dann der Mittelwert berechnet und zurückgegeben. Übergibt man zum Beispiel eine Liste mit Schulnoten, so erhält man den Notendurchschnitt zurück. Zeige den Durchschnittswert dann in einem formatierten String an, z.B. "Der Mittelwert ist 4.46".
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 295: Zeile 296:
 * Modifiziere nun deinen Code so, dass der Abstand zwischen den Linien (a) enger oder (b) grösser wird. * Modifiziere nun deinen Code so, dass der Abstand zwischen den Linien (a) enger oder (b) grösser wird.
  
-In den bisherigen for-Schleifen wurde der Parameter in jedem Durchlauf um 1 erhöht. Möchten wir, dass grössere Schritte gemacht werden, können wir wie folgt vorgehen:+=== Startwert === 
 + 
 +Statt immer bei null zu starten, kann der Startwert auch angegeben werden: 
 +<code python> 
 +for m in range(10,20): 
 +    print(m) 
 +</code> 
 + 
 +Mit zwei Parametern interpretiert `range` den ersten als Start- und den zweiten als (exklusiven) Endwert. 
 + 
 +=== Schrittweite === 
 +In den bisherigen for-Schleifen wurde der Parameter in jedem Durchlauf um 1 erhöht. Möchten wir, dass grössere Schritte gemacht werden, können wir _drei_ Parameter verwenden:
 <code python> <code python>
 for m in range(0,101,10): for m in range(0,101,10):
Zeile 301: Zeile 313:
 </code> </code>
  
-Der Parameter `m` hat im ersten Durchlauf den Wert `0`. In jedem weiteren Durchlauf wird er um `10` erhöht, bis zum maximalen Wert `100`. Ersetzen wir die Zahl `101` durch `110`, so ist das Resultat genau das gleiche. Erst mit `111` ist die grösste ausgegebene Zahl `110`.+Der Parameter `m` hat im ersten Durchlauf den Wert `0`. In jedem weiteren Durchlauf wird er um `10` erhöht, solange er kleiner ist als der Endwert `101`. Ersetzen wir die Zahl `101` durch `110`, so ist das Resultat genau das gleiche. Erst mit `111` ist die grösste ausgegebene Zahl `110`.
  
 #### Positionen einer Liste aufzählen #### Positionen einer Liste aufzählen
Zeile 326: Zeile 338:
 === Aufgabe I2 === === Aufgabe I2 ===
  
-Verwende eine *for-Schleife* und die `rightArc`-Funktion um eine Spirale zu erzeugen, ähnlich wie diejenige im Bild. +Verwende eine *for-Schleife* und die `circle`-Funktion um eine Spirale zu erzeugen, ähnlich wie diejenige im Bild. 
  
 {{ :gf_informatik_1m_20_21:spirale.png?200 |}} {{ :gf_informatik_1m_20_21:spirale.png?200 |}}
Zeile 340: Zeile 352:
 <code python> <code python>
 for i in range(4,12): for i in range(4,12):
- print(i)+    print(i)
 </code> </code>
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 362: Zeile 374:
 </code> </code>
  
-<nodisp 2>+<nodisp 1> 
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 382: Zeile 395:
  
 === Aufgabe I6 === === Aufgabe I6 ===
-Finde den Index (die Position) von `"Bebraham"` in der folgenden Liste+Finde den Index (die Position) von `"Bebraham"` in der folgenden Liste. Nutze eine `for ... in range` Schleife, bei der die `range` über die Länge der Liste geht, wie [[#positionen_einer_liste_aufzaehlen|hier]] erklärt.
  
 `['Cebraham', 'Debraham', 'Bebraham', 'Abraham']` `['Cebraham', 'Debraham', 'Bebraham', 'Abraham']`
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 405: Zeile 418:
 Der Aufruf ohne Argument soll weiterhin die Siebnerreihe addieren. Der Aufruf ohne Argument soll weiterhin die Siebnerreihe addieren.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 421: Zeile 434:
 </nodisp> </nodisp>
  
 +=== Aufgabe I8 ===
 +**Teil 1**: Schreibe eine Funktion `reverse(liste)`, die eine neue Liste erstellt und die Elemente von `liste` in umgekehrter Reihenfolge darin abspeichert und die umgekehrte Liste zurückgibt. Die eingebauten Funktionen `reverse` und `reversed` dürfen nicht benützt werden - verwende stattdessen eine [[#schrittweite|negative Schrittweite]] für `range`.
  
 +<nodisp 1>
 +++++Lösung|
 +<code python>
 +def reverse(liste):
 +    result = []
 +    # range erzeugt eine Zahlenfolge n, n-1, ... 3, 2, 1, 0:
 +    #       Beginne mit dem letzten Index (len(liste) - 1)
 +    #       Der letzte Index ist 0, das exklusive Ende damit -1
 +    #       Die Schrittweite ist -1 (wir zählen ja rückwärts)
 +    for index in range(len(liste) - 1, -1, -1):
 +        result.append(liste[index])
 +    return result
 +
 +names = ['Cebraham', 'Debraham', 'Bebraham', 'Abraham']
 +print(reverse(names))</code>
 +++++
 +</nodisp>
  • gf_informatik/programmieren_iii.1735550956.txt.gz
  • Zuletzt geändert: 2024-12-30 09:29
  • von hof