Conversion d'un nombre d'une base B1 vers une base B2
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Conversion d'un nombre d'une base B1 vers une base B2
Voici le code en pascal du programme permettant de convertir un nombre de la base B1 vers la base B2:
- Code:
program conversion;
uses wincrt;
var
ch_b1:string;
b1,b2:integer;
function verif(ch_b1:string;b1:integer):boolean;
var
ch:string[16];
begin
ch:='0123456789ABCDEF';
while (pos(ch_b1[1],copy(ch,1,b1))<>0) and (ch_b1<>'') do
delete(ch_b1,1,1);
verif:=ch_b1='';
end;
procedure saisir(var ch_b1:string;var b1,b2:integer);
begin
repeat
writeln('Donner la base b1');
readln(b1);
until b1 in [2..16];
repeat
writeln('Donner votre nombre de la base ',b1);
readln(ch_b1);
until verif(ch_b1,b1);
repeat
writeln('Donner la base b2');
readln(b2);
until b2 in [2..16];
end;
function puissance(x,y:integer):integer;
begin
if y=0 then
puissance:=1
else
puissance:=x*puissance(x,y-1);
end;
function conv_b1_10(ch_b1:string;b1:integer):integer;
var
n_10,n,e,i:integer;
begin
n_10:=0;
for i:=1 to length(ch_b1) do
begin
if ch_b1[i] in ['0'..'9'] then
val(ch_b1[i],n,e)
else
n:=ord(ch_b1[i])-55;
n_10:=n_10+n*puissance(b1,length(ch_b1)-i);
end;
conv_b1_10:=n_10;
end;
function conv_10_b2(nb_10,b2:integer):string;
var
ch2,ch_r:string;
r:integer;
begin
ch2:='';
repeat
r:=nb_10 mod b2;
if r in [0..9] then
str(r,ch_r)
else
ch_r:=chr(r+55);
ch2:=ch_r+ch2;
nb_10:=nb_10 div b2;
until nb_10=0;
conv_10_b2:=ch2;
end;
function conv_b1_b2(ch_b1:string;b1,b2:integer):string;
var
n_10:integer;
ch_b2:string;
begin
n_10:=conv_b1_10(ch_b1,b1);
ch_b2:=conv_10_b2(n_10,b2);
conv_b1_b2:=ch_b2;
end;
begin
saisir(ch_b1,b1,b2);
writeln('(',ch_b1,')',b1,'=(',conv_b1_b2(ch_b1,b1,b2),')',b2);
end.
nejah- Entier Naturel
-
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 5155
Date d'inscription : 14/11/2010
Feuille de personnage
Capacité linguistique:
(1000/1000)
Sujets similaires
» Formulaire HTML vers Base de données ACCESS
» Exercice: Convertir Base 10 à la Base 2, 8 et 16 + String
» Nombre de Décompositions d'un nombre
» conversion en pdf
» Conversion DOC to PDF en ligne
» Exercice: Convertir Base 10 à la Base 2, 8 et 16 + String
» Nombre de Décompositions d'un nombre
» conversion en pdf
» Conversion DOC to PDF en ligne
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum