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 [2026-04-28 19:55] – [Aufgabe E5] hofgf_informatik:funktionen [2026-04-28 20:19] (aktuell) – [Aufgabe F6 (optional)] hof
Zeile 224: Zeile 224:
 === Aufgabe E5 === === Aufgabe E5 ===
  
-<bottom-exercise id="e5" layout="canvas" showswitcher style="max-height:20lh;">+<bottom-exercise id="e5" layout="canvas" showswitcher style="max-height:40lh;">
 <div slot="prompt"> <div slot="prompt">
 Schreibe folgende Funktionen: Schreibe folgende Funktionen:
Zeile 338: Zeile 338:
 === Aufgabe F1 === === Aufgabe F1 ===
  
-Definiere eine Funktion mit einem Argument `volume_cube(x)`, die das Volumen eines Würfels mit Seitenlänge $x$ (in cm) berechnet und zurückgibt (also NICHT printed). Speichere das Resultat in einer Variablen und gebe es dann aus.+<bottom-exercise id="f1"> 
 +<div slot="prompt"> 
 +Schreibe folgende Funktionen:
  
-Welches Volumen hat ein Würfel mit Seitenlänge 13 cm?+<p>Definiere eine Funktion mit einem Argument <code>volume_cube(x)</code>, die das Volumen eines Würfels mit Seitenlänge <code>x</code> (in cm) berechnet und zurückgibt (also NICHT printed). Speichere das Resultat in einer Variablen und gebe es dann aus.
  
-=== Aufgabe F2 === +<p>Welches Volumen hat ein Würfel mit Seitenlänge 13 cm
- +</div
-**Satz von Pythagoras:** Schreibe eine Funktion `pythagoras(a,b)`, mit der du die Hypotenuse eines rechtwinkligen Dreiecks mit Katheten $a$ und $b$ berechnen kannst. Das Resultat soll *zurückgegeben* werden.   +<template data-type="solution">
- +
-//Tipp:// Die Wurzel einer Zahl ziehst du mit `sqrt(x)`, dazu musst du aber zuerst das math-Modul importieren: `import math`. +
- +
-//Kontrolle:// Für die Katheten 3 und 4 ist die Hypothenuse 5. Die Codezeile `print(pythagoras(3,4))` soll dann also `5.0` ausgeben. +
- +
- +
-=== Aufgabe F3 === +
- +
-Das Volumen einer Kugel mit Radius $R$ ist: $$V = \frac{4\pi}{3}\cdot R^3$$ +
-Definiere eine Funktion `volume_sphere(...)`, der man als Argument den Radius übergibt und die dann das Volumen zurückgibt. Die Kreiszahl Pi ($\pi$) kannst du mit `math.pi` aufrufen, dazu muss aber auch wieder zuerst das math-Modul importiert werden (`import math`). +
- +
-=== Aufgabe F4 === +
- +
-Schreibe eine Funktion `grade(points)`, die dir die Note (_en_. grade) für eine gegebene Punktzahl berechnet und zurückgibt. Lege die Punktzahl, die für die Note $6$ notwendig ist in einer Konstanten (wie Variable, aber alles Grossbuchstaben) fest. Die Formel geht wie folgt: +
-$$\text{Note} = \frac{5 \cdot \text{(erreichte Punkte)}}{\text{Punktzahl für Note 6}} + 1$$ +
- +
-Beachte: +
-   * Um die Noten schön zu runden, kannst du die //vordefinierte Funktion// `round` verwenden: `round(3.14159,2)` rundet dir die Zahl $3.14159$ auf zwei Nachkommastellen, man erhält also $3.14$. +
-   * Erreicht man mehr Punkte als notwendig für Note 6, soll man trotzdem die Note 6 erhalten. +
- +
-=== Aufgabe F5 === +
- +
-Die **Fakultät** ist eine Funktion, welche jeder ganzen natürlichen Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner und gleich dieser Zahl zuordnet. Sie wird mit einem Ausrufezeichen geschrieben. Als Beispiel: $5!=1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 =120$. +
- +
-Schreibe eine Funktion `factorial(...)`, der als Argument eine ganze Zahl übergeben wird und die dir dann die Fakultät dieser Zahl zurückgibt. +
- +
-**optionale Challenge für absolute Freaks**: Kannst du die Fakultät ganz ohne Schleife berechnenDann hast du das Prinzip der *Rekursion* (Selbst-Aufruf) entdeckt! +
- +
-=== Aufgabe F6 (optional) === +
- +
-**Mitternachtsformel:** Eine quadratische Funktion kann immer in die Form $$ax^2 + bx + c = 0$$ gebracht werden. Die Lösung ist gegeben durch: +
-$$x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$$ +
- +
-Schreibe eine Funktion `mitternachtsformel(...)`, die die drei Werte für $a,b,c$ entgegennimmt und die Lösung(en) zurück gibt. Beachte, dass es drei Fälle gibt: +
-   * 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 +
-   * zwei Lösungen: gib beide Werte (mit Komma getrennt) zurück +
- +
-Tipp: Verwende die Diskriminante, um den richtigen Fall zu ermitteln. +
- +
-Kontrolle: Die quadratische Gleichung ... +
- +
-   * $3 x^2 - 6 x - 5 = 0$ hat die zwei Lösungen: $-0.632993$ und $2.63299$ +
-   * $x^2 - 4 x + 4 = 0$ hat eine Lösung: $2$ +
-   * $x^2 + 2 x + 7 = 0$ hat keine Lösung +
- +
-<nodisp 1> +
- +
-++++Lösungen Aufgaben F| +
- +
-==== Aufgaben F ==== +
- +
-=== Aufgabe F1 === +
- +
-<bottom-editor>+
 def volume_cube(x): def volume_cube(x):
     return x**3     return x**3
