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:funktionen [2024-12-02 14:09] – [Aufgabe E5] hofgf_informatik:funktionen [2025-12-11 10:41] (aktuell) – [Aufgabe F6 (optional)] hof
Zeile 27: Zeile 27:
    * Das Schlüsselwort `def` leitet immer die Definition einer Funktion ein.    * Das Schlüsselwort `def` leitet immer die Definition einer Funktion ein.
    * Darauf folgt der **Funktionsname**. Typischerweise schreibt man diesen mit ausschliesslich Kleinbuchstaben und Underscores `_`.    * Darauf folgt der **Funktionsname**. Typischerweise schreibt man diesen mit ausschliesslich Kleinbuchstaben und Underscores `_`.
-   * Direkt anschliessend werden `(`**runde Klammern**`)` geschrieben. Diese enthalten die **Parameter**. Das sind Werte, die an die Funktion übergeben werden. Funktionen können auch ohne Parameter definiert werden, die Klammern sind dann halt einfach leer.+     * Wie bei Variablen bestimmst du den Namen - er sollte sinnvoll sein und beschreiben, was die Funktion tut. 
 +   * Direkt anschliessend werden `(`**runde Klammern**`)` geschrieben. Diese enthalten die **Parameter**. Das sind Werte, die an die Funktion übergeben werden. Funktionen können auch ohne Parameter definiert werden, die Klammern sind dann leer.
    * Nach einem **Doppelpunkt** `:`    * Nach einem **Doppelpunkt** `:`
    * folgt der **Funktionskörper**, der den eigentlichen Code der Funktion beinhaltet. Dieser Code muss **eingerückt** sein.    * folgt der **Funktionskörper**, der den eigentlichen Code der Funktion beinhaltet. Dieser Code muss **eingerückt** sein.
Zeile 37: Zeile 38:
  
 Die Funktion gibt einfach "Hallo du!" aus, wenn sie aufgerufen wird. Die ersten beiden Zeilen definieren die Funktion. Unten wird sie zweimal aufgerufen, dementsprechend wird 2x "Hallo du!" ausgegeben. Die Funktion gibt einfach "Hallo du!" aus, wenn sie aufgerufen wird. Die ersten beiden Zeilen definieren die Funktion. Unten wird sie zweimal aufgerufen, dementsprechend wird 2x "Hallo du!" ausgegeben.
-<code python>+ 
 +<html><script type="module" src="https://bottom.ch/ksr/ed/bottom-editor.js"></script></html> 
 +<html><bottom-editor>
 def say_hi(): def say_hi():
     print("Hallo du!")     print("Hallo du!")
Zeile 43: Zeile 46:
 say_hi() say_hi()
 say_hi() say_hi()
-</code>+</bottom-editor></html>
  
 === Beispiel 2: Funktion mit Parameter und ohne Rückgabewert === === Beispiel 2: Funktion mit Parameter und ohne Rückgabewert ===
Zeile 51: Zeile 54:
 Beim ersten Funktionsaufruf unten hat `name` also den Wert `"Silvia"` und beim zweiten den Wert `"Gabriele"`. Beim ersten Funktionsaufruf unten hat `name` also den Wert `"Silvia"` und beim zweiten den Wert `"Gabriele"`.
  
-<code python>+<html><bottom-editor>
 def say_hi(name): def say_hi(name):
-    print("Hallo " + name + "!")+    print(f"Hallo {name}!")
  
 say_hi("Silvia") say_hi("Silvia")
 say_hi("Gabriele") say_hi("Gabriele")
-</code>+</bottom-editor></html>
  
 === Beispiel 3: Funktion ohne Parameter aber mit Rückgabewert === === Beispiel 3: Funktion ohne Parameter aber mit Rückgabewert ===
  
 In einem Glücksspiel wollen wir oft einen Würfelwurf simulieren. Dazu wollen wir eine Würfelfunktion `wuerfle()` programmieren, die uns eine Zufallszahl von $1$ bis $6$ gibt: In einem Glücksspiel wollen wir oft einen Würfelwurf simulieren. Dazu wollen wir eine Würfelfunktion `wuerfle()` programmieren, die uns eine Zufallszahl von $1$ bis $6$ gibt:
