Mathe

Ohne Mathe kommen wir auch in der Programmierung nicht weit.

Die Berechnung übernimmt zwar die Maschine, der Programmierer muss aber die Formeln oder Befehle dazu an die Maschine übergeben. Neben den einfachen Grundrechenarten werden in der Programmierung auch 3D-Objekte oder Grafiken generiert, die nun mal aus irgendwelchen Berechnungen entstehen.


Basics

Die einfachen Grundrechenarten haben wir bereits behandelt. Für komplizierte Berechnungen stehen bereits viele fertige Funktionen bereit.

sqrt

"sqrt" berechnet die Quadratwurzel einer Zahl.

Quadratwurzel berechnen

$a = 16;
echo sqrt($a);

pow

"pow" liefert die Potenz einer Berechnung.

Potenz berechnen

$a = 4;
$b = 3;
echo pow($a, $b);

intdiv

Mit der Funktion "intdiv" können wir eine ganzzahlige Teilung durchführen.

Ganzzahlige Teilung

$a = 9;
$b = 2;
echo intdiv($a, $b);

Es gibt für fast alles was zu berechnen ist eine Funktion, und wenn es diese noch nicht gibt, dann erstellen wir eine eigene und implementieren diese dann selber.


Konstanten

Es gibt eine ganze Reihe von mathematischen Konstanten, die entweder schwer zu berechnen sind oder einfach besonders häufig in der Programmierung verwendet werden. Hier eine kleine Auswahl der verfügbaren Konstanten.

Konstante Beschreibung Wert
M_PI Die Kreiszahl Pi 3.14159265358979323846
M_PI_2 Die Kreiszahl geteilt durch 2 1.57079632679489661923
M_PI_4 Die Kreiszahl geteilt durch 4 0.078539816339744830962
M_E Die eulersche Zahl 𝑒 2.7182818284590452354
M_SQRT2 Die Quadratwurzel von 2 1.41421356237309504880

Dezimal

Menschen Rechnen in einem Zahlensystem, welches auf 10 Ziffern basiert. Das sogenannte Dezimalsystem. In der Programmierung treffen wir aber auch häufig auf andere Zahlensysteme.


Hexadezimal

Hexadezimalzahlen bestehen aus den Ziffern von 0 bis 15. Dabei werden die Ziffern von 0 bis 9 so dargestellt, wie wir sie kennen, die Ziffern von 10 bis 15 werden durch: 1A, 1B, 1C, 1D, 1E, 1F dargestellt.


Binär

Binär kennt nur die 1 und die 0. Die Zahlen werden dabei in einer Reihe von rechts nach links gelesen. Steht eine 1 ist der Wert vorhanden, steht eine 0 ist der Wert nicht vorhanden. Der Wert ganz rechts steht für 1, der Wert links daneben steht für 2, der Wert links daneben steht für 4, der Wert links daneben steht für 8 usw. 0110 steht demnach für die die Dezimalzahl 6.


Oktal

Oktal ist ein Zahlensystem, welches auf die 8 basiert. Die oktale Zahl wird ebenfalls von rechts nach links gelesen. Angegeben werden die Zahlen von 0 bis 7, nach der 7 folgt die 10. Die 10 in oktal ist die 8 in dezimal. Wenn wir oktal bei der 17 ankommen sind, dann ist die darauffolgende Zahl die 20, die 20 in oktal ist die 16 in dezimal usw. die oktale Zahl 41, ist die Dezimalzahl 33.


Um von einem Zahlensystem in eine anderes umzurechnen, greifen wir auf die Funktionen "dechex", "decbin" und "decoct" zurück, die uns PHP bereitstellt.

Umrechnung auf Hexadezimal

$a = 125;
echo dechex($a);
Umrechnung auf Binär

$a = 125;
echo decbin($a);
Umrechnung auf Oktal

$a = 125;
echo decoct($a);
Hinweis

Der Rückgabewert der Funktionen ist immer ein String. PHP hat keinen Datentyp für Hexadezimal, Binär oder Oktal. Für die Rückwärtskonvertierung können wir den Funktionen auch nur einen String anbieten.

Umrechnung von Hexadezimal

