BuK/IIm20/Vorlesung 12 Lemke
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Python</language> == Seite 7 == === Racketcode in Python übertragen === <code id="60cdfe5cb5259"> def natural_numbers(): n = 1 # because in Racket, natural numbers begin with 1 while True: yield n n += 1 def pot_loop(exp, base, loops): result = 1 for i in natural_numbers(): if i == loops: break result = result * base return result </code> <run id="60cdfe5cb539c"> print(pot_loop(10, 2, 11)) </run> == Übungsaufgabe S. 12 == === natürlichzahlige Quadratwurzel von 19 === f(19, 19) x = 19 y (Schranke) = 19 z = 0 min(0 + 1)² > 19, falls (0 + 1)² > 19 1 > 19 ? → nein, also z inkrementieren z = 1 2² = 4 4 > 19 ? → nein, z inkrementieren z = 2 3² = 9 9 > 19 ? → nein, z inkrementieren z = 3 4² = 16 16 > 19 ? → nein, z inkrementieren z = 4 5² = 25 25 > 19 → ja → 4 ist das Ergebnis == Seite 19 == === Übertragung in Python === <code id="60cdfe5cb52d7"> def natural_numbers(): n = 0 while True: yield n n += 1 def nat_square_root(n1): for n in natural_numbers(): if abs(n**2 - n1) == 0: return n </code> <run id="60cdfe5cb53e9"> print(nat_square_root(9)) </run> == Übungsaufgabe S. 24 == === Kleinste y aus natürlichen Zahlen mit x mod 2 + y = 0 === müf(10) x = 10 y = 0 10 mod 2 + 0 = 10 mod 2 = 0 return 0 müf(5) x = 5 y = 0 5 mod 2 + 0 = 1 != 0 y = 1 5 mod 2 + 1 = 2 != 0 y = 2 5 mod 2 + 2 = 3 != 0 y = 3 5 mod 2 + 3 = 4 != 0 y = 4 5 mod 2 + 4 = 5 != 0 ... → returnt 0 für gerade Zahlen und läuft immer weiter für ungerade == Übungsaufgabe S. 26 == === Funktion h1 === <code id="60cdfe5cb533d"> def natural_numbers(): n = 0 while True: yield n n += 1 def minus(x, y): res = x - y return res if res > 0 else 0 def h1(x): for y in natural_numbers(): if x % minus(2, y) == 0: return y </code> <run id="60cdfe5cb543e"> print(h1(6), h1(9)) </run> Die Funktion gibt 0 zurück, wenn eine Zahl gerade ist und 1, wenn sie ungerade ist.