Program Conversion_b1_b2;
Var
nb, reste : Array [1..50] of 0..15;
b1, b2, n, i, j, err, nb10 : Integer;
nch : String;
Begin
Repeat
Writeln ('Base b1 = ');
Readln (b1);
Writeln ('Base b2 = ');
Readln (b2);
Until (b1 in [2..16]) and (b2 in [2..16]);
Writeln ('Donner le nombre à convertir');
Readln (nch);
n:=Length (nch);
For i:=1 To n Do
If ORD (nch[i]) <65 Then VAL (nch[i], nb[i], err)
Else
nb[i] :=(ORD (nch[i]) - ORD ('A') + 10);
{conversion de la base b1 au décimal}
nb10 :=0;
For i:=1 To n-1 Do nb10:=(nb10+nb[i])*b1;
nb10:=nb10+nb[n];
{conversion de nb10 du décimal à la base b2}
i:=0;
Repeat i:=i+1;
reste[i]:=nb10 mod b2;
nb10:=nb10 div b2;
Until nb10=0;
{affichage du résultat}
For j:=i Downto 1 Do
If reste[j] < 10 Then Write (reste[j])
Else
Writeln (CHR (reste[j]-10 + ORD ('A')));
End.
UHJvZ3JhbSBDb252ZXJzaW9uX2IxX2IyOwpWYXIKbmIsIHJlc3RlIDogQXJyYXkgWzEuLjUwXSBvZiAwLi4xNTsKYjEsIGIyLCBuLCBpLCBqLCBlcnIsIG5iMTAgOiBJbnRlZ2VyOwpuY2ggOiBTdHJpbmc7CkJlZ2luClJlcGVhdApXcml0ZWxuICgnQmFzZSBiMSA9ICcpOwpSZWFkbG4gKGIxKTsKV3JpdGVsbiAoJ0Jhc2UgYjIgPSAnKTsKUmVhZGxuIChiMik7ClVudGlsIChiMSBpbiBbMi4uMTZdKSBhbmQgKGIyIGluIFsyLi4xNl0pOwpXcml0ZWxuICgnRG9ubmVyIGxlIG5vbWJyZSDDoCBjb252ZXJ0aXInKTsKUmVhZGxuIChuY2gpOwpuOj1MZW5ndGggKG5jaCk7CkZvciBpOj0xIFRvIG4gRG8KSWYgT1JEIChuY2hbaV0pIDw2NSBUaGVuIFZBTCAobmNoW2ldLCBuYltpXSwgZXJyKQpFbHNlCm5iW2ldIDo9KE9SRCAobmNoW2ldKSAtIE9SRCAoJ0EnKSArIDEwKTsKe2NvbnZlcnNpb24gZGUgbGEgYmFzZSBiMSBhdSBkw6ljaW1hbH0KbmIxMCA6PTA7CkZvciBpOj0xIFRvIG4tMSBEbyBuYjEwOj0obmIxMCtuYltpXSkqYjE7Cm5iMTA6PW5iMTArbmJbbl07Cntjb252ZXJzaW9uIGRlIG5iMTAgZHUgZMOpY2ltYWwgw6AgbGEgYmFzZSBiMn0KaTo9MDsKUmVwZWF0IGk6PWkrMTsKcmVzdGVbaV06PW5iMTAgbW9kIGIyOwpuYjEwOj1uYjEwIGRpdiBiMjsKVW50aWwgbmIxMD0wOwp7YWZmaWNoYWdlIGR1IHLDqXN1bHRhdH0gCkZvciBqOj1pIERvd250byAxIERvCklmIHJlc3RlW2pdIDwgMTAgVGhlbiBXcml0ZSAocmVzdGVbal0pCkVsc2UKV3JpdGVsbiAoQ0hSIChyZXN0ZVtqXS0xMCArIE9SRCAoJ0EnKSkpOwpFbmQu