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 06:59] – [Auftrag zu Primzahlen] 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 336: Zeile 354:
    * Schreibe eine Funktion `prime_factors(x)`, die eine Zahl x entgegennimmt und deren (geordnete) Primfaktoren von x ausgibt.    * Schreibe eine Funktion `prime_factors(x)`, die eine Zahl x entgegennimmt und deren (geordnete) Primfaktoren von x ausgibt.
  
-<nodisp 1+<html><bottom-exercise id="prime-factors" session="primes"
-++++Lösung:| +<script type="text/x-starter"> 
-Mit den Funktionen `is_prime` und `is_divisor` von oben ([[https://wtp.ethz.ch/#?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMNGbAewCcyACVMgCwB0Jnvi4AZszQBnAPrE0AN1GMAFJJn8IxAs0WyGASkTdm-3mE5GwAcTQAjFgBUGAVzjMAXnYYAfgMYBrNQHc4EDwaIozMcBjMAOZQEE5OUOwANmiRcAzM1uGJacxSdEHSaMrEwiJkaiEQZcwAYlCJInCYxi1GPAYMcGSuBUoBJQCk6oUh6QC8Y8wADHp8gqVi2Aw0cHIQOnoGrcbmVhn2ji7u3moC9Q3MPOEQjgAKyzDxSaXlzJXVdQ1N220GwkI8AA8zAATLp2n99J1ugweJ9Gpt9CxJiDEcwAMTMACiImYnTQHnYrwsomcrmYAHVXE44IlcvlLmTmGQ4GUAswALRRAAnFkcrLCGHZkQYADeRI1OjxMmhsukWCF1FAJWjMWQAFQAD2YE0ualIgVYbglLOY2q82SF6UaEXquKpDBpiTWWmYdhUzF8aHS7G5ZBZPG1fPxZFxqQE7uUzQhnvYsscLEBkzY7EwIgAjkwXeDIQY0EJRBIRvIIGoyBsY7n9JiKd7mOwoHyrkLpVkcuHI-yOQA-Zhea53B5PRJqPn9ALRquQ6E9Wp2uBov7I5nMADUzAAjKrmABpAet-PpDsqLu9r0-xvsgfMe40YcAQjRM9h-wcaLmALgmrIiweq3WOZbCYOyWCwkiOBA3KEmUIripKg53gkdKwRKOR2oyRyeF4zTAb8Bg3N-OqMuuW4xr4cbZJcdAsIWSwrGsX7loBuYEcurFrpuT5dLOrGzCeQh0fAYhnB4ZCMCI2bvrhuxgWgCEwBydReGJUr0jwPC2nYAhsik47pDUdCJKkZLHNhPxoiJKlESC1bMAI3rVIJC4xp0qAYPw4yXNuAAihT8IyFi4My7COBgHidMqGCRMwTmXHYMDBri7pkLKnqOBFhKbpOBjkfGeJwG5J7pL2G7MZCmIGekcBQJlTn6n5CYhflhUecwyrMIk-TRe1HCOLFoiLgYmJQMMMijNlua5ZRhbBPIrnoEVpw1SpFZTn883uTkkwbUVzAAPR2ctjCDbmdEQGQciWYwWgneVzC4HJiQlFdDB8VOmI7a1HgxFRHVdTkfKjUUcAlIFh2iaEPbMgwQVehwwUQYxMV_hNkIvURrG_vRL03Tw3BOcJR0MBJGAXRg2B2BdWjU2AAC-AC6QA&layout=%5B%22Editor%22%2C%22Console%22%5D|hier in WTP]]): +def prime_factors(n): 
-<code python>+    """Gibt die Prim-Faktoren von n in aufsteigender Folge zurück.""" 
 +</script> 
 +<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 355: 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 364: Zeile 397:
  
 prime_factors(int(input())) prime_factors(int(input()))
-</code+</script
-++++ +</bottom-exercise></html>
-</nodisp>+
  
 ==== Weitere anspruchsvolle Algorithmen ==== ==== Weitere anspruchsvolle Algorithmen ====
Zeile 375: 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 387: Zeile 426:
  
 print(ggt(544, 391)) print(ggt(544, 391))
-</bottom-editor></html+</script> 
-++++ +</bottom-exercise></html>
-</nodisp>+
  
  
Zeile 397: 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 414: Zeile 459:
    
 print(wurzel(225)) print(wurzel(225))
-</bottom-editor></html+</script> 
-++++ +</bottom-exercise></html>
-</nodisp>+
  
  
  • gf_informatik/algorithmen_ii.1776409184.txt.gz
  • Zuletzt geändert: 2026-04-17 06:59
  • von hof