-<code python>+<html><bottom-editor>
 import random import random
  
Zeile 72: Zeile 75:
 print(wuerfle()) print(wuerfle())
 print(wuerfle()) print(wuerfle())
-</code>+</bottom-editor></html>
  
 === Beispiel 4: Funktion mit Parameter und mit Rückgabewert === === Beispiel 4: Funktion mit Parameter und mit Rückgabewert ===
  
 Nun wollen wir auch andere Würfel (z.B. 12er-Würfel) simulieren können. Dazu führen wir einen Parameter ein, der den maximalen Wert des Würfels festlegt: Nun wollen wir auch andere Würfel (z.B. 12er-Würfel) simulieren können. Dazu führen wir einen Parameter ein, der den maximalen Wert des Würfels festlegt:
-<code python>+<html><bottom-editor>
 import random import random
  
Zeile 87: Zeile 90:
 print(wuerfle(12)) print(wuerfle(12))
 print(wuerfle(12)) print(wuerfle(12))
-</code>+</bottom-editor></html>
  
 In Realität ist es aber so, dass die meisten Würfel bis $6$ gehen. Wir können nun unser Leben einfacher machen, indem wir den Parameter `max_nr` mit einem **Vorgabewert** ausstatten: In Realität ist es aber so, dass die meisten Würfel bis $6$ gehen. Wir können nun unser Leben einfacher machen, indem wir den Parameter `max_nr` mit einem **Vorgabewert** ausstatten:
  
-<code python>+<html><bottom-editor>
 import random import random
  
Zeile 100: Zeile 103:
 print(wuerfle(12)) # 12er-Wuerfel print(wuerfle(12)) # 12er-Wuerfel
 print(wuerfle())   # 6er-Wuerfel, verwendet Vorgabewert print(wuerfle())   # 6er-Wuerfel, verwendet Vorgabewert
-</code>+</bottom-editor></html> 
 Der erste Funktionsaufruf simuliert natürlich einen 12er-Würfel. Der zweite einen 6er-Würfel: Da kein Argument für den Parameter `max_nr` übergeben wird, wird der Vorgabewert (`max_nr=6`) verwendet. Hier ist es üblich, //keinen// Abstand links und rechts vom Operator zu machen. Der erste Funktionsaufruf simuliert natürlich einen 12er-Würfel. Der zweite einen 6er-Würfel: Da kein Argument für den Parameter `max_nr` übergeben wird, wird der Vorgabewert (`max_nr=6`) verwendet. Hier ist es üblich, //keinen// Abstand links und rechts vom Operator zu machen.
  
