Changement de bases

Soyez le premier à donner votre avis sur cette source.

Vue 3 875 fois - Téléchargée 244 fois

Description

Il y a 2 programmes différents qui transforme un nombre d'une base (entre 2 et 10 ) dans une autre base (2 a 9 ). L'un utilise une chaine de caractere pour la saisie du nombre et l'autre un entier .

Conclusion :


S'il y a des bugs ou commentaires n'hesitez pas à me les donner .

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
J'ai deux petites remarques :

Concernant la fonction Puissance() :
Toute fonction écrite dans Delphi dispose d'une variable prédéfine Result du même type que le résultat de la fonction. Elle peut être utilisée comme opérande et comme résultat. Elle sert aussi à garder le résultat final de la fonction.
Le boucle For ne fait rien si le pas final de la boucle est strictement supérieur au pas d'origine, ce n'est donc pas la peine de tester le cas 0 :
Function puissance(a,n : integer) : integer;
var i: integer;
begin
result:=1;
for i:=1 to n do result:=result*a;
end;

Concernant les conversion.
Rien à dire sur le principe mais tu pourrais optimiser le code, car pour chaque chiffre tu calcules la puissance de la base, ce n'est pas utile car d'un chiffre à l'autre il suffit de multiplier l'ancienne valeur de la base. Par exemple dans le cas de la procédure vers la base 10 :
procedure Passbaseato10(nbr_caractere,base_depart : integer);
Var cptr,Puiss : integer;
begin
nbrdix:=0;
Puiss:=1;
for cptr:=1 to nbr_caractere do
begin
nbrdix:=nbrdix+nbre[cptr]*puiss;
Puiss:=Puiss*Base_depart;
end;
End;

Ou vers la base n :
procedure pass10tobasen(nouvelle_base : integer;nbrdix : longint);
var ctr,quotient,nbrn,puiss : integer;
begin
nbrn:=0;
quotient:=nbrdix;
Puiss:=1;
while quotient>0 do
begin
nbrn:=nbrn+(quotient mod nouvelle_base)*Puiss;
quotient:=quotient div nouvelle_base;
Puiss:=Puiss*10
end;
writeln('Le nombre en base ',nouvelle_base,' est : ',nbrn);
end;

Nono.

P.S.: Pourquoi utilises-tu toujours des applications consoles ?
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Pourquoi ne pas pousser jusqu'à des conversions en hexadécimal, pour l'utile et pour le fun ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.