Programmieren



C++11: Alternative Syntax f├╝r die Funktionsdeklarationen

In dem neuen C++ Standard wurde eine alternative Syntax f├╝r Funktionen eingef├╝hrt. Diese erlaubt den Datentyp des R├╝ckgabewertes am Ende des Funktionskopfes zu schreiben. ├ťber die Bedeutung des Schl├╝sselwortes auto habe ich bereits geschrieben. In diesem Fall sorgt es daf├╝r, dass der Kompiler die Deklaration auch solche erkennt. F├╝r mich erscheint es an dieser Stelle ├╝berfl├╝ssig, aber ich vermute, dass der Grund auch an der… Weiterlesen

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. Im Internet findet man viele brauchbare und wenig brauchbare Beispiele… 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 Wurzel wird auf jeden Fall gr├Â├čer oder gleich der 0… 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: Man nimmt das erste char-Zeichen (was nichts anderes als eine… 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 unterschiedliche Weisen durchlaufen. In jedem Durchgang wird ein Wert in… Weiterlesen

Piwik: richtige Aufenthaltsdauer und Absprungrate anzeigen

Browservertelung 12/2011

Piwik zeigt die Aufenthaltsdauer von Besuchern nicht richtig an. Die Aufenthaltsdauer in Piwik entspricht der Zeitdifferenz zwischen der ersten und letzten Aktionen auf einer Website, wobei unter einer Aktion ein Klick auf einen Link bzw. das Neuladen der Website gemeint ist. Kommt ein Besucher auf die Website, liest 30 Minuten lang einen Artikel und schlie├čt danach das Fenster, so erkennt Piwik nur eine Aktion und… 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 gerade eine Berechnung durchgef├╝hrt wird an. Ich nenne sie hier… Weiterlesen