Je vais pas non plus faire tout le boulot a votre place, mais je veux bien vous donner les algos:
calcule_valeur(T, a):
resultat <- 0
tant que il y a un chiffre a lire dans T faire
resultat <- resultat*a + chiffre lu
fin faire
retourner resultat
Exemple: calcul de la valeur de ce qui est noté "312" en base 5
resultat <- 0
On lit le chiffre 3, resultat <- 0*5 + 3 = 3
On lit le chiffre 1, resultat <- 3*5 + 1 = 16
On lit le chiffre 2, resultat <- 16*5 + 2 = 82
retourner 82
imprime_représentation(n, b):
chaine <- ""
tant que n >= b faire
chaine <- chaine + "n mod b" (on ajoute a la chaine le chiffre (exprimé dans la base b) représentant la valeur du reste de la division entière de n par b)
n <- n div b (résultat de la division entière de n par b)
fin faire
si n est non nul,
chaine <- chaine + "n" (on ajoute a la chaine le chiffre (exprimé dans la base b) représentant la valeur n)
fin si
chaine <- Inverse(chaine) (inverse est la fonction qui inverse une chaine. Inverse("abcd" ) renvoie "dcba" )
retourner chaine
Exemple: la valeur 253 a exprimer en base 3:
imprime_représentation(253, 3)
chaine <- ""
chaine = "", chaine <- "253 mod 3" (= "1" ), n <- 253 div 3 = 84
chaine = "1", chaine <- "1"+"84 mod 3" (= "0" ), n <- 84 div 3 = 28
chaine = "10", chaine <- "10"+"28 mod 3" (= "1" ), n <- 28 div 3 = 9
chaine = "101", chaine <- "101"+"9 mod 3" (= "0" ), n <- 9 div 3 = 3
chaine = "1010", chaine <- "1010"+"3 mod 3" (= "0" ), n <- 3 div 3 = 1
chaine = "10100", 1 > 0 donc chaine <- "10100"+ "1"
chaine = "101001", chaine <- Inverse("101001" )
retourner "100101"
A+,
Message édité par gilou le 19-04-2010 à 11:25:26
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --