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_v_gra [2025-07-31 07:01] – [BP9 – Punkte-Linie] gragf_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:programmieren_iv_gra|]].   * Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_iv_gra|]].
-  * Weiter zu [[gf_informatik:programmieren_vi_gra|]]. 
  
-++++ Lernziele:| +++++ Vorausgesetzte Kompetenzen:| 
-  * tbd +  - Ich beherrsche die in Teil 1 und 2 gelernten Grundlagen in python (Turtlegraphics, Variablen, while-Schleife, Verzweigungen, Vergleichsoperatoren, mathematische Operatoren, f-Strings, Funktionen ''print'' und ''input'', nie repeat verwenden, clever und kompakt programmieren). 
-  * tbd+  - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt: 
 +    Listen korrekt erstellen – leer oder mit Zahlen oder mit Texten drin. 
 +    * Mit einer while-Schleife alle Elemente einer Liste durchgehen, sie auslesen/ausgeben oder mit einer if-Verzweigung abfragen und evtl. verändern oder entfernen. 
 +    * Die Listen-Funktionen ''pop'' und ''append'' richtig verwenden. 
 +    * Mit ''in'' fragen, ob ein bestimmtes Element in einer Liste vorkommt. 
 +    * Listen analysieren (z.B. Mittelwert ermitteln) oder verändern (z.B. bestimmte Elemente ersetzen etc.). 
 +  - Ich kann in Pyhton //Funktionen// (mit und ohne //Argumente//, mit und ohne //Rückgabewerte//) korrekt //definieren// und //aufrufen//, wie in Teil 4 gelernt. 
 +  - 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 half+<WRAP column third
-**Wenn du nicht durch eine bestehende Sequenz (Liste/String) iterieren musst.**+**Wenn du nicht durch eine bestehende Sequenz (Liste/String) iterieren willst.**
  
 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> </WRAP>
  
-<WRAP column half>+<WRAP column third>
 **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"Found 42 at index {i}")         print(f"Found 42 at index {i}")
 +</code>
 +</WRAP>
 +
 +<WRAP column third>
 +**Wenn du durch zwei oder mehr Sequenzen (Listen/Strings) __gleichzeitig__ iterieren willst.**
 +
 +Zum Beispiel möchtest du die Elemente aus zwei Listen zusammenführen:
 +<code python>
 +laender = ["Italien","Polen","Ungarn"]
 +staedte = ["Rom","Warschau","Budapest"]
 + 
 +for i in range(len(laender)):
 +    print(f"{laender[i]}: {staedte[i]}")
 </code> </code>
 </WRAP> </WRAP>
Zeile 331: Zeile 362:
 <WRAP group> <WRAP group>
 <WRAP column twothirds> <WRAP column twothirds>
-Schreibe eine Funktion ''dot\_line(n)'', die mithilfe einer for-Schleife ''n'' Punkte (''dot()''auf einer Linie zeichnet:+Schreibe eine Funktion ''dot\_line(n)'', die mithilfe einer for-Schleife ''n'' Punkte auf einer Linie zeichnet:
   * Die Grösse des ersten Punktes ist 10, die des nächsten 20, dann 30 etc.   * Die Grösse des ersten Punktes ist 10, die des nächsten 20, dann 30 etc.
   * Fahre jeweils zuerst vorwärts (um die Grösse des Punktes) und zeichne dann einen Punkt.   * Fahre jeweils zuerst vorwärts (um die Grösse des Punktes) und zeichne dann einen Punkt.
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 ''dot\_arc(l\_dia, l\_col)'', sodass beide Listen beliebig lang sein können. Die Durchmeser-Liste ist massgebend, das heisst:
 +  * 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, wird die Farben-Liste wiederholt: Nach der letzten Farbe in der Liste wird wieder die erste gewählt. Tipp: Modulo-Operator (%).
 +  * Wenn die Durchmesser-Liste kürzer ist als die Farben-Liste, werden die übrigen Farben ignoriert.
 ===== - Lösungen ===== ===== - Lösungen =====
  
  • gf_informatik/programmieren_v_gra.1753945307.txt.gz
  • Zuletzt geändert: 2025-07-31 07:01
  • von gra