Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:algorithmen_ii [2025-11-28 08:55] – [Auftrag zu Primzahlen] hof | gf_informatik:algorithmen_ii [2025-12-13 20:56] (aktuell) – [Aufgabe B2: Quersumme] hof | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| ===== Struktogramme und Python ===== | ===== Struktogramme und Python ===== | ||
| + | < | ||
| ==== Aufgaben A ==== | ==== Aufgaben A ==== | ||
| Zeile 15: | Zeile 16: | ||
| * Teil 3: Schreibe eine Funktion `max3(a, b, c)`, die das Maximum von **drei** Zahlen zurückgibt. _Verwende dazu die `max2` Funktion!_ | * Teil 3: Schreibe eine Funktion `max3(a, b, c)`, die das Maximum von **drei** Zahlen zurückgibt. _Verwende dazu die `max2` Funktion!_ | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| - | <code python> | + | <html>< |
| def max2(a, b): | def max2(a, b): | ||
| if a > b: | if a > b: | ||
| Zeile 28: | Zeile 29: | ||
| print(max3(int(input(' | print(max3(int(input(' | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 35: | Zeile 36: | ||
| * Teil 1: Drei Zahlen sollen eingegeben werden und danach in absteigender Reihenfolge der Grösse ausgegeben werden. | * Teil 1: Drei Zahlen sollen eingegeben werden und danach in absteigender Reihenfolge der Grösse ausgegeben werden. | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| def sort(a, b, c): | def sort(a, b, c): | ||
| if a > b: | if a > b: | ||
| Zeile 55: | Zeile 56: | ||
| sort(input(), | sort(input(), | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 91: | Zeile 92: | ||
| ===== Mathematische Algorithmen ===== | ===== Mathematische Algorithmen ===== | ||
| + | Mit _iterativen_ Algorithmen berechnen wir Schritt für Schritt das gewünschte Resultat. Das Resultat wird in einer Variable sukzessive akkumuliert. In einer Schleife wird jede Runde ein Wert hinzugefügt, | ||
| + | **Beispiel**: | ||
| + | |||
| + | < | ||
| + | def summe_aller_zahlen(n): | ||
| + | # Berechnet die Summe aller natürlicher Zahlen von 1..n | ||
| + | resultat = 0 # Akkumulator, | ||
| + | | ||
| + | # Klassische Schleife mit Zähler-Variable | ||
| + | zahl = 1 | ||
| + | while zahl <= n: | ||
| + | resultat = resultat + zahl | ||
| + | zahl = zahl + 1 | ||
| + | return resultat | ||
| + | |||
| + | print(summe_aller_zahlen(10)) | ||
| + | </ | ||
| ==== Aufgaben B ==== | ==== Aufgaben B ==== | ||
| Zeile 111: | Zeile 129: | ||
| ++++ | ++++ | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| def multiply(a, b): | def multiply(a, b): | ||
| """ | """ | ||
| Zeile 149: | Zeile 167: | ||
| return test == n | return test == n | ||
| - | a = input(" | + | a = int(input(" |
| - | b = input(" | + | b = int(input(" |
| print(str(a) + " * " + str(b) + " = " + str(multiply(a, | print(str(a) + " * " + str(b) + " = " + str(multiply(a, | ||
| print(str(a) + " ^ " + str(b) + " = " + str(exponentiate(a, | print(str(a) + " ^ " + str(b) + " = " + str(exponentiate(a, | ||
| Zeile 159: | Zeile 177: | ||
| print(str(a) + " ist eine Zweierpotenz: | print(str(a) + " ist eine Zweierpotenz: | ||
| print(str(b) + " ist eine Zweierpotenz: | print(str(b) + " ist eine Zweierpotenz: | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 174: | Zeile 192: | ||
| ++++ | ++++ | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| def quersumme(x): | def quersumme(x): | ||
| summe = 0 | summe = 0 | ||
| Zeile 186: | Zeile 204: | ||
| print(quersumme(413)) | print(quersumme(413)) | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 228: | Zeile 246: | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| import math | import math | ||
| Zeile 251: | Zeile 269: | ||
| # Keinen Teiler gefunden -> wir haben eine Primzahl! | # Keinen Teiler gefunden -> wir haben eine Primzahl! | ||
| return True | return True | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 263: | Zeile 281: | ||
| * Schreibe eine Funktion `prime_factors(x)`, | * Schreibe eine Funktion `prime_factors(x)`, | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | Mit den Funktionen `is_prime` und `is_divisor` von oben: | + | Mit den Funktionen `is_prime` und `is_divisor` von oben ([[https:// |
| <code python> | <code python> | ||
| def next_prime(n): | def next_prime(n): | ||
| Zeile 302: | Zeile 320: | ||
| * Schreibe eine Funktion `ggT(x,y)`, die zwei Zahlen `x` und `y` entgegennimmt und den ggT der beiden zurückgibt. | * Schreibe eine Funktion `ggT(x,y)`, die zwei Zahlen `x` und `y` entgegennimmt und den ggT der beiden zurückgibt. | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| def ggt(a, b): | def ggt(a, b): | ||
| """ | """ | ||
| Zeile 314: | Zeile 332: | ||
| print(ggt(544, | print(ggt(544, | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 324: | Zeile 342: | ||
| * Schreibe eine Funktion `wurzel(x)`, | * Schreibe eine Funktion `wurzel(x)`, | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | + | <html>< |
| def wurzel(n, precision=0.0001): | def wurzel(n, precision=0.0001): | ||
| """ | """ | ||
| Zeile 341: | Zeile 359: | ||
| print(wurzel(225)) | print(wurzel(225)) | ||
| - | </code> | + | </bottom-editor></ |
| ++++ | ++++ | ||
| </ | </ | ||