Astronomie, libnova

Il y a quelques années j'avais écrit quelques programmes de calcul de l'heure de lever et de coucher du soleil. J'ai découvert ces jours-ci une librairie de calculs d'astronomie qui fait tout ce qu'on peut imaginer.

Machine de Turing

Implémentation en C d'une machine de Turing

Ensemble des diviseurs d'un entier naturel

Prétexte pour construire à la volée une pile LIFO en C.

Langage C et codage de caractères

La fonction strlen est censée compter le nombre de caractères d'une chaine. Mais strlen("déjà") ne donne pas 4 mais 6. C'est qu'elle compte le nombre de bytes et "déjà" s'écrit avec 6 bytes, à cause des lettres accentuées.

Calculs en multiple précision

Pense-bête pour les calculs en multiple précision en python (module mpmath) et en C (GNU MPFR).

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

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


Réalisé avec Qlam - LGPL