• Aucun résultat trouvé

Ecrire la fonction [n]=decodage_postal(c) permettant, après s'être assuré de la fiabilité du codage, de déterminer le code postal

N/A
N/A
Protected

Academic year: 2021

Partager "Ecrire la fonction [n]=decodage_postal(c) permettant, après s'être assuré de la fiabilité du codage, de déterminer le code postal"

Copied!
2
0
0

Texte intégral

(1)

Sur les enveloppes utilisées par la Poste, les codes postaux écrits en chiffres par l'envoyeur sont codés par des bandes colorées imprimées dans la partie inférieure.

Les codages des cinq chiffres du code postal sont écrits de droite à gauche, jointivement. La table de conversion est la suivante :

0: ..|||| 1: .|.||| 2: .||.|| 3: .|||.| 4: |..|||

5: |.|.|| 6: |.||.| 7: ||..|| 8: ||.|.| 9: |||..|

où le . représente un espace de code ASCII 32 et | est le caractère de code ASCII 124

On suppose que ce codage est contenu dans le tableau Tableau de taille 10 contenant les chaînes de la table de conversion.

Ainsi Tableau(3) est la chaîne '.|||.|'

Ecrire la fonction [c]=codage_postal(n) permettant d'écrire le codage c correspondant au code postal donné par n.

En vue d'un décodage, on doit s'assurer tout d'abord de la validité de la lecture du code (par un scanner ou lecture optique). Ecrire la fonction [b]=Verification(c) retournant la valeur vraie si le code est possible et la valeur faux sinon sachant que le codage de chaque chiffre doit comprendre 4 barres et nécessairement une barre en première position (dans son écriture qui est de droite à gauche ! cf table de conversion).

Ecrire la fonction [n]=decodage_postal(c) permettant, après s'être assuré de la fiabilité du codage, de déterminer le code postal.

(2)

function [c]=codage_postal(n)

tableau=['.|.|||' '.||.||' '.|||.|' '|..|||' '|.|.||' '|.||.|' '||..||' '||.|.|' '|||..|' '..||||']

c=''

for i=1:5 do a=modulo(n,10) if a==0 then a=10; end c=c+tableau(a)

n=(n-modulo(n,10))/10 end

function [b]=verification(c) b=%t

for i=1:5 do

if part(c,i*6)<>'|' then b=%f; end s=0;

for j=(6*i-5):(6*i) do

if part(c,j)=='|' then s=s+1; end end

if s<>4 then b=%f; end end

function [n]=decodage_postal(c)

tableau=['.|.|||' '.||.||' '.|||.|' '|..|||' '|.|.||' '|.||.|' '||..||' '||.|.|' '|||..|' '..||||']

n=0

b=verification(c)

if b==%f then error('le codage est faux') else for i=5:-1:1 do

d=''

for j=(6*i-5):(6*i) do d=d+part(c,j)

end

for k=1:10 do

if d==tableau(k) then m=k; end end

if m==10 then m=m-10; end n=10*n+m

end end

Références

Documents relatifs

(2) ´ Ecrire une fonction traitement qui prend pour arguments une image et une fonction puis applique cette fonction sur la valeur de chacun des pixels de l’image.. (3) Red´

Ecrire le code coffee similaire à cette classe javascript.. var Counter = function () { this.count

Pour cela, il a à sa disposition deux planches de longueur 2m et de largeur 1m qui constitueront les côtés latéraux de la maie et une troisième planche de mêmes dimensions

Répéter dans la plage de cellules A5:V5, les lettres en MAJUSCULE du mot &#34;clé &#34; : MATHS, réserver une lettre par cellule, ne pas faire d'espace entre les mots MATHS.. Ecrire

[r]

Or pour Marx, ce qui échappe à Aristote, c’est l’élément commun car, par définition, ces deux valeurs d’usage sont disparates, pour devenir valeur d’usage, leur

[r]

Seule l’utilisation du logiciel scilab et de sa rubrique d’aide est