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_ii_sca [2025-03-31 23:16] – [Aufgabe 3] sca | gf_informatik:programmieren_ii_sca [2025-04-03 12:59] (aktuell) – sca | ||
---|---|---|---|
Zeile 507: | Zeile 507: | ||
===== - For-Schleifen ===== | ===== - For-Schleifen ===== | ||
+ | |||
+ | {{ : | ||
Eine **for-Schleife** wird verwendet, um **alle Elemente einer Sequenz** (wie eine Liste, String usw.) durchzugehen. Man nennt dies auch *über eine Sequenz iterieren*. | Eine **for-Schleife** wird verwendet, um **alle Elemente einer Sequenz** (wie eine Liste, String usw.) durchzugehen. Man nennt dies auch *über eine Sequenz iterieren*. | ||
Zeile 579: | Zeile 581: | ||
Schreibe einen Code, der mithilfe einer for-Schleife ermittelt, wie oft der Buchstabe ' | Schreibe einen Code, der mithilfe einer for-Schleife ermittelt, wie oft der Buchstabe ' | ||
- | === Aufgabe === | + | === Aufgabe |
Wandle mithilfe einer for-Schleife einen String in eine Liste um, die die Buchstaben des Wortes beinhaltet. Aus `word = " | Wandle mithilfe einer for-Schleife einen String in eine Liste um, die die Buchstaben des Wortes beinhaltet. Aus `word = " | ||
Zeile 590: | Zeile 592: | ||
for ... | for ... | ||
</ | </ | ||
- | === Aufgabe 3 === | + | |
+ | === Aufgabe | ||
+ | |||
+ | Gegeben sei eine Liste mit Zahle `numbers = [5,3,7,1,2]`. Erstelle mithilfe einer for-Schleife eine neue Liste `doubles`, die von den Zahlen aus `numbers` jeweils das Doppelte beinhalten soll. `doubles` soll dann also `[10, | ||
+ | |||
+ | === Aufgabe 6 === | ||
Kombiniere die folgenden beiden String `s1 = " | Kombiniere die folgenden beiden String `s1 = " | ||
- | === Aufgabe | + | ++++Tipps| |
+ | |||
+ | * Verwende eine for-Schleife, | ||
+ | * Das Problem ist, wie man jetzt auf die Buchstaben von `s2` zugreift: Mache dies wie bei der while-Schleife (aber ohne eine solche). Definiere eine Variable `i=0`, die du am Ende der for-Schleife um $1$ erhöhst. Verwende dann das `i` um auf die Buchstaben von `s2` zuzugreifen. | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | |||
+ | === Aufgabe | ||
Gegeben ist die Liste `numbers = [24, 40, 16, 10, 7, 26, 15, 7, 25, 23, 25, 41, 38, 13, 21, 33, 10, 42, 13, 9, 20, 35, 5, 39, 15, 36, 35, 1, 27, 42]`. Erstelle eine neue, leere Liste `even = []`. Füge dieser Liste in einer for-Schleife alle *geraden* Zahlen aus numbers hinzu. | Gegeben ist die Liste `numbers = [24, 40, 16, 10, 7, 26, 15, 7, 25, 23, 25, 41, 38, 13, 21, 33, 10, 42, 13, 9, 20, 35, 5, 39, 15, 36, 35, 1, 27, 42]`. Erstelle eine neue, leere Liste `even = []`. Füge dieser Liste in einer for-Schleife alle *geraden* Zahlen aus numbers hinzu. | ||
Zeile 600: | Zeile 616: | ||
*Tipp:* Mit `x % 2 == 0` kann man herausfinden, | *Tipp:* Mit `x % 2 == 0` kann man herausfinden, | ||
- | === Aufgabe | + | === Aufgabe |
Der König im Buch 'Die wilde Sophie' | Der König im Buch 'Die wilde Sophie' | ||
Zeile 607: | Zeile 623: | ||
<code python> | <code python> | ||
text = "ESEL ESSEN GERNE ERDBEEREN, BESONDERS BEI EINEM ELEGANTEN ELEFANTENESSEN." | text = "ESEL ESSEN GERNE ERDBEEREN, BESONDERS BEI EINEM ELEGANTEN ELEFANTENESSEN." | ||
- | text = "" | + | text_ohne_E |
for ... | for ... | ||
</ | </ | ||
+ | ++++Tipps| | ||
+ | |||
+ | Zwei Strings kann man mit `+` zusammenfügen, | ||
+ | <code python> | ||
+ | s = "Hallo " + " | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | === Aufgabe 9 === | ||
+ | |||
+ | Diese und weitere Aufgaben weiter unten sollen mit **ineinander verschachtelten for-Schleifen** gelöst werden, also Code im Stil: | ||
+ | <code python> | ||
+ | for ...: | ||
+ | for ...: | ||
+ | ... | ||
+ | ... | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Mit zwei unterscheidbaren Würfeln wird gleichzeitig gewürfelt. Gib alle möglichen Resultate aus, also: | ||
+ | < | ||
+ | 11 | ||
+ | 12 | ||
+ | 13 | ||
+ | .. | ||
+ | 21 | ||
+ | ... | ||
+ | </ | ||
+ | Tipp: Verwende verschachtelte for-Schleifen (for-Schleife in for-Schleife ...). | ||
+ | |||
+ | === Aufgabe 10 === | ||
+ | |||
+ | Kleine Einmaleins: Gib alle Multiplikationen von allen einstelligen natürlichen Zahlen aus. | ||
+ | |||
+ | **Variante 1 (einfach): | ||
+ | |||
+ | Das Resultat soll also wie folgt aussehen: | ||
+ | < | ||
+ | 0 * 0 = 0 | ||
+ | 0 * 1 = 0 | ||
+ | 0 * 2 = 0 | ||
+ | 0 * 3 = 0 | ||
+ | 0 * 4 = 0 | ||
+ | 0 * 5 = 0 | ||
+ | 0 * 6 = 0 | ||
+ | 0 * 7 = 0 | ||
+ | 0 * 8 = 0 | ||
+ | 0 * 9 = 0 | ||
+ | 1 * 0 = 0 | ||
+ | 1 * 1 = 1 | ||
+ | 1 * 2 = 2 | ||
+ | 1 * 3 = 3 | ||
+ | 1 * 4 = 4 | ||
+ | ... | ||
+ | 9 * 9 = 81 | ||
+ | </ | ||
+ | |||
+ | **Variante 2 (anspruchsvoll): | ||
+ | |||
+ | Das Resultat soll wie folgt ausgegeben werden: | ||
+ | < | ||
+ | | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| | ||
+ | --|--|--|--|--|--|--|--|--|--|--| | ||
+ | 0|| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| | ||
+ | 1|| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| | ||
+ | 2|| 0| 2| 4| 6| 8|10|12|14|16|18| | ||
+ | 3|| 0| 3| 6| 9|12|15|18|21|24|27| | ||
+ | 4|| 0| 4| 8|12|16|20|24|28|32|36| | ||
+ | 5|| 0| 5|10|15|20|25|30|35|40|45| | ||
+ | 6|| 0| 6|12|18|24|30|36|42|48|54| | ||
+ | 7|| 0| 7|14|21|28|35|42|49|56|63| | ||
+ | 8|| 0| 8|16|24|32|40|48|56|64|72| | ||
+ | 9|| 0| 9|18|27|36|45|54|63|72|81| | ||
+ | </ | ||
+ | |||
+ | Tipps: | ||
+ | * Verwende die Liste `nrs = [0, | ||
+ | * Verwende wieder verschachtelte for-Schleifen. | ||
+ | * Verwende f-Strings. | ||
+ | |||
+ | |||
+ | <nodisp 2> | ||
+ | |||
+ | ++++Lösungen| | ||
+ | **Aufgabe 1:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 2:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 3:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 4:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 5:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 6:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 7:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 8:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 9:** | ||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 10:** | ||
+ | |||
+ | Einfach: | ||
+ | <code python> | ||
+ | nrs = [0, | ||
+ | |||
+ | for x in nrs: | ||
+ | for y in nrs: | ||
+ | print(f" | ||
+ | </ | ||
+ | |||
+ | Anspruchsvoll: | ||
+ | <code python> | ||
+ | nrs = [0, | ||
+ | |||
+ | s = ' | ||
+ | l = ' | ||
+ | for x in nrs: | ||
+ | s = s + f' {x}|' | ||
+ | l = l + ' | ||
+ | print(s) | ||
+ | print(l) | ||
+ | |||
+ | for x in nrs: | ||
+ | s = f' | ||
+ | for y in nrs: | ||
+ | xy = x * y | ||
+ | if len(str(xy)) == 1: | ||
+ | s = s + f' {xy}|' | ||
+ | else: | ||
+ | s = s + f' | ||
+ | print(s) | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | **Aufgabe 11:** | ||
+ | <code python> | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | </ |