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 [2024-12-05 14:29] – [Aufgabe B1: Einfache (math.) Algorithmen] hof | gf_informatik:algorithmen_ii [2024-12-16 11:19] (aktuell) – [Auftrag zu Primzahlen] hof | ||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
* 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> | <code python> | ||
Zeile 27: | Zeile 27: | ||
return max2(max2(a, | return max2(max2(a, | ||
- | print(max3(input(' | + | print(max3(int(input(' |
</ | </ | ||
++++ | ++++ | ||
Zeile 35: | Zeile 35: | ||
* 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> | <code python> | ||
Zeile 109: | Zeile 109: | ||
++++ | ++++ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 172: | Zeile 172: | ||
++++ | ++++ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 199: | Zeile 199: | ||
* Eine Funktion, die herausfindet (_zurückgibt_), | * Eine Funktion, die herausfindet (_zurückgibt_), | ||
* Wieviele Parameter hat die Funktion `is_divisor`? | * Wieviele Parameter hat die Funktion `is_divisor`? | ||
+ | |||
=== Auftrag zu Primzahlen === | === Auftrag zu Primzahlen === | ||
Zeile 204: | Zeile 205: | ||
* in 2er-Gruppen auf Papier (kein Python!) | * in 2er-Gruppen auf Papier (kein Python!) | ||
* Vorgehen: | * Vorgehen: | ||
- | * Algorithmus überlegen, in 2er-Gruppe besprechen, | + | * Algorithmus |
* Mit Lehrperson besprechen | * Mit Lehrperson besprechen | ||
* In Python: Funktion `is_prime(n)` implementieren | * In Python: Funktion `is_prime(n)` implementieren | ||
Zeile 241: | Zeile 242: | ||
# Es reicht, bis zur Wurzel von n zu testen - gäbe es einen grösseren Teiler t so dass | # Es reicht, bis zur Wurzel von n zu testen - gäbe es einen grösseren Teiler t so dass | ||
# t*x == n, dann müsste x kleiner sein als Wurzel(n) und wir hätten x bereits gefunden. | # t*x == n, dann müsste x kleiner sein als Wurzel(n) und wir hätten x bereits gefunden. | ||
- | while i <= math.sqrt(n): | + | while t <= math.sqrt(n): |
- | if is_divisor(n, | + | if is_divisor(n, |
# Wir haben einen Teiler gefunden -> keine Primzahl, beenden. | # Wir haben einen Teiler gefunden -> keine Primzahl, beenden. | ||
return False | return False | ||
- | | + | |
# Keinen Teiler gefunden -> wir haben eine Primzahl! | # Keinen Teiler gefunden -> wir haben eine Primzahl! | ||
return True | return True | ||
Zeile 281: | Zeile 282: | ||
while is_divisor(remainder, | while is_divisor(remainder, | ||
remainder = remainder / factor | remainder = remainder / factor | ||
- | print factor | + | print(factor) |
# yield factor | # yield factor | ||
| | ||
Zeile 287: | Zeile 288: | ||
factor = next_prime(factor) | factor = next_prime(factor) | ||
- | prime_factors(input()) | + | prime_factors(int(input())) |
</ | </ | ||
++++ | ++++ |