Conversions entre bases
Page 1 sur 1
Conversions entre bases
Convertir un nombre NB1 dans une base b1(dans [2..16]) en son équivalent dans une base b2(dans[2..16]).
Dernière édition par haiethem le Sam 19 Jan - 11:33, édité 1 fois
Re: Conversions entre bases
(3)Résultat = écrire (NB1,"",dans la base ",b1," = ",NB2," dans la base ",b2)
(1) (NB1,b1,b2) = PROC saisir (NB1,b1,b2)
(2) NB2 ← FN convb1_b2 (NB1,b1,b2)
(1) (NB1,b1,b2) = PROC saisir (NB1,b1,b2)
(2) NB2 ← FN convb1_b2 (NB1,b1,b2)
objet | type/nature | role |
NB1 | chaine de caractères | nombre1 |
b1 | entier | base1 |
b2 | entier | base2 |
NB2 | chaine de caractères | nombre2 |
saisir | procédure | saisir NB1 , b1 et b2 |
convb1_b2 | fonction | convertir NB1 en NB2 |
Dernière édition par haiethem le Sam 19 Jan - 11:26, édité 3 fois
Re: Conversions entre bases
(0)DEF FN convb1_b2(NB1:chaine de caractères;b1,b2:entier):chaine de caractères
(3)résultat = convb1_b2 ← NB2
(2)NB2 ← FN convb2 (NB10,b2)
(1)NB10 ← FN convb10(NB1,b1)
(3)résultat = convb1_b2 ← NB2
(2)NB2 ← FN convb2 (NB10,b2)
(1)NB10 ← FN convb10(NB1,b1)
objet | type/nature | rôle |
NB2 | chaine de caractères | nombre2 |
NB10 | entier | nombre base 10 |
convb2 | fonction | convertir vers la base 2 |
convb10 | fonction | convertir vers la base 10 |
Dernière édition par haiethem le Sam 19 Jan - 11:27, édité 1 fois
Re: Conversions entre bases
(0)DEF PROC saisir (var nb1:chaine de caractères;var b1,b2:entier)
résultat = nb1,b1,b2
(2)nb1=[]repeter
nb1= donnée
jusqu'à FN verif (nb1,b1)
(1)(b1,b2) = []repeter
b1,b2 = donnée
jusqu' à (b1danns[2..16])et(b2dans[2..16])
résultat = nb1,b1,b2
(2)nb1=[]repeter
nb1= donnée
jusqu'à FN verif (nb1,b1)
(1)(b1,b2) = []repeter
b1,b2 = donnée
jusqu' à (b1danns[2..16])et(b2dans[2..16])
Dernière édition par haiethem le Sam 19 Jan - 11:28, édité 1 fois
Re: Conversions entre bases
(0)DEF FN verif (nb1:chaine de caractères;b1:entier):booléen
(2)résultat = verif ←( i > long(nb1))
(1)i = [i ← 0] repeter
i ← 1+i
si nb1[i] dans ["A".."Z"] alors
n ← chr(nb1[i])-55
sinon valeur(nb1[i],n,e)
finsi;
jusqu'à (n>= b1) ou (i>long(nb1)
(2)résultat = verif ←( i > long(nb1))
(1)i = [i ← 0] repeter
i ← 1+i
si nb1[i] dans ["A".."Z"] alors
n ← chr(nb1[i])-55
sinon valeur(nb1[i],n,e)
finsi;
jusqu'à (n>= b1) ou (i>long(nb1)
Dernière édition par haiethem le Sam 19 Jan - 11:29, édité 1 fois
Re: Conversions entre bases
(0)DEF FN convb2(nb10,b2:entier):chaine de caractères
(2)résultat = convb2 ← nb2
(1)nb2=[nb2 ← ""]repeter
r ← nb10 mod b2
nb10 ← nb10 div b2
si r dans [0..9] alors
convch (r,ch)
sinon ch ← chr(r+55)
finsi
insère (ch,nb2,1)
jusqu'à nb10=0
(2)résultat = convb2 ← nb2
(1)nb2=[nb2 ← ""]repeter
r ← nb10 mod b2
nb10 ← nb10 div b2
si r dans [0..9] alors
convch (r,ch)
sinon ch ← chr(r+55)
finsi
insère (ch,nb2,1)
jusqu'à nb10=0
Dernière édition par haiethem le Sam 19 Jan - 11:30, édité 1 fois
Re: Conversions entre bases
(0)DEF FN conb10(nb1:chaine de caractères;b1:entier):entier
(2)résultat = convnb10 ← nb10
(1)nb10=[nb10 ← 0] pour i de 1 à long(nb1) faire
si nb1[i] dans ["0".."9"] alors
valeur(nb1[i],n,e)
sinon
n ← ord(nb1[i])-55
finsi
nb10 ← nb10 +n* FN puiss(b1,long(nb1)-i)
finpour
(2)résultat = convnb10 ← nb10
(1)nb10=[nb10 ← 0] pour i de 1 à long(nb1) faire
si nb1[i] dans ["0".."9"] alors
valeur(nb1[i],n,e)
sinon
n ← ord(nb1[i])-55
finsi
nb10 ← nb10 +n* FN puiss(b1,long(nb1)-i)
finpour
Sujets similaires
» Conversion entre les bases
» Bases de données
» Bases des données
» Différence entre read et readln en Pascal
» Bases de données
» Bases des données
» Différence entre read et readln en Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|