summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xzahlenspiel.py47
1 files changed, 26 insertions, 21 deletions
diff --git a/zahlenspiel.py b/zahlenspiel.py
index dafec34..e8891f9 100755
--- a/zahlenspiel.py
+++ b/zahlenspiel.py
@@ -1,47 +1,52 @@
#!/usr/bin/env python3
-# getestet mit Python 2.7.8 und 3.4.2
# -*- coding: utf-8 -*-
+# getestet mit Python 2.7.8 und 3.4.2
+'''Berechnet einen Bruch zur Übung des Kürzens'''
from random import randrange
-def gcd(a, b): # größter gemeinsamer Teiler nach Euklid
- while b:
- a, b = b, a % b
- return a
+def gcd(vala, valb):
+ '''Berechnet den größten gemeinsamen Teiler nach Euklid'''
+ while valb:
+ vala, valb = valb, vala % valb
+ return vala
-# berechnet einen ungekürzten Bruch a/b mit gekürztem Bruch p/q nach Schwierigkeits`stufe`
-# `stufe` ist 0 (leicht), 1 (mittel) oder 2 (schwer)
def bruch(stufe):
+ '''Berechnet einen ungekürzten Bruch vala/valb
+mit gekürztem Bruch valp/valq nach Schwierigkeits`stufe`.
+`stufe` ist 0 (leicht), 1 (mittel) oder 2 (schwer)'''
+
length = 4 if stufe == 0 else 5
erfolg = False
while not erfolg:
- suchen = True
+ suchen = True
while suchen:
- p = randrange(1, (stufe + 1) * 10)
- q = randrange(stufe * 10 - p, (stufe + 1) * 10 - p)
- suchen = (gcd(p, q) != 1) # falls nicht kürzbar
+ valp = randrange(1, (stufe + 1) * 10)
+ valq = randrange(stufe * 10 - valp, (stufe + 1) * 10 - valp)
+ suchen = (gcd(valp, valq) != 1) # falls nicht kürzbar
- x = 2
+ valx = 2
suchen = True
while suchen:
- a, b = p * x, q * x
+ vala, valb = valp * valx, valq * valx
- if len(str(a)) + len(str(b)) == length:
+ if len(str(vala)) + len(str(valb)) == length:
suchen = False
erfolg = True
else:
- x += 1
- if len(str(a)) + len(str(b)) > length:
+ valx += 1
+ if len(str(vala)) + len(str(valb)) > length:
suchen = erfolg = False # neue Zahlen generieren
- return a, b, p, q
+ return vala, valb, valp, valq
-# gibt `anzahl` Aufgaben mit `stufe` (0 - leicht, 2 - schwer) aus
def aufgaben(stufe, anzahl):
- for j in range(anzahl):
- a, b, p, q = bruch(stufe)
- print(str(a) + " / " + str(b) + " = " + str(p) + " / " + str(q))
+ '''gibt `anzahl` Aufgaben mit `stufe` (0 - leicht, 2 - schwer) aus'''
+ for _ in range(anzahl):
+ vala, valb, valp, valq = bruch(stufe)
+ print(str(vala) + " / " + str(valb) + \
+ " = " + str(valp) + " / " + str(valq))
if __name__ == "__main__":
aufgaben(randrange(4), randrange(1, 10))