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_iv_gra [2025-06-05 08:58] – [Programmieren Teil 4 – Funktionen (Unterprogramme)] gragf_informatik:programmieren_iv_gra [2025-06-26 19:14] (aktuell) – [Programmieren Teil 4 – Funktionen (Unterprogramme)] gra
Zeile 1: Zeile 1:
 ====== Programmieren Teil 4 – Funktionen (Unterprogramme) ====== ====== Programmieren Teil 4 – Funktionen (Unterprogramme) ======
   * Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_iii_gra|]].    * Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_iii_gra|]]. 
 +
 +<nodisp 2>
 +++++Verbessern (hidden):|
 +  * Fancy Aufgaben nach O verschieben, dafür mehr einfache, kleine Aufgaben zum Üben. 
 +    * Insbesondere mehr Aufgaben mit Listen und
 +    * Verknüpfungen von Bedingungen mit logischen Operatoren
 +  * Evtl. Lernziele bezüglich Verknüpfungen von Bedingungen präzisieren. 
 +++++
 +</nodisp>
  
 ++++Lernziele:| ++++Lernziele:|
-   - Ich beherrsche die in Teil 1 und 2 gelernten Grundlagen in python (Turtlegraphics, Variablen, while-Schleife (inkl. while True und break), Verzweigungen, Vergleichsoperatoren, mathematische Operatoren, f-Strings, Funktionen ''print'' und ''input'', nie repeat verwenden, clever und kompakt programmieren).+   - 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).
    - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt:    - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt:
      * Listen korrekt erstellen – leer oder mit Zahlen oder mit Texten drin.      * Listen korrekt erstellen – leer oder mit Zahlen oder mit Texten drin.
Zeile 10: Zeile 19:
      * Mit ''in'' fragen, ob ein bestimmtes Element in einer Liste vorkommt.      * 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.).      * Listen analysieren (z.B. Mittelwert ermitteln) oder verändern (z.B. bestimmte Elemente ersetzen etc.).
-   - Ich kann Funktionen mit und ohne Arugmente definieren.+   - Ich kann Funktionen mit und ohne Argumente definieren.
    - Ich kann Funktionen mit und ohne Rückgabewerte definieren.    - Ich kann Funktionen mit und ohne Rückgabewerte definieren.
    - Ich kann Funktoinen korrekt und sinnvoll aufrufen. Dabei achte ich darauf:    - Ich kann Funktoinen korrekt und sinnvoll aufrufen. Dabei achte ich darauf:
Zeile 25: Zeile 34:
 ===== - Einführung ===== ===== - Einführung =====
 Du kennst Variablen – darin kannst du einen Wert speichern. Und du kennst Listen – darin kannst du mehrere Werte speichern. Aber du hast dich villeicht schon gefragt: <color #0433ff>"Was, wenn ich gleich mehrere Codezeilen irgendwo unterbringen will?"</color>. Für diese Idee gibt es **Funktionen**, die wir auch **Unterprogramme** nennen können. Du kennst Variablen – darin kannst du einen Wert speichern. Und du kennst Listen – darin kannst du mehrere Werte speichern. Aber du hast dich villeicht schon gefragt: <color #0433ff>"Was, wenn ich gleich mehrere Codezeilen irgendwo unterbringen will?"</color>. Für diese Idee gibt es **Funktionen**, die wir auch **Unterprogramme** nennen können.
 +
 +
 === Auftrag 1 – Bereits bekannte Funktionen anschauen === === Auftrag 1 – Bereits bekannte Funktionen anschauen ===
 In Python sind viele Funktionen schon eingebaut. Du hast ein paar davon schon oft verwendet – zum Beispiel ''print'', ''input'' und ''len'': In Python sind viele Funktionen schon eingebaut. Du hast ein paar davon schon oft verwendet – zum Beispiel ''print'', ''input'' und ''len'':
 +
 <code python> <code python>
 print("Hallo") print("Hallo")
Zeile 407: Zeile 419:
     - Die Argumente ''min'' und ''max'' geben an, wie viele Punkte mindestens und höchstens gezeichnet werden.     - Die Argumente ''min'' und ''max'' geben an, wie viele Punkte mindestens und höchstens gezeichnet werden.
     - Das Argument ''farben'' ist eine **Liste** mit Farbnamen.      - Das Argument ''farben'' ist eine **Liste** mit Farbnamen. 
