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:algorithmen_ii [2026-04-17 07:04] – [Aufgabe B3: Primfaktorzerlegung] hofgf_informatik:algorithmen_ii [2026-04-17 11:24] (aktuell) – [Auftrag zu Primzahlen] hof
Zeile 16: 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!_
  
-<nodisp 1> +<html><bottom-exercise id="max"> 
-++++Lösung| +<script type="text/x-starter"> 
-<html><bottom-editor>+def max2(a, b): 
 +    """Gibt das Maximum von a und b zurück.""" 
 + 
 +def max3(a, b, c): 
 +    """Gibt das Maximum von a, b und c zurück.""" 
 +     
 +print(max2(5, 3)) 
 +print(max3(1, 2, 3)) 
 +</script
 +<script type="text/x-test"> 
 +assert max2(5, 3) == 5 
 +assert max2(5, 5) == 5 
 +assert max2(3, 5) == 5 
 + 
 +assert max3(1, 2, 3) == 3 
 +assert max3(3, 2, 1) == 3 
 +assert max3(1, 3, 2) == 3 
 +</script> 
 +<script type="text/x-solution">
 def max2(a, b): def max2(a, b):
 +    """Gibt das Maximum von a und b zurück."""
     if a > b:     if a > b:
         return a         return a
Zeile 26: Zeile 45:
  
 def max3(a, b, c): def max3(a, b, c):
 +    """Gibt das Maximum von a, b und c zurück."""
     return max2(max2(a, b), c)     return max2(max2(a, b), c)
  
 print(max3(int(input('a')), int(input('b')), int(input('c')))) print(max3(int(input('a')), int(input('b')), int(input('c'))))
-</bottom-editor></html> +</script> 
-++++ +</bottom-exercise></html> 
-</nodisp>+
 === Aufgabe A2: Sortieren === === Aufgabe A2: Sortieren ===
  
Zeile 282: Zeile 302:
 <html><bottom-exercise id="is-prime" session="primes"> <html><bottom-exercise id="is-prime" session="primes">
 <script type="text/x-starter"> <script type="text/x-starter">
-import math 
- 
 def is_divisor(dividend, divisor): def is_divisor(dividend, divisor):
     """Gibt True zurück, falls divisor ein ganzzahliger Teiler von dividend ist, sonst False."""     """Gibt True zurück, falls divisor ein ganzzahliger Teiler von dividend ist, sonst False."""
Zeile 340: Zeile 358:
 def prime_factors(n): def prime_factors(n):
     """Gibt die Prim-Faktoren von n in aufsteigender Folge zurück."""     """Gibt die Prim-Faktoren von n in aufsteigender Folge zurück."""
-</script> 
-<script type="text/x-test"> 
-assert prime_factors(10) == [2, 5] 
-assert prime_factors(413) == [7, 59] 
 </script> </script>
 <script type="text/x-solution"> <script type="text/x-solution">
 +import math
 +
 +def is_prime(n):
 +    """Gibt True zurück, falls n eine Primzahl ist, sonst False."""
 +    if n < 2:
 +        return False
 +    t = 2
 +    while t <= math.sqrt(n):
 +        if n % t == 0:
 +            return False
 +        t = t + 1
 +    return True
 +
 def next_prime(n): def next_prime(n):
     """Gibt die nächstgrössere Primzahl grösser als n zurück."""     """Gibt die nächstgrössere Primzahl grösser als n zurück."""
Zeile 361: Zeile 388:
         # For each prime, divide the remainder as long as the prime is         # For each prime, divide the remainder as long as the prime is
         # a divisor.         # a divisor.
-        while is_divisor(remainderfactor):+        while remainder factor == 0:
             remainder = remainder / factor             remainder = remainder / factor
             print(factor)             print(factor)
Zeile 380: Zeile 407:
    * 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.
  
-<nodisp 1+<html><bottom-exercise id="gcd"
-++++Lösung:| +<script type="text/x-starter"> 
-<html><bottom-editor>+def ggt(a, b): 
 +    """Berechnet den grössten gemeinsamen Teiler von a und b.""" 
 +</script> 
 +<script type="text/x-test"> 
 +assert ggt(15, 10) == 5 
 +assert ggt(544, 391) == 17 
 +</script> 
 +<script type="text/x-solution">
 def ggt(a, b): def ggt(a, b):
     """Berechnet den grössten gemeinsamen Teiler von a und b."""     """Berechnet den grössten gemeinsamen Teiler von a und b."""
Zeile 392: Zeile 426:
  
 print(ggt(544, 391)) print(ggt(544, 391))
-</bottom-editor></html+</script> 
-++++ +</bottom-exercise></html>
-</nodisp>+
  
  
Zeile 402: Zeile 435:
    * Schreibe eine Funktion `wurzel(x)`, die die Wurzel von `x` auf `0.0001` genau berechnet.    * Schreibe eine Funktion `wurzel(x)`, die die Wurzel von `x` auf `0.0001` genau berechnet.
  
-<nodisp 1+<html><bottom-exercise id="heron"
-++++Lösung:| +<script type="text/x-starter"> 
-<html><bottom-editor>+def wurzel(n, precision=0.0001): 
 +    """Quadratwurzel nach Heron.""" 
 +</script> 
 +<script type="text/x-test"> 
 +assert 14.99 < wurzel(225) < 15.01 
 +assert 1.41 < wurzel(2) < 1.42 
 +</script> 
 +<script type="text/x-solution">
 def wurzel(n, precision=0.0001): def wurzel(n, precision=0.0001):
     """Quadratwurzel nach Heron."""     """Quadratwurzel nach Heron."""
Zeile 419: Zeile 459:
    
 print(wurzel(225)) print(wurzel(225))
-</bottom-editor></html+</script> 
-++++ +</bottom-exercise></html>
-</nodisp>+
  
  
  • gf_informatik/algorithmen_ii.1776409497.txt.gz
  • Zuletzt geändert: 2026-04-17 07:04
  • von hof