$a = "7d";
echo hexdec($a);
Umrechnung von Binär

$a = "1111101";
echo bindec($a);
Umrechnung von Oktal

$a = "175";
echo octdec($a);

Zufallszahlen

Zufallszahlen werden in der Programmierung immer dann verwendet, wenn eine gewisse Flexibilität gegeben und eine Überraschung gewünscht ist. Dadurch können in Spielen zufällig Gegner in einer Welt auftauchen, oder zufällig wird eine Karte in einem Spiel gezogen. In der Webentwicklung entscheidet der Zufall, welcher Werbebanner eingeblendet wird oder welches zufällige Passwort generiert wird.

Die Funktion "rand" bekommt 2 Parameter übergeben, die jeweils einen Anfangswert und einen Endwert bezeichnen. Dazwischen wird eine zufällige Ganzzahl vom System ausgesucht und ausgegeben.

Zufallszahl generieren

echo rand(5, 40);

Sollten wir bei dieser Funktion die Begrenzung weglassen, bekommen wir eine Zufallszahl ausgegeben, die irgendwo zwischen 0 und der systemabhängigen Obergrenze liegt. Um die Obergrenze ausgeben zu lassen, verwenden wir die Funktion "getrandmax()".

Systemseitige Obergrenze

echo getrandmax();

Etwas moderner geht es mit der Funktion "mt_rand". Sie wird genauso behandelt wie "rand" aber arbeitet mit einem schnelleren, zufälligeren und verlässlicheren Algorithmus als "rand".

Zufallszahl generieren

echo mt_rand(5, 40);

Auch ohne Parameter wird ein Wert zwischen 0 und der systemanhängigen Obergrenze ausgegeben. Um die Obergrenze abzufragen, verwenden wir die Funktion "mt_getrandmax".

Systemseitige Obergrenze

echo mt_getrandmax();

Maximal, Minimal und das Runden

Ab und zu müssen wir die Zahlen etwas anpassen.

Um den größten Wert einer übergebenen Auswahl zu bekommen, verwenden wir die Funktion "max", der wir beliebig viele Parameter übergeben können. Der Rückgabewert ist dann die größte Zahl aus der Auswahl.

Größte Zahl zurückgeben

echo max(5, 12, 56, 3, 128, 22);

Umgekehrt verhält sich die Funktion "min" dieser Funktion übergeben wir auch beliebig viele Parameter. Der Rückgabewert ist die kleinste Zahl aus der Auswahl.

Kleinste Zahl zurückgeben

echo min(5, 12, 56, 3, 128, 22);

Den Funktionen "max" und "min" können wir auch einen einzelnen Parameter angeben, dabei muss es sich dann aber um ein Array handeln.

max und min

$a = [5, 12, 56, 3, 128, 22];
echo max($a) . "<br />" . min($a);

Wir müssen uns bei diesen Funktionen, aber für ein Array oder einzelnen Integer als Parameter entscheiden.


Runden

Die Funktion "round" wird verwendet, wenn Zahlen gerundet werden sollen. Dabei wird wie üblich bis zur 4 abgerundet und ab der 5 aufgerundet. Übergeben wir nur ein Parameter, wird dieser als Ganzzahl ausgegeben.

Runden mit round

$a = 12.56178;
echo round($a);

Neben dem zu rundenden Wert können wir noch einen Parameter angeben, mit denen wir die Genauigkeit der Nachkommastellen bestimmen.

Runden mit round

$a = 12.56178;
echo round($a, 2);

Die Funktion "floor" rundet auch Zahlen, dabei wird aber immer die nächstkleine Ganzzahl zurückgegeben.

Runden mit floor

$a = 12.56178;
echo floor($a);

Die Funktion "ceil" liefert uns die nächstgrößte Ganzzahl zurück.

Runden mit ceil

$a = 12.56178;
echo ceil($a);

Die Funktion "abs" liefert den Betrag einer Zahl aus. Aus negativen Zahlen werden Positive, ohne dass die Nachkommastellen verändert werden.

Betrag ausgeben lassen

$a = -12.56178;
echo abs($a);

Weiter mit Datum und Zeit