-    - Die Funktion zeichnet eine zufällige Anzahl Punkte (20 px) im gewünschten Bereich.  +    - Die Funktion zeichnet eine zufällige Anzahl Punkte (20 px) im gewünschten Bereich
-    - Die Position der Punkte wird ebenfalls zufällig bestimmt: x-Positionen im Bereich -250 bis 250, y-Positionen im Bereich -100 bis 100+    - Für jedem Punkt wird eine zufällige Farbe aus der Farbliste gewählt
 +    - Die Position jedes Punktes wird ebenfalls zufällig bestimmt: Die x-Position im Bereich -250 bis 250, die y-Position im Bereich -100 bis 100.
     - **Die Funktion gibt zurück, wie viele Punkte sie gezeichnet hat.**     - **Die Funktion gibt zurück, wie viele Punkte sie gezeichnet hat.**
   - Schreibe ein Programm, das die Funktion ''punkte'' verwendet:   - Schreibe ein Programm, das die Funktion ''punkte'' verwendet:
Zeile 520: Zeile 533:
 print(b) # Gibt 'u' aus print(b) # Gibt 'u' aus
 </code> </code>
 +
 </WRAP> </WRAP>
 </WRAP> </WRAP>
  
 +Die Funktion ''len()'' funktioniert sowohl für Listen als auch für Strings.
  
  
Zeile 529: Zeile 544:
 Schreibe eine Funktion ''text\_reverse(text)'', die einen Text rückwärts zurückgibt:  Schreibe eine Funktion ''text\_reverse(text)'', die einen Text rückwärts zurückgibt: 
   * Zum Beispiel soll der Aufruf ''text\_reverse("Roti Rösli im Garte")'' den Text "etraG mi ilsöR itoR" zurückgeben.   * Zum Beispiel soll der Aufruf ''text\_reverse("Roti Rösli im Garte")'' den Text "etraG mi ilsöR itoR" zurückgeben.
-  * **Verwende eine While-Schleife**, um von hinten nach vorne den String (den Text) zu gehen. +  * **Verwende eine While-Schleife**, um durch den String (den Text) zu gehen. 
     * Hinweis: Python böte mit der [[https://www.w3schools.com/python/gloss_python_string_slice.asp|String-Slicing-Syntax]] eine sehr kurze Lösung für diese Aufgabe. Wir verzichten hier aber auf String Slicing und bleiben vorerst bei der guten alten while-Schleife.     * Hinweis: Python böte mit der [[https://www.w3schools.com/python/gloss_python_string_slice.asp|String-Slicing-Syntax]] eine sehr kurze Lösung für diese Aufgabe. Wir verzichten hier aber auf String Slicing und bleiben vorerst bei der guten alten while-Schleife.
   * Teste deine Funktion.   * Teste deine Funktion.
Zeile 538: Zeile 553:
  
  
-=== NC6 – Wörter rückwärts ===+=== NC6 – Wörter rückwärts (Challenge) ===
 Schreibe eine Funktion ''words\_reverse(text)'', die die Wortfolge eines Textes umdreht und den neuen Text zurückgibt. Zum Beispiel soll der Aufruf words\_reverse("Roti Rösli im Garte") den Text "Garte im Rösli Roti" zurückgeben. Schreibe eine Funktion ''words\_reverse(text)'', die die Wortfolge eines Textes umdreht und den neuen Text zurückgibt. Zum Beispiel soll der Aufruf words\_reverse("Roti Rösli im Garte") den Text "Garte im Rösli Roti" zurückgeben.
  
Zeile 766: Zeile 781:
 </nodisp> </nodisp>
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen zu Aufgaben NA:| ++++Lösungen zu Aufgaben NA:|
 === NA1 === === NA1 ===
Zeile 878: Zeile 893:
 </code> </code>
 ++++ ++++
 +</nodisp>
  
 +<nodisp 1>
 ++++Lösungen zu Aufgaben NB:| ++++Lösungen zu Aufgaben NB:|
 === NB1 === === NB1 ===
Zeile 973: Zeile 990:
 </code> </code>
 ++++ ++++
 +</nodisp>
  
 +<nodisp 1>
 ++++Lösungen zu Aufgaben NC:| ++++Lösungen zu Aufgaben NC:|
  
Zeile 1202: Zeile 1221:
 </code> </code>
 ++++ ++++
 +</nodisp>
  
 +<nodisp 1>
 ++++Lösungen zu Aufgaben O:| ++++Lösungen zu Aufgaben O:|
  
  • gf_informatik/programmieren_iv_gra.1749113936.txt.gz
  • Zuletzt geändert: 2025-06-05 08:58
  • von gra