Zeile 125: Zeile 129:
 ++++Tipps:| ++++Tipps:|
 Erzeuge mithilfe des `random`-Moduls eine [[gf_informatik:programmieren_ii#zufallszahlen|Zufallszahl]] ($1$ oder $2$). Falls die Zufallszahl $1$ ($2$) ist, gibst du "Zahl" ("Kopf") aus. Verwende dazu eine Verzweigung. Erzeuge mithilfe des `random`-Moduls eine [[gf_informatik:programmieren_ii#zufallszahlen|Zufallszahl]] ($1$ oder $2$). Falls die Zufallszahl $1$ ($2$) ist, gibst du "Zahl" ("Kopf") aus. Verwende dazu eine Verzweigung.
 +
 +
 +Simuliere nun 20 Münzenwürfe.
 +
 ++++ ++++
 </nodisp> </nodisp>
Zeile 138: Zeile 146:
 ++++Tipps:| ++++Tipps:|
 Ähnlich wie Münzwurf-Funktion oben. Bestimme wieder eine Zufallszahl (z.B. im Bereich $1-5$, falls du fünf Sprüche hast). Falls die Zufallszahl $2$ ist, gibst du den zweiten Spruch aus. Verwende dazu eine if-elif-...-else-Verzweigung. Ähnlich wie Münzwurf-Funktion oben. Bestimme wieder eine Zufallszahl (z.B. im Bereich $1-5$, falls du fünf Sprüche hast). Falls die Zufallszahl $2$ ist, gibst du den zweiten Spruch aus. Verwende dazu eine if-elif-...-else-Verzweigung.
- 
-Simuliere nun 20 Münzenwürfe. 
 ++++ ++++
 </nodisp> </nodisp>
Zeile 178: Zeile 184:
 === Aufgabe E1 === === Aufgabe E1 ===
  
-<code python>+<html><bottom-editor>
 def greetings(name,residence): def greetings(name,residence):
-    print("Hallo, mein(e) liebe(r) " + name + " aus " + residence + ". Ich wünsche dir einen ganz tollen Tag!")+    print(f"Hallo, mein(e) liebe(r) {nameaus {residence}. Ich wünsche dir einen ganz tollen Tag!")
  
-greetings("Fritz","Romanshorn"+greetings("Fritz", "Romanshorn"
-greetings("Monika","Amriswil"+greetings("Monika", "Amriswil"
-</code>+</bottom-editor></html>
  
 === Aufgabe E2 === === Aufgabe E2 ===
  
-<code python>+<html><bottom-editor>
 import random import random
  
Zeile 204: Zeile 210:
 head_or_tail() head_or_tail()
 head_or_tail() head_or_tail()
-</code>+</bottom-editor></html>
  
 === Aufgabe E3 === === Aufgabe E3 ===
  
-<code python>+<html><bottom-editor>
 import random import random
  
Zeile 214: Zeile 220:
     r = random.randint(1,3)     r = random.randint(1,3)
     if r == 1:     if r == 1:
-        print("Spruch 1")+        print("Morgenstund ist aller Laster anfang!")
     elif r == 2:     elif r == 2:
-        print("Spruch 2")+        print("Der Apfel fällt nicht weit vom Birnbaum!")
     else:     else:
-        print("Spruch 3") +        print("Wer andern in der Nase bohrt, ist selbst ein Schwein.") 
-</code>+ 
 +fortune_cookie() 
 +</bottom-editor></html>
  
 === Aufgabe E4 === === Aufgabe E4 ===
Zeile 285: Zeile 293:
 </code> </code>
  
-[[https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMNGbAewCcyACBqCYumAHQgDMGXZmQCuTADZxmNek2YAqXiwC8zACpiykgBQBKJZgAWaYnFES4egwGdscOMW0BGAAwv9EXqb7NrARxEoBksADwJcAnFdRF5mOOFMMjhJWTJtMNwPeOlmVRdY-IB3Y0kcgB5mABYYiGzsskw-RyiCuoSGNABzQzSATndWurRcnIBqZideLzgfAGM0BlmdDIIGaMGGpJTGNIys-Ib5xZ01qY4Z1jhZighO5fCCKAIAI3Xag8TkuFT08P244Z5QbFNClYYVABMNTacQaTW0UH-dQaHW6fQG7zacMcr0G9UwqJ62n6SOygLGEzO3mEHXYd1CDyi0I-W2-O1-mUG5PymOYILBzAqAGZmVjGs1SR9CWknBCMTCcqphuNJp5zj42BwuAB9WZ0cSMbRkTW2IJwCBkZQAMSg4mscDe2WCxBGms4MAJ7GIGBlBGYEIArAGkZ1gubXV6uJ6OD7nH7A8HBs9xCIpKo3VG3bGnPGg0i0D5jexTcELaK6rbsIYoBGtR6sxbtAGXLnE7ynWYxLVtM6_aH7BA_cnU37K9Wkcl7eWO-Zu73mP3zUOUw6qRcgmQ0NY0o74tZq3ZrLX3dHvY3KgRXEj-VJ91BD8wAHzMFzTvcHuBH1R3h8AWkp7bvveaasJG9ZetmfqVJKcR0qU6ZgaesYtswJJ4h8kh8GkcGroBcQhMemYQY2v5OAAHCh5HyjCuCEeBMYkVRfpUTBvgmHATh0UhjZysxbisXCoLiHqBoMD2YG6vqhpqAwqa6AJmCFCYZCGNo1Fis8cCdBg2p8EJVh4dIPg_mmqhOG-bT-IEwS_MwERsaYTisckBa-B-uSqFC6FtEcSwMnZfrWOxTnecwLnGe5yiqCKoX1LStz3AFDkcc54iuSZHlVBZdRBaYEJcQ2aS8RM_GxfEwTXDhtn2blHGBexEIKeaxC6fprHZLwG5bjuvBgAAvgAukAA|Modern Artist]]+[[https://webtigerpython.ethz.ch/#?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMNGbAewCcyACBqCYumAHQgDMGXZmQCuTADZxmNek2YAqXr2Jw-zAM4BHEVAZwAFGQIAPArgLiAlIl7M7wzGTiTZZfadyXb9tMwC8zAAM3nYA7gAWaJLSzAA8zAAsNhD2qQ58xPpWIWlkmAxoAObhbgCcgV4paXa-Ab4A1MwAjEocqswAxmgMHZKGJmYEDNY5eU4ujG4elal5XT19w60qanodFBCFfUYeBFAEAEYjVXZjznCu7mYzPv5BORFRUr7xAEzJ1aeYGfpQN9V5ArFMoVHKzb6ZI5g-yAoolfTlf5pWoxRotCDKdpkArsLYGHaDKwfGGOc6XaY5FHBE7MR7RF7MADMxIBEKySPBQPhTVeoJpqRRDWay3abA4XAA-h06OJGIYxepsLo4BAyH4AGJQcTqODHVJ6Yh3MWcGD5djEDBuJoEZivACsdqRhT0KqN5q4Zo4lv01ttDqRB3EIikAWNHuN3t99sdlLU2PYiuVqpZaS12HCUDd4tNEdV-jtgRt0Y59j0ogYKX0BptzrgKptgeDNrTGaRzh1Kf1cHLlerzFr9eYjd1IrUujIaHUbjIevs6gz2Dg6izJs9FrzCQITT5qTpUnnUEXy4AfEFO3OF0u7gej8wALTC_kXw8h1junPmyM2hIluy46Khu-a7eoWzCItCXySHwbj_iOT52MYK7hp-eZ3k0AAcoEYTuny4EhH5eqh2E2thv4aGgKhNPhwF5ryJGBDhrJ8FE4jSrKDBVu-UoynKAAqDDBpYZF5KEFFkOE-iMbkmAHHAhQYBKzHiOI-hkWgag3iGARNOe1RaDoej9MwpjMOY5GUWRzjqRol7-AE7wQWk8y9PiNomWZ6gUXATSWeI1maXZTK6bkOKbNsbk2h5Xk-Y5VkabZfgBEkjmpJ5KivNRuZuHRzQMWRXbrLBRnuTaaXeaVXmvMJmAqsQiksaprQsAEvFiGQfSVHkkQqOW7UGJ1mCKnWmTbnyvDjpO06VGAAC-AC6QA|Modern Artist]]
  
 ++++ ++++
Zeile 346: Zeile 354:
    * keine Lösung: gib `None` zurück, dies ist der Fall, wenn der Term in der Wurzel negativ ist    * keine Lösung: gib `None` zurück, dies ist der Fall, wenn der Term in der Wurzel negativ ist
    * eine Lösung, dies ist der Fall, wenn der Term in der Wurzel genau 0 ist    * eine Lösung, dies ist der Fall, wenn der Term in der Wurzel genau 0 ist
-   * zwei Lösungen: gib Liste mit den beiden Werten zurück+   * zwei Lösungen: gib beide Werte (mit Komma getrennt) zurück
  
 Tipp: Verwende die Diskriminante, um den richtigen Fall zu ermitteln. Tipp: Verwende die Diskriminante, um den richtigen Fall zu ermitteln.
Zeile 356: Zeile 364:
    * $x^2 + 2 x + 7 = 0$ hat keine Lösung    * $x^2 + 2 x + 7 = 0$ hat keine Lösung
  
-<nodisp 2>+<nodisp 1>
  
 ++++Lösungen Aufgaben F| ++++Lösungen Aufgaben F|
Zeile 364: Zeile 372:
 === Aufgabe F1 === === Aufgabe F1 ===
  
-<code python>+<html><bottom-editor>
 def volume_cube(x): def volume_cube(x):
     return x**3     return x**3
Zeile 370: Zeile 378:
 v = volume_cube(13) v = volume_cube(13)
 print(v) print(v)
-</code>+</bottom-editor></html>
  
 === Aufgabe F2 === === Aufgabe F2 ===
  
-<code python>+<html><bottom-editor> 
 +import math
 def pythagoras(a,b): def pythagoras(a,b):
-    return sqrt(a*a + b*b)+    return math.sqrt(a*a + b*b)
  
 print(pythagoras(3,4)) print(pythagoras(3,4))
-</code>+</bottom-editor></html>
  
  
 === Aufgabe F3 === === Aufgabe F3 ===
  
-<code python>+<html><bottom-editor>
 import math import math
 def volume_sphere(r): def volume_sphere(r):
Zeile 390: Zeile 399:
  
 print(volume_sphere(3)) print(volume_sphere(3))
-</code>+</bottom-editor></html>
  
  
 === Aufgabe F4 === === Aufgabe F4 ===
  
-<code python>+<html><bottom-editor>
 def grade(points,points_6): def grade(points,points_6):
     gr = 5*points/points_6 + 1     gr = 5*points/points_6 + 1
Zeile 403: Zeile 412:
  
 print(grade(23,51)) print(grade(23,51))
-</code>+</bottom-editor></html>
  
  
 === Aufgabe F5 === === Aufgabe F5 ===
  
-<code python>+<html><bottom-editor>
 def factorial(n): def factorial(n):
     product = 1     product = 1
Zeile 418: Zeile 427:
  
 print(factorial(5)) print(factorial(5))
-</code>+</bottom-editor></html>
  
  
 === Aufgabe F6 === === Aufgabe F6 ===
  
-<code python>+<html><bottom-editor> 
 +from math import *
 def mitternachtsformel(a,b,c): def mitternachtsformel(a,b,c):
     d = b*b - 4*a*c     d = b*b - 4*a*c
Zeile 432: Zeile 442:
     else:     else:
         r = -b / (2*a)         r = -b / (2*a)
-        return [(-b - sqrt(d)) / (2*a), (-b + sqrt(d)) / (2*a)]+        return (-b - sqrt(d)) / (2*a), (-b + sqrt(d)) / (2*a)
  
 print(mitternachtsformel(3,-6,-5)) # 2 Loesungen print(mitternachtsformel(3,-6,-5)) # 2 Loesungen
 print(mitternachtsformel(1,-4,4))  # 1 Loesung print(mitternachtsformel(1,-4,4))  # 1 Loesung
 print(mitternachtsformel(1,2,7))   # keine Loesung print(mitternachtsformel(1,2,7))   # keine Loesung
-</code>+</bottom-editor></html>
  
 ++++ ++++
  
 </nodisp> </nodisp>
  • gf_informatik/funktionen.1733148551.txt.gz
  • Zuletzt geändert: 2024-12-02 14:09
  • von hof