Zeile 405: Zeile 352:
 v = volume_cube(13) v = volume_cube(13)
 print(v) print(v)
-</bottom-editor>+</template> 
 +<template data-type="test"> 
 +assert volume_cube(13) == 2197 
 +assert volume_cube(4) == 64 
 +</template> 
 +</bottom-exercise>
  
 === Aufgabe F2 === === Aufgabe F2 ===
  
-<bottom-editor>+<bottom-exercise id="f2"> 
 +<div slot="prompt"> 
 +<b>Satz von Pythagoras:</b> Schreibe eine Funktion <code>pythagoras(a,b)</code>, mit der du die Hypotenuse eines rechtwinkligen Dreiecks mit Katheten <code>a</code> und <code>b</code> berechnen kannst. Das Resultat soll <em>zurückgegeben</em> werden.   
 + 
 +<p><b>Tipp:</b> Die Wurzel einer Zahl ziehst du mit <code>sqrt(x)</code>, dazu musst du aber zuerst das math-Modul importieren: <code>import math</code>
 + 
 +<p><b>Kontrolle:</b> Für die Katheten 3 und 4 ist die Hypothenuse 5. Die Codezeile <code>print(pythagoras(3,4))</code> soll dann also <code>5.0</code> ausgeben. 
 +</div> 
 +<template data-type="solution">
 import math import math
 def pythagoras(a,b): def pythagoras(a,b):
Zeile 415: Zeile 375:
  
 print(pythagoras(3,4)) print(pythagoras(3,4))
-</bottom-editor+</template> 
 +<template data-type="test"
 +assert pythagoras(3, 4) == 5.0 
 +assert pythagoras(8, 15) == 17.0 
 +</template> 
 +</bottom-exercise>
  
 === Aufgabe F3 === === Aufgabe F3 ===
  
-<bottom-editor>+Das Volumen einer Kugel mit Radius $R$ ist: $$V = \frac{4\pi}{3}\cdot R^3$$ 
 +<bottom-exercise id="f3"> 
 +<div slot="prompt"> 
 +Definiere eine Funktion <code>volume_sphere(...)</code>, der man als Argument den Radius übergibt und die dann das Volumen zurückgibt. Die Kreiszahl Pi (π) kannst du mit <code>math.pi</code> aufrufen, dazu muss aber auch wieder zuerst das math-Modul importiert werden (<code>import math</code>). 
 +</div> 
 +<template data-type="solution">
 import math import math
 def volume_sphere(r): def volume_sphere(r):
Zeile 426: Zeile 395:
  
 print(volume_sphere(3)) print(volume_sphere(3))
-</bottom-editor+</template> 
 +<template data-type="test"
 +assert 113.09 < volume_sphere(3) < 113.099 
 +</template> 
 +</bottom-exercise>
  
 === Aufgabe F4 === === Aufgabe F4 ===
  
