Les conversions entre les bases en Pascal

Dans ce premier article, je vais mettre tous les fonctions et/ou procédures des différentes manière de conversion entre les bases
Les bases sont multiples et, généralement, on utilise le même principe pour effectuer la conversion entre eux.
La base la plus conne est celle qu’on utilise dans notre vie quotidienne: le Décimal; et c’est les nombres composés de 1 jusqu’à 9…
Conversion de la base 10 vers une base b donnée
Enoncé:
Ecrire un programme qui convertit un entier n≥0 vers une base b
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function conv10_b (n,b:integer):string; var r:integer; ch:string; begin ch:=''; repeat r:=n mod b; if (r<=9) then ch:=chr(ord('0')+r)+ch else ch:=chr(ord('A')+r-10)+ch; n:=n div b; until (n=0); conv10_b:=ch; end. |
Fonction conversion
program conversion10_b; uses wincrt; var n,b:integer; function conv10_b (n,b:integer):string; var r:integer; ch:string; begin ch:=''; repeat r:=n mod b; if (r<=9) then ch:=chr(ord('0')+r)+ch else ch:=chr(ord('A')+r-10)+ch; n:=n div b; until (n=0); conv10_b:=ch; end; begin write('Donner n : '); readln (n); writeln('Vers qu''elle base voulez-vous convertir ',n,'? '); readln(b); writeln(n,' en base ',b,' = ',conv10_b(n,b)); writeln('Copyleft, http://tunila.me'); end. |
Programme complet
Conversion d’une base b donnée vers LA base 10
Enoncé:
Ecrire une fonction qui convertit un entier d’une base b vers la base 10
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 | function convb_10 (ch:string;b:integer):integer; var s,i,e,nb:integer; begin s:=0; for i:=1 to length(ch) do begin if ch[i] in ['0'..'9'] then val(ch[i],nb,e) else nb:= ord(ch[i])- ord('A') +10; s:=s+nb*puissance(b,length(ch)-i); end; convb_10:=s; end; |
Fonction conversion.
1 2 3 4 5 6 7 8 9 10 | function puissance (a,p:integer):integer; var f,i:integer; begin f:=1; for i:=1 to p do begin f:=f*a; end; puissance:=f; end; |
Fonction puissance!
program conversionb_10; uses wincrt; var b:integer; ch:string; function puissance (a,p:integer):integer; var f,i:integer; begin f:=1; for i:=1 to p do begin f:=f*a; end; puissance:=f; end; function convb_10 (ch:string;b:integer):integer; var s,i,e,nb:integer; begin s:=0; for i:=1 to length(ch) do begin if ch[i] in ['0'..'9'] then val(ch[i],nb,e) else nb:= ord(ch[i])- ord('A') +10; s:=s+nb*puissance(b,length(ch)-i); end; convb_10:=s; end; begin write('Donner n : '); readln (ch); writeln('Qu''elle est la base du nombre que vous venez de donner (',ch,') ? '); readln(b); writeln(ch,' en base ',b,' = ',convb_10(ch,b),' en base 10!'); writeln('Copyleft, http://tunila.me'); end. |
Programme complet.
Turbo Pascal 1.5 fr (4,1 MiB, 302 hits)
Abonnez-vous au flux RSS et vous aurez tous les nouveaux articles délivrés pour vous!
BON DEPART
Moi je vous propose d’utiliser un programme déjà écrit en turbo pascal. Vous n’avez qu’à télécharger le logiciel vous permettant de convertir en toute base. Il est très pratique, vous allez aimer. Vous y trouverez aussi » le calendrier grégorien complet » ,des programmes pour matrices.
http://guenaman.afrikblog.com/archives/mes_programmes_informatiques/index.html
Merci Beaucoup Beaucoup Beaucoup Beaucoup Beaucoup !!!!!!
Oh de rien. C’est plutot un honneur pour moi, merci aussi à toi
Mon blog enregistre à longueur de journée toutes les personnes qui le visite à partir de cet espace. Je vous demande seulement, après visite, de publier des commentaires me permettant d’améliorer éventuellement mes programmes.