Bruch - (math\fraction.class.php)

new math\fraction() - Object

$integer numerator = 0 Zähler des Bruchs
$integer denominator = 1 Nenner des Bruchs (wird automatisch auf > 0 normalisiert; darf nicht 0 sein)
__construct ([$integer $num = 0[, $integer $denom = 1]])
$num optional; Zähler als ganze Zahl; default ist 0
$denom optional; Nenner als ganze Zahl (darf nicht 0 sein); default ist 1
erstellt eine neue Bruch-Instanz; normalisiert negative Nenner automatisch in den Zähler und fängt eine Division durch 0 mit Fallback auf 1 ab
$frac = new math\fraction(3, 4); // 3/4
$neg = new math\fraction(1, -2); // -1/2 (Vorzeichen wandert in den Zähler)
__toString ()
gibt den Bruch als lesbare Zeichenkette in der Form 'Zähler/Nenner' zurück
$frac = new math\fraction(5, 8);
echo $frac; // Ausgabe: 5/8
num ([$integer $scale = 10])
$scale optional; Genauigkeit bzw. Anzahl der Nachkommastellen; default ist 10
berechnet den Fließkommawert des Bruchs mit bcdiv() und gibt diesen als float zurück
$frac = new math\fraction(1, 3);
$frac->num(4); // 0.3333
ggT ()
ermittelt den größten gemeinsamen Teiler (ggT) von Zähler und Nenner über math::ggT() und gibt diesen als integer zurück; im Fehlerfall null
$frac = new math\fraction(12, 18);
$frac->ggT(); // 6
kurzen ()
kürzt den aktuellen Bruch vollständig mit dem ggT; modifiziert die Instanz direkt und gibt $this zur Methodenverkettung zurück
$frac = new math\fraction(12, 18);
$frac->kurzen();
echo $frac; // Ausgabe: 2/3
gekuerzt ()
gibt eine gekürzte Kopie des Bruchs zurück, ohne das Original-Objekt zu verändern
$frac = new math\fraction(4, 8);
$clone = $frac->gekuerzt(); // 1/2 (Original bleibt 4/8)
kehrwert ()
berechnet den Kehrwert des Bruchs durch Vertauschen von Zähler und Nenner; gibt eine neue Instanz von new math\fraction() zurück, oder null wenn der Zähler 0 ist
$frac = new math\fraction(2, 5);
$inv = $frac->kehrwert(); // 5/2

Grundrechenarten (Fluent Interface)

plus ($object $frac)
$frac Bruch-Objekt (new math\fraction()), das addiert werden soll
addiert einen weiteren Bruch zur aktuellen Instanz und gibt das Ergebnis als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(1, 4);
$b = new math\fraction(1, 2);
$res = $a->plus($b); // 6/8
$res->kurzen(); // 3/4
minus ($object $frac)
$frac Bruch-Objekt (new math\fraction()), das subtrahiert werden soll
subtrahiert einen Bruch von der aktuellen Instanz und gibt das Ergebnis als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(3, 4);
$b = new math\fraction(1, 4);
$res = $a->minus($b); // 2/4
multiply ($object $frac)
$frac Bruch-Objekt (new math\fraction()), mit dem multipliziert werden soll
multipliziert die aktuelle Instanz mit einem weiteren Bruch und gibt das Ergebnis als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(2, 3);
$b = new math\fraction(3, 5);
$res = $a->multiply($b); // 6/15
divide ($object $frac)
$frac Bruch-Objekt (new math\fraction()), durch das dividiert werden soll
dividiert die aktuelle Instanz durch einen weiteren Bruch (Multiplikation mit dem Kehrwert) und gibt das Ergebnis als neues new math\fraction() Objekt zurück; im Fehlerfall oder bei Division durch 0 wird null zurückgegeben
$a = new math\fraction(1, 2);
$b = new math\fraction(3, 4);
$res = $a->divide($b); // 4/6

Darstellung

toMathML ()
gibt die MathML-Repräsentation des Bruchs als string zurück
$frac = new math\fraction(1, 2);
echo $frac->toMathML();

Statische Methoden

static math\fraction::add ($object $fracA, $object $fracB)
$fracA erster Summand als new math\fraction()
$fracB zweiter Summand als new math\fraction()
addiert zwei Brüche mithilfe des Hauptnenners (math::kgV()) und gibt die Summe als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(1, 3);
$b = new math\fraction(1, 6);
$summe = math\fraction::add($a, $b); // 3/6
static math\fraction::sub ($object $fracA, $object $fracB)
$fracA Minuend als new math\fraction()
$fracB Subtrahend als new math\fraction()
subtrahiert zwei Brüche mithilfe des Hauptnenners (math::kgV()) und gibt die Differenz als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(3, 4);
$b = new math\fraction(1, 4);
$diff = math\fraction::sub($a, $b); // 2/4
static math\fraction::mul ($object $fracA, $object $fracB)
$fracA erster Faktor als new math\fraction()
$fracB zweiter Faktor als new math\fraction()
multipliziert zwei Brüche miteinander ((a · c) / (b · d)) und gibt das Produkt als neues new math\fraction() Objekt zurück; im Fehlerfall null
$a = new math\fraction(2, 3);
$b = new math\fraction(4, 5);
$prod = math\fraction::mul($a, $b); // 8/15
static math\fraction::div ($object $fracA, $object $fracB)
$fracA Dividend als new math\fraction()
$fracB Divisor als new math\fraction()
dividiert zwei Brüche miteinander (Multiplikation mit dem Kehrwert) und gibt das Ergebnis als neues new math\fraction() Objekt zurück; im Fehlerfall oder bei Divisor 0 wird null zurückgegeben
$a = new math\fraction(3, 4);
$b = new math\fraction(2, 5);
$quot = math\fraction::div($a, $b); // 15/8
static math\fraction::mathML ($mixed $a, $mixed $b)
$a Zähler für das MathML-Markup
$b Nenner für das MathML-Markup
erzeugt einen validen MathML-Code-Block für einen Bruch und gibt diesen als string zurück
math\fraction::mathML(1, 2);
// Rückgabe: <math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mrow><mn>1</mn></mrow><mn>2</mn></mfrac></math>