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 [2025-11-28 08:56] – [Aufgabe B3: Primfaktorzerlegung] hofgf_informatik:algorithmen_ii [2025-12-13 20:56] (aktuell) – [Aufgabe B2: Quersumme] hof
Zeile 2: Zeile 2:
  
 =====  Struktogramme und Python ===== =====  Struktogramme und Python =====
 +<html><script type="module" src="https://bottom.ch/ksr/ed/bottom-editor.js"></script></html>
  
 ==== 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!_
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
-<code python>+<html><bottom-editor>
 def max2(a, b): def max2(a, b):
     if a > b:     if a > b:
Zeile 28: Zeile 29:
  
 print(max3(int(input('a')), int(input('b')), int(input('c')))) print(max3(int(input('a')), int(input('b')), int(input('c'))))
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
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.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 def sort(a, b, c): def sort(a, b, c):
     if a > b:     if a > b:
Zeile 55: Zeile 56:
  
 sort(input(), input(), input()) sort(input(), input(), input())
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
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, beispielsweise durch Addition oder Multiplikation.
  
 +**Beispiel**: Summe aller natürlicher Zahlen
 +
 +<html><bottom-editor>
 +def summe_aller_zahlen(n):
 +    # Berechnet die Summe aller natürlicher Zahlen von 1..n
 +    resultat = 0  # Akkumulator, zu Beginn auf Null
 +    
 +    # Klassische Schleife mit Zähler-Variable
 +    zahl = 1
 +    while zahl <= n:
 +        resultat = resultat + zahl
 +        zahl = zahl + 1
 +    return resultat
 +
 +print(summe_aller_zahlen(10))
 +</bottom-editor></html>
 ==== Aufgaben B ==== ==== Aufgaben B ====
  
Zeile 111: Zeile 129:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 def multiply(a, b): def multiply(a, b):
     """Multipliziert zwei natürliche Zahlen ohne Verwendung der Python-Multiplikation."""     """Multipliziert zwei natürliche Zahlen ohne Verwendung der Python-Multiplikation."""
Zeile 149: Zeile 167:
     return test == n     return test == n
    
-a = input("a"+a = int(input("a")
-b = input("b")+b = int(input("b"))
 print(str(a) + " * " + str(b) + " = " + str(multiply(a, b))) print(str(a) + " * " + str(b) + " = " + str(multiply(a, b)))
 print(str(a) + " ^ " + str(b) + " = " + str(exponentiate(a, b))) print(str(a) + " ^ " + str(b) + " = " + str(exponentiate(a, b)))
Zeile 159: Zeile 177:
 print(str(a) + " ist eine Zweierpotenz: " + str(is_power_of_2(a))) print(str(a) + " ist eine Zweierpotenz: " + str(is_power_of_2(a)))
 print(str(b) + " ist eine Zweierpotenz: " + str(is_power_of_2(b))) print(str(b) + " ist eine Zweierpotenz: " + str(is_power_of_2(b)))
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 174: Zeile 192:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 def quersumme(x): def quersumme(x):
     summe = 0     summe = 0
Zeile 186: Zeile 204:
  
 print(quersumme(413)) print(quersumme(413))
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 228: Zeile 246:
  
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 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></html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 263: Zeile 281:
    * 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 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 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]]): 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]]):
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.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 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 314: Zeile 332:
  
 print(ggt(544, 391)) print(ggt(544, 391))
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 324: Zeile 342:
    * 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 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python>+<html><bottom-editor>
 def wurzel(n, precision=0.0001): def wurzel(n, precision=0.0001):
     """Quadratwurzel nach Heron."""     """Quadratwurzel nach Heron."""
Zeile 341: Zeile 359:
    
 print(wurzel(225)) print(wurzel(225))
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
  
  
  • gf_informatik/algorithmen_ii.1764320208.txt.gz
  • Zuletzt geändert: 2025-11-28 08:56
  • von hof