lundi 19 septembre 2016
    1. Program Conversion_b1_b2;
    2. Var
    3. nb, reste : Array [1..50] of 0..15;
    4. b1, b2, n, i, j, err, nb10 : Integer;
    5. nch : String;
    6. Begin
    7. Repeat
    8. Writeln ('Base b1 = ');
    9. Readln (b1);
    10. Writeln ('Base b2 = ');
    11. Readln (b2);
    12. Until (b1 in [2..16]) and (b2 in [2..16]);
    13. Writeln ('Donner le nombre à convertir');
    14. Readln (nch);
    15. n:=Length (nch);
    16. For i:=1 To n Do
    17. If ORD (nch[i]) <65 Then VAL (nch[i], nb[i], err)
    18. Else
    19. nb[i] :=(ORD (nch[i]) - ORD ('A') + 10);
    20. {conversion de la base b1 au décimal}
    21. nb10 :=0;
    22. For i:=1 To n-1 Do nb10:=(nb10+nb[i])*b1;
    23. nb10:=nb10+nb[n];
    24. {conversion de nb10 du décimal à la base b2}
    25. i:=0;
    26. Repeat i:=i+1;
    27. reste[i]:=nb10 mod b2;
    28. nb10:=nb10 div b2;
    29. Until nb10=0;
    30. {affichage du résultat}
    31. For j:=i Downto 1 Do
    32. If reste[j] < 10 Then Write (reste[j])
    33. Else
    34. Writeln (CHR (reste[j]-10 + ORD ('A')));
    35. End.

0 commentaires:

Enregistrer un commentaire

Page Facebook

Turbo Pascal 32 bits

Turbo Pascal 64 bits