Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 18-03-2012 13:36:06

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 947

[AlgoBox] Codage d'une phrase via la méthode du "Carré de Polybe"

Bonjour,

Je n'ai pas trouvé comment obtenir la position d'une lettre dans une chaîne : j'en ai donc été conduit à parcourir systématique le "carré" de Polybe (le W est éventuellement remplacé par un V : je n'en ai pas tenu compte) en incrémentant un compteur, jusqu'à tomber sur la bonne lettre.
J'aurais pu remplacer le carré Polybe chaîne par le carré Polybe contenant les codes ASCII des lettres de l'alphabet, le code 65 occupant la position 65 - 64 = 1 dans la liste (65 = code du A).
Je n'ai pas procédé ainsi pour respecter le procédé manuel du codage.

1     VARIABLES
2       test EST_DU_TYPE NOMBRE
3       longueur EST_DU_TYPE NOMBRE
4       ligne EST_DU_TYPE NOMBRE
5       col EST_DU_TYPE NOMBRE
6       pos EST_DU_TYPE NOMBRE
7       i EST_DU_TYPE NOMBRE
8       j EST_DU_TYPE NOMBRE
9       Texte_Clair EST_DU_TYPE CHAINE
10      Polybe EST_DU_TYPE CHAINE
11      lettre EST_DU_TYPE CHAINE
12      lettrebis EST_DU_TYPE CHAINE
13    DEBUT_ALGORITHME
14      Polybe PREND_LA_VALEUR "ABCDEFGHIJKLMNOPQRSTUVXYZ"
15      Texte_Clair PREND_LA_VALEUR "JESUISFOUDUCHOCOLATLANVINDISAITDALI"
16      longueur PREND_LA_VALEUR Texte_Clair.length-1
17      AFFICHER "La phrase :"
18      AFFICHER Texte_Clair
19      AFFICHER "est codée en"
20      POUR i ALLANT_DE 0 A longueur
21        DEBUT_POUR
22        lettre PREND_LA_VALEUR Texte_Clair.substr(i,1)
23        test PREND_LA_VALEUR 0
24        pos PREND_LA_VALEUR 0
25        TANT_QUE (test==0) FAIRE
26          DEBUT_TANT_QUE
27          lettrebis PREND_LA_VALEUR Polybe.substr(pos,1)
28          SI (lettre==lettrebis) ALORS
29            DEBUT_SI
30            test PREND_LA_VALEUR 1
31            FIN_SI
32            SINON
33              DEBUT_SINON
34              pos PREND_LA_VALEUR pos+1
35              FIN_SINON
36          FIN_TANT_QUE
37        ligne PREND_LA_VALEUR FLOOR(pos/5)+1
38        col PREND_LA_VALEUR 1+pos%5
39        j PREND_LA_VALEUR 10*ligne+col
40        AFFICHER j
41        AFFICHER " "
42        FIN_POUR
43    FIN_ALGORITHME

Résultats :
***Algorithme lancé***
La phrase :
JESUISFOUDUCHOCOLATLANVINDISAITDALI
est codée en
25 15 44 51 24 44 21 35 51 14 51 13 23 35 13 35 32 11 45 32 11 34 52 24 34 14 24 44 11 24 45 14 11 32 24
***Algorithme terminé***

Je vais voir en remplaçant le Texte_Clair par une liste comprenant les codes ASCII du texte, et la chaine Polybe par les codes ASCII des lettres de l'alphabet...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante deux plus quatre-vingt huit
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums