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_ii_sca [2025-03-31 23:13] – [Aufgabe 4] scagf_informatik:programmieren_ii_sca [2025-04-03 12:59] (aktuell) sca
Zeile 507: Zeile 507:
  
 ===== - For-Schleifen ===== ===== - For-Schleifen =====
 +
 +{{ :gf_informatik:programmieren_ii_02_for_schleifen.pdf |Slides For-Schleife}}
  
 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 'S' in einem Wort (gespeichert in Variable `word`) vorkommt. Teste deinen Code für `WORD = "MISSISSIPPI"`. Schreibe einen Code, der mithilfe einer for-Schleife ermittelt, wie oft der Buchstabe 'S' in einem Wort (gespeichert in Variable `word`) vorkommt. Teste deinen Code für `WORD = "MISSISSIPPI"`.
  
-=== Aufgabe 3 ===+=== Aufgabe 4 === 
 + 
 +Wandle mithilfe einer for-Schleife einen String in eine Liste um, die die Buchstaben des Wortes beinhaltet. Aus `word = "Python"` soll dann also `letters = ['P','y','t','h','o','n']` werden. 
 + 
 +Starte wie folgt: 
 +<code python> 
 +word = "Python" 
 +letters = [] # starte mit leerer Liste. Füge in for-Schleife nacheinander Buchstaben hinzu. 
 + 
 +for ... 
 +</code> 
 + 
 +=== Aufgabe 5 === 
 + 
 +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,6,14,2,4]` sein- 
 + 
 +=== Aufgabe 6 ===
  
 Kombiniere die folgenden beiden String `s1 = "IFRAI"` und `s2 = "nomtk"` zu einem einzigen String `"InFoRmAtIk` mithilfe einer for-Schleife. Kombiniere die folgenden beiden String `s1 = "IFRAI"` und `s2 = "nomtk"` zu einem einzigen String `"InFoRmAtIk` mithilfe einer for-Schleife.
  
-=== Aufgabe ===+++++Tipps| 
 + 
 +   * Verwende eine for-Schleife, um auf die Buchstaben von `s1` zuzugreifen. 
 +   * 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 589: Zeile 616:
 *Tipp:* Mit `x % 2 == 0` kann man herausfinden, ob `x` gerade ist (also durch $2$ teilbar ist) oder nicht. *Tipp:* Mit `x % 2 == 0` kann man herausfinden, ob `x` gerade ist (also durch $2$ teilbar ist) oder nicht.
  
-=== Aufgabe ===+=== Aufgabe ===
  
 Der König im Buch 'Die wilde Sophie' hat panische Angst vor dem Buchstaben 'E'. Er verlangt von seinen Untertanen, dass sie in ihrer Sprach den Buchstaben 'E' einfach auslassen. Anstelle "ESEL ESSEN GERNE ERDBEEREN, BESONDERS BEI EINEM ELEGANTEN ELEFANTENESSEN." sollen sie sagen und schreiben: "SL SSN GRN RDBRN, BSONDRS BI INM LGANTN LFANTNSSN." Der König im Buch 'Die wilde Sophie' hat panische Angst vor dem Buchstaben 'E'. Er verlangt von seinen Untertanen, dass sie in ihrer Sprach den Buchstaben 'E' einfach auslassen. Anstelle "ESEL ESSEN GERNE ERDBEEREN, BESONDERS BEI EINEM ELEGANTEN ELEFANTENESSEN." sollen sie sagen und schreiben: "SL SSN GRN RDBRN, BSONDRS BI INM LGANTN LFANTNSSN."
Zeile 596: 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 = "" # hier füge in for-Schleife Buchstaben (ausser E) von Text hinzu+text_ohne_E = "" # hier füge in for-Schleife Buchstaben (ausser E) von Text hinzu
  
 for ... for ...
 </code> </code>
  
 +++++Tipps|
 +
 +Zwei Strings kann man mit `+` zusammenfügen, z.B.:
 +<code python>
 +s = "Hallo " + "Welt" # hat dann den Wert "Hallo Welt"
 +</code>
 +
 +++++
 +
 +=== 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 ...:
 +        ...
 +    ...
 +...
 +</code>
 +
 +Mit zwei unterscheidbaren Würfeln wird gleichzeitig gewürfelt. Gib alle möglichen Resultate aus, also:
 +<code>
 +11
 +12
 +13
 +..
 +21
 +...
 +</code>
 +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:
 +<code>
 +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
 +</code>
 +
 +**Variante 2 (anspruchsvoll):**
 +
 +Das Resultat soll wie folgt ausgegeben werden:
 +<code>
 +  | 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|
 +</code>
 +
 +Tipps:
 +   * Verwende die Liste `nrs = [0,1,2,3,4,5,6,7,8,9]` (resp. `range()` falls du dies bereits kennst).
 +   * Verwende wieder verschachtelte for-Schleifen.
 +   * Verwende f-Strings.
 +
 +
 +<nodisp 2>
 +
 +++++Lösungen|
 +**Aufgabe 1:**
 +<code python>
 +</code>
 +
 +**Aufgabe 2:**
 +<code python>
 +</code>
 +
 +**Aufgabe 3:**
 +<code python>
 +</code>
 +
 +**Aufgabe 4:**
 +<code python>
 +</code>
 +
 +**Aufgabe 5:**
 +<code python>
 +</code>
 +
 +**Aufgabe 6:**
 +<code python>
 +</code>
 +
 +**Aufgabe 7:**
 +<code python>
 +</code>
 +
 +**Aufgabe 8:**
 +<code python>
 +</code>
 +
 +**Aufgabe 9:**
 +<code python>
 +</code>
 +
 +**Aufgabe 10:**
 +
 +Einfach:
 +<code python>
 +nrs = [0,1,2,3,4,5,6,7,8,9]
 +
 +for x in nrs:
 +    for y in nrs:
 +        print(f"{x} * {y} = {x*y}")
 +</code>
 +
 +Anspruchsvoll:
 +<code python>
 +nrs = [0,1,2,3,4,5,6,7,8,9]
 +
 +s = '  |'
 +l = '--|'
 +for x in nrs:
 +    s = s + f' {x}|'
 +    l = l +  '--|'
 +print(s)
 +print(l)
 +
 +for x in nrs:
 +    s = f'{x}||'
 +    for y in nrs:
 +        xy = x * y
 +        if len(str(xy)) == 1:
 +            s = s + f' {xy}|'
 +        else:
 +            s = s + f'{xy}|'
 +    print(s)
 +        #print(f"{x} * {y} = {x*y}")
 +</code>
 +
 +**Aufgabe 11:**
 +<code python>
 +</code>
 +++++
 +
 +</nodisp>
  • gf_informatik/programmieren_ii_sca.1743462838.txt.gz
  • Zuletzt geändert: 2025-03-31 23:13
  • von sca