-<bottom-editor>+Schreibe eine Funktion `grade(points)`, die dir die Note (_en_. grade) für eine gegebene Punktzahl berechnet und zurückgibt. Lege die Punktzahl, die für die Note $6$ notwendig ist in einer Konstanten (wie Variable, aber alles Grossbuchstaben) fest. Die Formel geht wie folgt: 
 +$$\text{Note} = \frac{5 \cdot \text{(erreichte Punkte)}}{\text{Punktzahl für Note 6}} + 1$$ 
 + 
 +Beachte: 
 +   * Um die Noten schön zu runden, kannst du die //vordefinierte Funktion// `round` verwenden: `round(3.14159,2)` rundet dir die Zahl $3.14159$ auf zwei Nachkommastellen, man erhält also $3.14$. 
 +   * Erreicht man mehr Punkte als notwendig für Note 6, soll man trotzdem die Note 6 erhalten. 
 + 
 +<bottom-exercise id="f4"> 
 +<template data-type="solution">
 def grade(points,points_6): def grade(points,points_6):
     gr = 5*points/points_6 + 1     gr = 5*points/points_6 + 1
Zeile 439: Zeile 419:
  
 print(grade(23,51)) print(grade(23,51))
-</bottom-editor> +</template> 
 +</bottom-exercise>
  
 === Aufgabe F5 === === Aufgabe F5 ===
  
-<bottom-editor>+Die **Fakultät** ist eine Funktion, welche jeder ganzen natürlichen Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner und gleich dieser Zahl zuordnet. Sie wird mit einem Ausrufezeichen geschrieben. Als Beispiel: $5!=1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 =120$. 
 + 
 +<bottom-exercise id="f5"> 
 +<div slot="prompt"> 
 +Schreibe eine Funktion <code>factorial(...)</code>, der als Argument eine ganze Zahl übergeben wird und die dir dann die Fakultät dieser Zahl zurückgibt. 
 + 
 +<p><b>Optionale Challenge für absolute Freaks</b>: Kannst du die Fakultät ganz ohne Schleife berechnen? Dann hast du das Prinzip der <em>Rekursion</em> (Selbst-Aufruf) entdeckt! 
 +</div> 
 +<template data-type="solution">
 def factorial(n): def factorial(n):
     product = 1     product = 1
Zeile 454: Zeile 442:
  
 print(factorial(5)) print(factorial(5))
-</bottom-editor>+</template> 
 +<template data-type="test"> 
 +assert factorial(5) == 120 
 +assert factorial(10) == 3628800 
 +</template> 
 +</bottom-exercise>
  
 +=== Aufgabe F6 (optional) ===
  
-=== Aufgabe F6 ===+**Mitternachtsformel:** Eine quadratische Funktion kann immer in die Form $$ax^2 + bx + c 0$$ gebracht werden. Die Lösung ist gegeben durch: 
 +$$x \frac{-b \pm \sqrt{b^2-4ac}}{2a}$$
  
-<bottom-editor>+Schreibe eine Funktion `mitternachtsformel(...)`, die die drei Werte für $a,b,c$ entgegennimmt und die Lösung(en) zurück gibt. Beachte, dass es drei Fälle gibt: 
 +   * 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 
 +   * zwei Lösungen: gib beide Werte (mit Komma getrennt) zurück 
 + 
 +Tipp: Verwende die Diskriminante, um den richtigen Fall zu ermitteln. 
 + 
 +Kontrolle: Die quadratische Gleichung ... 
 + 
 +   * $3 x^2 - 6 x - 5 = 0$ hat die zwei Lösungen: $-0.632993$ und $2.63299$ 
 +   * $x^2 - 4 x + 4 = 0$ hat eine Lösung: $2$ 
 +   * $x^2 + 2 x + 7 = 0$ hat keine Lösung 
 + 
 +<bottom-exercise id="f6"> 
 +<template data-type="solution">
 from math import * from math import *
 def mitternachtsformel(a,b,c): def mitternachtsformel(a,b,c):
Zeile 474: Zeile 483:
 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
-</bottom-editor+</template> 
- +<template data-type="test"
-+++++assert set(mitternachtsformel(3,-6,-5)) == {-0.632993161855452, 2.632993161855452} 
 +assert mitternachtsformel(1,-4,4) == 2 
 +assert mitternachtsformel(1,2,7) == None 
 +</template> 
 +</bottom-exercise>
  
-</nodisp> 
  • gf_informatik/funktionen.1777406135.txt.gz
  • Zuletzt geändert: 2026-04-28 19:55
  • von hof