Cryptarithmes, solution additions cryptées

Description

Il s'agit d'un petit devoir de vacances, un programme complet, et non la résolution d'une difficulté de programmation ( niveau débutant): additions cryptées.

L'intérêt de ce programme est qu'il résout les problèmes de cryptarithmie, sans être trop pressé car la méthode utilisée est la force brute (énumération). La définition des cryptarithmes est donnée dans le fichier 'définition.txt' dans le zip. Des énoncés de problèmes sont aussi fournis ( ils présentent aussi des exemples de règles d'écriture ).

La règle d'écriture des énoncés est la suivante:
La ligne contenant le premier mot doit commencer par un espace.
Chaque mot nouveau doit être sur une nouvelle ligne, commençant par un '+'
La ligne de tirets est optionnelle pour la lisibilité.
La ligne de résultat est une nouvelle ligne commençant par '='

Conclusion :


Le programme commence par analyser le nombre de lettres différentes ( pas plus de 26 ); puis il vérifie si la valeur attribuée peut commencer à 0 ou à 1 ( valeur de 'premier').

Ensuite un compteur est attribué à chaque lettre, et l'ensemble des compteurs fonctionne comme les roues d'un compteur kilométrique: quand un compteur à fait un tour, il incrémente le compteur suivant... et ainsi de suite jusqu'a ce que le dernier compteur atteigne 9.

Si le problème admet des centaines de solutions, il est souhaitable d'arrêter avant la fin, d'où la présence d'un test d'arrêt. Pour stopper le programme, il est possible de mettre le test à 0.

Pour vérifier que le programme n'est pas arrété, une petite procédure d'affichage d'étoiles montre le progression en mode texte. Une ligne d'affichage montre le test de codage du dernier compteur ( pour suivre l'avance de l'analyse ). Jusqu à 8 lettres différentes, le traitement est assez rapide; ensuite...

Pour moi, le code est suffisamment commenté. J'ai ajouté beaucoup de variables inutiles, et je n'ai pas utilisé de syntaxe du genre 'With' pour suivre les variables en cas de débuggage, et simplifier la lisiblité. Je pense que le code est assez simple pour être compilé dans de nombreuses versions de DELPHI.

On pourrait rendre l'écriture du code plus élégante, plus compacte, avec plus de contrôles sur les différents types d'erreurs, mais ce n'était pas mon but. Je laisse le soin aux graphistes d'enjoliver l'interface pour en faire un produit fini si le programme présente un intérêt.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.