Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:funktionen [2024-01-08 06:18] – hof | gf_informatik:funktionen [2025-11-20 13:59] (aktuell) – [Aufgabe E5] 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 | + | * Wie bei Variablen bestimmst du den Namen - er sollte sinnvoll sein und beschreiben, |
| + | * 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**, | * folgt der **Funktionskörper**, | ||
| 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>< | ||
| + | < | ||
| def say_hi(): | def say_hi(): | ||
| print(" | print(" | ||
| Zeile 43: | Zeile 46: | ||
| say_hi() | say_hi() | ||
| say_hi() | say_hi() | ||
| - | </code> | + | </bottom-editor></ |
| === 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 `" | Beim ersten Funktionsaufruf unten hat `name` also den Wert `" | ||
| - | <code python> | + | <html>< |
| def say_hi(name): | def say_hi(name): | ||
| - | print(" | + | print(f" |
| say_hi(" | say_hi(" | ||
| say_hi(" | say_hi(" | ||
| - | </code> | + | </bottom-editor></ |
| === 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, | In einem Glücksspiel wollen wir oft einen Würfelwurf simulieren. Dazu wollen wir eine Würfelfunktion `wuerfle()` programmieren, | ||
| - | <code python> | + | <html>< |
| import random | import random | ||
| Zeile 72: | Zeile 75: | ||
| print(wuerfle()) | print(wuerfle()) | ||
| print(wuerfle()) | print(wuerfle()) | ||
| - | </code> | + | </bottom-editor></ |
| === 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>< |
| import random | import random | ||
| Zeile 87: | Zeile 90: | ||
| print(wuerfle(12)) | print(wuerfle(12)) | ||
| print(wuerfle(12)) | print(wuerfle(12)) | ||
| - | </code> | + | </bottom-editor></ |
| 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>< |
| import random | import random | ||
| Zeile 100: | Zeile 103: | ||
| print(wuerfle(12)) # 12er-Wuerfel | print(wuerfle(12)) # 12er-Wuerfel | ||
| print(wuerfle()) | print(wuerfle()) | ||
| - | </code> | + | </bottom-editor></ |
| Der erste Funktionsaufruf simuliert natürlich einen 12er-Würfel. Der zweite einen 6er-Würfel: | Der erste Funktionsaufruf simuliert natürlich einen 12er-Würfel. Der zweite einen 6er-Würfel: | ||
| Zeile 171: | Zeile 175: | ||
| * Du kannst auch weitere Funktionen definieren, die dir das Leben erleichtern. | * Du kannst auch weitere Funktionen definieren, die dir das Leben erleichtern. | ||
| - | < | + | < |
| ++++Lösungen Aufgaben E| | ++++Lösungen Aufgaben E| | ||
| Zeile 178: | Zeile 182: | ||
| === Aufgabe E1 === | === Aufgabe E1 === | ||
| - | <code python> | + | <html>< |
| def greetings(name, | def greetings(name, | ||
| - | print(" | + | print(f" |
| - | greetings(" | + | greetings(" |
| - | greetings(" | + | greetings(" |
| - | </code> | + | </bottom-editor></ |
| === Aufgabe E2 === | === Aufgabe E2 === | ||
| - | <code python> | + | <html>< |
| import random | import random | ||
| Zeile 204: | Zeile 208: | ||
| head_or_tail() | head_or_tail() | ||
| head_or_tail() | head_or_tail() | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe E3 === | === Aufgabe E3 === | ||
| - | <code python> | + | <html>< |
| import random | import random | ||
| Zeile 214: | Zeile 218: | ||
| r = random.randint(1, | r = random.randint(1, | ||
| if r == 1: | if r == 1: | ||
| - | print(" | + | print(" |
| elif r == 2: | elif r == 2: | ||
| - | print(" | + | print(" |
| else: | else: | ||
| - | print(" | + | print(" |
| - | </code> | + | |
| + | fortune_cookie() | ||
| + | </ | ||
| === Aufgabe E4 === | === Aufgabe E4 === | ||
| <code python> | <code python> | ||
| - | from gturtle | + | from turtle |
| turi = Turtle() | turi = Turtle() | ||
| - | turi.hideTurtle() | + | turi.hideturtle() |
| + | turi.speed(1000) | ||
| def square(l): | def square(l): | ||
| Zeile 244: | Zeile 251: | ||
| <code python> | <code python> | ||
| - | from gturtle | + | from turtle |
| t = Turtle() | t = Turtle() | ||
| - | t.hideTurtle() | + | t.hideturtle() |
| def square(x, | def square(x, | ||
| - | t.home() | + | t.teleport(x,y) |
| - | t.setPos(x,y) | + | |
| i = 0 | i = 0 | ||
| while i < 4: | while i < 4: | ||
| Zeile 258: | Zeile 264: | ||
| def circle(x, | def circle(x, | ||
| - | t.home() | + | t.teleport(x,y) |
| - | t.setPos(x,y) | + | t.circle(r) |
| - | t.rightCircle(r) | + | |
| def rectangle(x, | def rectangle(x, | ||
| - | t.home() | + | t.teleport(x,y) |
| - | t.setPos(x,y) | + | |
| i = 0 | i = 0 | ||
| while i < 2: | while i < 2: | ||
| Zeile 274: | Zeile 278: | ||
| def triangle(x, | def triangle(x, | ||
| - | t.home() | + | t.teleport(x,y) |
| - | t.setPos(x,y) | + | |
| i = 0 | i = 0 | ||
| while i < 3: | while i < 3: | ||
| Zeile 287: | Zeile 290: | ||
| triangle(100, | triangle(100, | ||
| </ | </ | ||
| + | |||
| + | [[https:// | ||
| ++++ | ++++ | ||
| Zeile 357: | Zeile 362: | ||
| * $x^2 + 2 x + 7 = 0$ hat keine Lösung | * $x^2 + 2 x + 7 = 0$ hat keine Lösung | ||
| - | < | + | < |
| ++++Lösungen Aufgaben F| | ++++Lösungen Aufgaben F| | ||
| Zeile 365: | Zeile 370: | ||
| === Aufgabe F1 === | === Aufgabe F1 === | ||
| - | <code python> | + | <html>< |
| def volume_cube(x): | def volume_cube(x): | ||
| return x**3 | return x**3 | ||
| Zeile 371: | Zeile 376: | ||
| v = volume_cube(13) | v = volume_cube(13) | ||
| print(v) | print(v) | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe F2 === | === Aufgabe F2 === | ||
| - | <code python> | + | <html>< |
| + | import math | ||
| def pythagoras(a, | def pythagoras(a, | ||
| - | return sqrt(a*a + b*b) | + | return |
| print(pythagoras(3, | print(pythagoras(3, | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe F3 === | === Aufgabe F3 === | ||
| - | <code python> | + | <html>< |
| import math | import math | ||
| def volume_sphere(r): | def volume_sphere(r): | ||
| Zeile 391: | Zeile 397: | ||
| print(volume_sphere(3)) | print(volume_sphere(3)) | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe F4 === | === Aufgabe F4 === | ||
| - | <code python> | + | <html>< |
| def grade(points, | def grade(points, | ||
| gr = 5*points/ | gr = 5*points/ | ||
| Zeile 404: | Zeile 410: | ||
| print(grade(23, | print(grade(23, | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe F5 === | === Aufgabe F5 === | ||
| - | <code python> | + | <html>< |
| def factorial(n): | def factorial(n): | ||
| product = 1 | product = 1 | ||
| Zeile 419: | Zeile 425: | ||
| print(factorial(5)) | print(factorial(5)) | ||
| - | </code> | + | </bottom-editor></ |
| === Aufgabe F6 === | === Aufgabe F6 === | ||
| - | <code python> | + | <html>< |
| + | from math import * | ||
| def mitternachtsformel(a, | def mitternachtsformel(a, | ||
| d = b*b - 4*a*c | d = b*b - 4*a*c | ||
| Zeile 438: | Zeile 445: | ||
| print(mitternachtsformel(1, | print(mitternachtsformel(1, | ||
| print(mitternachtsformel(1, | print(mitternachtsformel(1, | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||