[Résolu] Codage et décodage
Publié : mer. 05/juin/2013 13:22
Bonjour à tous,
toujours sur le même principe, je souhaiterais faire une procédure faisant l'inverse de celle-ci, c'est-à-dire de remettre en décimal le code sortant de cette même procédure que voici :
Je vous remercie tous par avance de votre participation
toujours sur le même principe, je souhaiterais faire une procédure faisant l'inverse de celle-ci, c'est-à-dire de remettre en décimal le code sortant de cette même procédure que voici :
Code : Tout sélectionner
Procedure Coder(Nombre.q)
; À toutes les dizaines on est décalé d'une unité, ça donne une Retenue
Retenue = (Nombre - 1) / 9
; On ajoute la Retenue au résultat
Resultat = Nombre + Retenue
; Pour l'instant on n'a modifié que les unités ajoutés toutes les dizaines, il faut aussi ajouter
; tous les blocs de 0 qui apparaissent 10 fois toutes les centaines, 100 fois tous les milliers, etc.
; Sans oublier qu'à chaque fois qu'on ajoute une Retenue celle-ci décale le résultat, il faut donc
; calculer aussi la Retenue de la Retenue !
; 1 = unités, 10 = dizaines, 100 = centaines...
Rang = 1
; On s'arrête quand il n'y a plus de Retenue à ajouter
While Retenue > 0
; Nouvelle Retenue à ajouter
Retenue = (10 * Rang) * ((Retenue - 1) / (9 * Rang))
; Ajout de la Retenue
Resultat + Retenue
; Passage au Rang suivant
Rang * 10
Wend
ProcedureReturn Resultat
EndProcedure