Liens utiles

http://valgrind.kde.org/

Valgrind permet de purifier un exécutables des erreurs d'allocation mémoire.

Code C++ / Fichiers Sources

Cette section contient les fichiers C++ disponibles.


Évaluation d'expression – Sources en domaine public (Public Domain sources)

Télécharger projet Kdevelop / Fichiers C++ expr.h, expr.cpp, main.cpp

Ce programme fournit une fonction 'Evaluate' permettant d'évaluer des expressions du type:

3*3 => 9
1+2 + (5) + (4-6)*4 - 1 + 4 * 3 – (3*4/1) => -1
(123-3-3-7) => 110
((((5))))*5 => 25
0x55 => 85
0X65 => 101
0x55*0x14 => 1700
0x160/Hexa => 16
Dix*Dix*Dix => 1000
logn(1000000)*5 => 65
logn(10*10*10*10*10*(5+5))*5 => 65

Si 'logn' est définie comme la fonction logarithme népérien, 'Dix' et 'Hexa' comme des variable valant 10 et 16.

Elle permet de reconnaître les erreurs de syntaxe:

85/7982( => Expecting + or - instead of (
bad => Expecting + or - instead of bad
(123()-3-3-7) => Expecting + or - instead of (
5/0 => Division by zero
logn => Expecting (

La principale fonction exportée est:

bool Evaluate( string iExpr, unsigned int* opValue, string* opErrorMsg, IsAFuncDef ifIsAFunction, IsAVarDef ifIsAVar);

Elle analyse la chaîne de caractères iExpr, si elle est conforme à la syntaxe et peut être évaluée, la fonction renvoie true et opValue contient la valeur de l'expression.
En cas d'erreur, la fonction renvoie false, et opErrorMsg donne le message d'erreur.
ifIsAFunction est l'adresse d'une fonction permettant de savoir si un mot correspond à une fonction.
ifIsAVar
est l'adresse d'une fonction permettant de savoir si un mot correspond à une variable.


Calcul des nombres premiers

Exemple d'implémentation de recherches des nombres premiers. prim.c

Son but était plutôt de servir d'exemple à la syntaxe C++ que de fournir un algorithme efficace.