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 [2025-11-20 13:07] – [Beispiel 3: Funktion ohne Parameter aber mit Rückgabewert] 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 55: Zeile 56:
 <html><bottom-editor> <html><bottom-editor>
 def say_hi(name): def say_hi(name):
-    print("Hallo " + name + "!")+    print(f"Hallo {name}!")
  
 say_hi("Silvia") say_hi("Silvia")
Zeile 79: Zeile 80:
  
 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 89: 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 102: 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 127: 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 140: 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 173: Zeile 177:
    * Du kannst auch weitere Funktionen definieren, die dir das Leben erleichtern.    * Du kannst auch weitere Funktionen definieren, die dir das Leben erleichtern.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen Aufgaben E| ++++Lösungen Aufgaben E|
  
Zeile 180: 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 206: 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 216: 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 287: 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 348: 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 358: 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 366: 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 372: 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 392: 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 405: 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 420: 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 434: 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.1763644052.txt.gz
  • Zuletzt geändert: 2025-11-20 13:07
  • von hof