5.2    Rationale Zahlen

Eine rationale Zahl formula ist eine Zahl, die sich als Bruch, d. h. in der Form xa/b, darstellen lässt, wobei a und b ganze Zahlen sind. In diesem Zusammenhang nennt man den Dividenden a über dem Bruchstrich Zähler und den Divisor b unter dem Bruchstrich Nenner.

Die Bezeichnung rational kommt vom lateinischen Wort ratio, was auch Verhältnis bedeuten kann. Abbildung 5.6 zeigt eine Veranschaulichung von rationalen Zahlen.

Rechenoperationen, wie Addition, Subtraktion, Multiplikation und Division, mit rationalen Zahlen können mit der Methode Fraction aus der Klasse fractions durchgeführt werden.

Veranschaulichung von rationalen Zahlen

Abbildung 5.6     Veranschaulichung von rationalen Zahlen

Listing 5.17 zeigt, wie man zwei Brüche mit Python addiert, subtrahiert, multipliziert und dividiert.

01  #17_bruch1.py
02 from fractions import Fraction
03 a=Fraction(1,2)
04 b=Fraction(2,7)
05 s=a+b
06 d=a-b
07 p=a*b
08 q=a/b
09 print(a,"+",b,"=",s)
10 print(a,"-",b,"=",d)
11 print(a,"*",b,"=",p)
12 print(a,"/",b,"=",q)

Listing 5.17     Brüche mit »Fraction« berechnen

Ausgabe

1/2 + 2/7 = 11/14
1/2 - 2/7 = 3/14
1/2 * 2/7 = 1/7
1/2 / 2/7 = 7/4

Analyse

In Zeile 02 wird aus dem Modul fractions die Methode Fraction importiert.

In den Zeilen 03 und 04 können Sie die Werte für zwei Brüche vorgeben.

In diesen Zeilen erzeugt die Methode Fraction(...,...) die beiden Objekte a und b. Diese Objekte repräsentieren Brüche mit Zähler und Nenner.

In den Zeilen 05 bis 08 werden die mathematischen Grundoperationen auf den Brüchen durchgeführt.

Die Ausgaben in den Zeilen 09 bis 12 zeigen, dass Python auch mit Brüchen rechnen kann. Der Bruchstrich wird in der Ausgabe mit dem Schrägstrich / symbolisiert. Hauptnenner brauchen nicht explizit bestimmt zu werden. Die Methode Fraction() beherrscht sogar das Kürzen (Zeile 11).

Anwendungsbeispiel: Bruchrechentrainer

Mit Listing 5.18 können Sie Ihre Fähigkeiten im Bruchrechnen trainieren. Das Programm generiert innerhalb einer while-Schleife zwei Zufallsbrüche. Diese Brüche werden auf dem Bildschirm angezeigt, und Sie sollen dann die Summe aus diesen beiden Brüchen berechnen. Eine Eingabeaufforderung verlangt die Eingabe des Ergebnisses. Bei Eingabe des richtigen Ergebnisses wird ein Punkt vergeben. Die Punkte werden gezählt und am Programmende ausgegeben.

Das Programm lässt sich leicht so erweitern, dass auch andere Rechenoperationen wie Subtraktion, Multiplikation und Division von Brüchen trainiert werden können. Es eignet sich deshalb auch für den Einsatz im Mathematikunterricht. In den Zeilen 08 und 09 können Sie auch die Zahlenbereiche für die Nenner oder Zähler der Brüche ändern.

01  #18_bruch2.py
02 from random import randint
03 from fractions import Fraction
04 i=0
05 p=0 #Punkte
06 pmax=5
07 while i<pmax:
08 z1,n1=randint(1,9),randint(1,9)
09 z2,n2=randint(1,9),randint(1,9)
10 a=Fraction(z1,n1)
11 b=Fraction(z2,n2)
12 s=a+b
13 print(a,"+",b,"= ?")
14 e=Fraction(input("Ergebnis: "))
15 if e==s:
16 print("Richtig!")
17 p=p+1
18 else:
19 print("Falsch!")
20 print("Richtiges Ergebnis:",s)
21 i=i+1
22 print("Erreichte Punktzahl:",p," von ", pmax)

Listing 5.18     Bruchrechentrainer

Ausgabe
3/2 + 1 = ?
Ergebnis: 5/2
Richtig!
7/3 + 1/3 = ?
Ergebnis: 8/3
Richtig!
6 + 7/3 = ?
Ergebnis: 25/3
Richtig!
2/5 + 3/5 = ?
Ergebnis: 1
Richtig!
3/5 + 5/3 = ?
Ergebnis: 33/15
Falsch!
Richtiges Ergebnis: 34/15
Erreichte Punktzahl: 4 von 5
Analyse

In den Zeilen 08 und 09 erzeugt die Python-Funktion randint(1,9) Zufallszahlen zwischen 1 und 9. In den Zeilen 10 und 11 werden aus diesen Zufallszahlen zwei Brüche a und b erzeugt. In Zeile 12 werden diese beiden Brüche addiert.

In Zeile 13 werden die beiden Brüche einschließlich der mathematischen Operation + auf dem Bildschirm angezeigt.

Nach dem Programmstart gibt die eingebaute Python-Funktion input() (Zeile 14) den Text Eingabe in der Konsole aus. Der Eingabeprompt der Konsole fordert den Benutzer auf, über die Tastatur einen Bruch einzugeben. Alle Tastatureingaben werden von der input-Funktion als String interpretiert. Deshalb muss die Methode Fraction() den Eingabestring in einen Bruch umwandeln.

In Zeile 15 wird die Eingabe e mit dem Ergebnis s verglichen. Wenn Eingabe und Ergebnis übereinstimmen, wird die Meldung "Richtig!" ausgegeben, und der Punktzähler wird um einen Punkt hochgezählt.