C++: explode, split, tokenize

In PHP gibt es eine Funktion namens explode, die einen String anhand eines oder mehrerer Zeichen aufspaltet und als ein Array zurückgibt. Manchmal wird solch eine Funktion auch in C++ benötigt. Leider gibt es dafür keine native Implementierung. Es gibt zwar eine C-Funktion stdtok, aber die ist ziemlich unschön und gibt kein C++ Array zurück. … Weiterlesen

Quadratwurzel mit Bisektion berechnen

Bisektion-Verfahren. Das Intervall zwischen L und H in der Mitte teilen und testen ob der Wert m unter- oder überschätzt wurde. Intervallgrenzen anpassen.

Im Folgenden werde ich zeigen, wie man relativ einfach die Umkehrfunktion einer monotonen Funktion berechnen kann. Als Beispiel nehme ich die Wurzelfunktion. Nehmen wir an, wie möchten die Wurzel von 10 berechnen. Wie geht man dabei vor? Wir kennen das Ergebnis nicht, aber wir können sagen in welchem Bereich es sich befindet. Der Betrag der … Weiterlesen

String in Integer konvertieren (dezimal, binär, hexadezimal, oktal)

Wie man Strings in Zahlen und Zahlen in Strings in C++ konvertiert, habe ich bereits beschrieben. Jetzt möchte ich eine Lösung vorstellen, wie Strings in Integer ganz „per Hand“ umwandelt werden (Es war meine Hausaufgabenlösung in Informatik). Um einen String in einen Integer umzuwandeln, lohnt es sich das ASCII-System auszunutzen. Das Prinzip ist ziemlich einfach: … Weiterlesen

Cache-Optimierung: Zeitliche und Räumliche Lokalität

Cache-Hierarchie.

Wenn man schnelle Programme schreiben möchte, so muss man auch die Funktionsweise der Hardware beachten, wie ich im Folgenden zeige werde. Nehmen wir an, es muss ein zweidimensionales Array vollständig durchlaufen werden. Dieser Fall trifft beispielsweise oft auf, wenn man Bildmanipulationen durchführt. Dazu ein minimales Beispiel. Es wird ein zweidimensionales Integer-Array erstellt und auf zwei … Weiterlesen

Mathematica: Fortschritt und Restrechenzeit anzeigen

Fortschrittsbalken

Führt man in Mathematica zeitaufwändige Berechnungen durch, so wünscht man sich oft eine Fortschrittsanzeige um den Status der Berechnung zu erfahren. Eine einfache Fortschrittsanzeige kann man mit der Funktion ProgressIndicator realisieren. Als erstes definiert man eine Variable, die den aktuellen Fortschritt beschreibt. Wird beispielsweise ein Feld durchlaufen, so gibt diese Variable die Position, an der … Weiterlesen

Pi mit Monte-Carlo-Simulation und Leibnitz-Formel berechnen

Ein Tausend zufällig verteilte Punkte.

Die Kreiszahl π≈3,14159 ist jedem bekannt, aber wie berechnet man sie? Viele Mathematiker haben sich damit beschäftigt und sehr viele interessante und mächtige Algorithmen entwickelt, so das mittlerweile über 5 Billionen Nachkommastellen von Pi bekannt sind. Am einfachsten bestimmt man die Kreiszahl nach ihrer Definition. Man nimmt also einen Kreis, misst seinen Durchmesser und seinen … Weiterlesen

C++ Teil 10 – Funktionen I

Funktionsaufbau

Inhalt Einleitung Funktionen erstellen Funktionsaufruf Wertübergabe Rückgabewert Ein Beispiel Übungsaufgaben Einleitung In diesem und in mindestens einem weiteren Teil dieser Artikelreihe werden wir uns mit Funktionen beschäftigen. Funktionen sind ein absolut grundlegendes Element einer (funktionaler) Programmiersprache. C++ ist zwar hauptsächlich eine objektorientierte Programmiersprache (dafür wurde sie schließlich entwickelt), aber im Gegensatz zu Java oder C# … Weiterlesen