#date

Langage C++

Entiers de Gauss

Prétexte pour revisiter C++ que je ne pratique plus depuis quelques années et réviser un peu d'algèbre que je suis en train d'oublier. Un entier de Gauss est un nombre complexe dont la partie réelle et la partie imaginaire sont des entiers relatifs.

GNU-libmatheval

Libmatheval est une librairie C qui analyse et évalue une expression mathématique sous forme de chaîne. Elle reconnait les fonctions et opérateurs mathématiques et les variables. En prime, elle peut déterminer la fonction dérivée.

Grafx

J'ai souvent besoin de programmer une fenêtre Xwindow sans bouton, ni trompette, pour y dessiner quelque chose et éventuellement y écrire un texte simple. Les librairies usines à gaz (Gtk, Qt, Fltk, ...) nécessitent un investissement très long, et une mise en place pénible.

GrafX (prononce graf ix, comme X11) est une classe qui manipule X11 directement. Son utilisation est immédiate : open pour ouvrir une fenêtre, line pour tracer un trait, etc.

Stack : liste chaînée

Le C++ offfre en standard (STL) plusieurs conteneurs aussi chiants à manier, les uns que les autres. Pour implémenter une simple pile LIFO on peut recourir à verctor, list ou même l'usine à gaz stack. Ce n'est pourtant pas sorcier d'implémenter une pile.

Correction (24/09/2015) Il semblerait que forward_list fournit une pile LIFO. Je n'ai pas encore essayé.

Regex en C++

Paradoxalement c'est en C++ que les expressions régulières sont les plus simples à employer. Il suffit de connaître la syntaxe ECMAScript et les trois méthodes regex_match, regex_search et regex_replace. Accessoirement nous utiliserons une nouveauté de C++11 : for x: conteneur