A voir également:
- [algorithme]
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Tri d'une matrice algorithme - Forum C
1 réponse
Salut,
je crois que tu as mis un I de trop ! :-))
bon pour l'algo c'est assez simple.
tu divise le nombre à traduire par la plus grande valeur (3767/1000=3,767)
de ce resultat tu ne garde que l'entier (3).
tu affiche le symbole qui correspond à la plus grande valeur autant de fois que l'indique l'entier. (Mx3=MMM)
tu multiplie l'entier par la plus grande valeur(3x1000=3000)
puis tu soustrait le resultat obtenu du nombre à traduire (3767-3000=767
tu recommence avec la plus grande valeur suivante :
tu divise le nombre à traduire par la plus grande valeur (767/500=1,53)
de ce resultat tu ne garde que l'entier (1).
tu affiche le symbole qui correspond à la plus grande valeur autant de fois que l'indique l'entier. (1xD=D on affiche donc MMMD)
tu multiplie l'entier par la plus grande valeur(1x500=500)
puis tu soustrait le resultat obtenu du nombre à traduire (767-500=267
et tu recommence ....
resultat affiché :
MMMDCCLXVII
voici le programme Liberty BASIC correspondant:
dim a$(7,2)
a$(1,1)="1000":a$(1,2)="M"
a$(2,1)="500":a$(2,2)="D"
a$(3,1)="100":a$(3,2)="C"
a$(4,1)="50":a$(4,2)="L"
a$(5,1)="10":a$(5,2)="X"
a$(6,1)="5":a$(6,2)="V"
a$(7,1)="1":a$(7,2)="I"
[new]
input "quel est le nombre à traduire ";nbre
for i=1 to 7
a=val(a$(i,1))
n=int(nbre/a)
if n>0 then
for u=1 to n
resultat$=resultat$+a$(i,2)
next u
nbre=nbre-(n*a)
end if
next i
print resultat$
print
goto [new]
plus d'info sur : http://lbasic.atomysk.com/forum/viewtopic.php?p=1037#1037
@++
pascal
je crois que tu as mis un I de trop ! :-))
bon pour l'algo c'est assez simple.
tu divise le nombre à traduire par la plus grande valeur (3767/1000=3,767)
de ce resultat tu ne garde que l'entier (3).
tu affiche le symbole qui correspond à la plus grande valeur autant de fois que l'indique l'entier. (Mx3=MMM)
tu multiplie l'entier par la plus grande valeur(3x1000=3000)
puis tu soustrait le resultat obtenu du nombre à traduire (3767-3000=767
tu recommence avec la plus grande valeur suivante :
tu divise le nombre à traduire par la plus grande valeur (767/500=1,53)
de ce resultat tu ne garde que l'entier (1).
tu affiche le symbole qui correspond à la plus grande valeur autant de fois que l'indique l'entier. (1xD=D on affiche donc MMMD)
tu multiplie l'entier par la plus grande valeur(1x500=500)
puis tu soustrait le resultat obtenu du nombre à traduire (767-500=267
et tu recommence ....
resultat affiché :
MMMDCCLXVII
voici le programme Liberty BASIC correspondant:
dim a$(7,2)
a$(1,1)="1000":a$(1,2)="M"
a$(2,1)="500":a$(2,2)="D"
a$(3,1)="100":a$(3,2)="C"
a$(4,1)="50":a$(4,2)="L"
a$(5,1)="10":a$(5,2)="X"
a$(6,1)="5":a$(6,2)="V"
a$(7,1)="1":a$(7,2)="I"
[new]
input "quel est le nombre à traduire ";nbre
for i=1 to 7
a=val(a$(i,1))
n=int(nbre/a)
if n>0 then
for u=1 to n
resultat$=resultat$+a$(i,2)
next u
nbre=nbre-(n*a)
end if
next i
print resultat$
goto [new]
plus d'info sur : http://lbasic.atomysk.com/forum/viewtopic.php?p=1037#1037
@++
pascal