2009-03-18 10 views
0

Ich möchte eine rationale Zahl Rechner machen, aber ich weiß nicht, wie einige Zeichen zu vernachlässigen. Wenn z. B. das Programm den Ausdruck "2/9 + 9/3" berechnen muss und die Antwort in einer vereinfachten Form sein soll, wie kann "/" in dem obigen Ausdruck vernachlässigt werden, während Eingaben genommen werden?Rational Anzahl Rechner

+0

Welche Programmiersprache? – unwind

+0

Ich sehe das Problem hier nicht ... Wenn Sie mit Bruchzahlen arbeiten, wird der Division Operator/der Bruchindikator, d. H. Jede Division wird tatsächlich in einen Bruch umgewandelt. –

+0

Schauen Sie sich das in Python 2.6 enthaltene Bruchmodul an –

Antwort

4

Ich glaube, Sie brauchen eine Syntax/Parser, der über rationale Zahlen weiß zu definieren. Für Ihre Abtastwerteingang möchten Sie mit einem Parse-Baum hält, so etwas Ende:

add(rational(2, 9) 
     rational(9, 3)) 

Dann würden Sie Code schreiben, der über die verschiedenen Tricks weiß, wann mit rationals Berechnung, so dass der Code die Implementierung add Operation kann zum Beispiel für die greatest common divisor seiner Eingabe Argumente überprüfen, und transformieren Sie die Zahlen zu addierbar.

In diesem Fall würde es wahrscheinlich die Argumente um rational(2, 9) und rational(27, 9) neu schreiben, dann die Addition, und damit am Ende mit rational(29, 9) enden.

Sie könnten eine eigene Funktion haben, die Vereinfachung der Fall ist, dass kann, dass bis auf 3+rational(2, 9) vereinfachen zurück.