Cet exemple montre comment décrire un algorithme dans un
langage algorithmique francophone directement compilable en C++ ! Il met
simplement en évidence les capacités du
préprocesseur.
Extrait des fichiers de l'exemple :
la fonction
puissance définie ci-après est capable
de
calculer
xn, où
x est un entier relatif
et
n un entier naturel :
- sa version C++ est :
int puissance(int x, unsigned int n) {
if (n==0)
return 1;
else if (n%2==0)
return puissance(x*x, n/2);
else
return x*puissance(x*x, (n-1)/2);
};
- sa version remaniée (style langage algorithmique en français) est :
FONCTION Entier puissance
PARAMETRES Entier x,
Naturel n
CORPS
SI n==0 ALORS
RESULTAT 1;
SINONSI n%2==0 ALORS
RESULTAT puissance(x*x, n/2);
SINON
RESULTAT x*puissance(x*x, (n-1)/2);
FINSI;
FINFONC;
L'algorithme utilisé exploite les propriétés suivantes :
- x0 = 1 (il faudrait normalement vérifier que x≠0)
- xn = (x2)n÷2 si n>0 et pair
- xn = x(x2)(n-1)÷2 si n impair
L'exemple complet est constitué de trois fichiers :
- original.cpp
- le fichier C++ original
- remanié.cpp
- une version remaniée du fichier
précédent, sous la forme de ce langage algorithmique
francophone
- terminologie.h
- la liste des directives destinées au
préprocesseur, afin qu'il traduise sans douleur votre texte,
écrit dans ce langage algorithmique, en un code C++
équivalent.