Programmation en pascal

Résolu
chloé1989 -  
 Utilisateur anonyme -
Bonjour,
J'ai un probème pour un programme en pascal...celui ci doit convertir des chiffres binaires en hexadecimal.
Vu mon niveau en programmation...
Je ne vois pas du tout comment faire.

Merci de votre aide!
A voir également:

15 réponses

Utilisateur anonyme
 
Bonjour, j'ai déjà fait ce genre de truc, attend je vais te retrouver le code source complet LOL.
0
chloé1989
 
merci c'est gentil ! =)
0
Utilisateur anonyme
 
J'ai retrouvé le code source, seulement à mon avis, il est un peu trop avancé parce qu'il convertit en plusieurs bases, je vais essayer de l'adapter pour le simplifier, sinon tu risque de pas trop comprendre ce qui se passe. Attend un peu si tu as la patience, peut être que d'autres ont cet exercice aussi, ils viendront y poster ici.
0
chloé1989
 
Tinquiete pas sa me dérange pas d'attendre =). Je te remercie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Voila, arf, c'était bien pénible à convertir, j'ai essayé de respecter la syntaxe de turbo pascal, qui est souvent utilisé par les débutants bien qu'il soit un vieux de la veille...

program conversion;

function exposant(a,b: Integer) : Integer;
var
 i: Integer;
 r: Integer;
begin
 r:=1;
 for i:=1 to b do
  r:=r*a;

 exposant:=r;
end;

function bin_decimal(binaire: String) : Integer;
var
 i : Integer;
 longueur : Integer;
 r: Integer;
begin
 r:=0;
 longueur:=length(binaire);
 for i:=1 to longueur do
  if(binaire[i] = '1') then r:=r + exposant(2, (longueur-i));

 bin_decimal:=r;
end;

function dec_hexa(nombre: Integer) : String;
var
 hex: String;
 strnombre: String;
 reste: Integer;
begin
 hex:='';
 while (nombre>0) do
 begin
  reste:= nombre mod 16;
  case reste of
   10: hex:='A' + hex;
   11: hex:='B' + hex;
   12: hex:='C' + hex;
   13: hex:='D' + hex;
   14: hex:='E' + hex;
   15: hex:='F' + hex;
  else
   begin
   strnombre:='';Str(reste,strnombre);
   hex:=strnombre + hex;
   end;
  end;
  nombre:=nombre div 16;
 end;

 dec_hexa:=hex;

end;

var nombre_a_convertir: Integer;
begin
 nombre_a_convertir:=bin_decimal('011101101');
 writeln(nombre_a_convertir);
 writeln(dec_hexa(nombre_a_convertir));

 readln();
end.
0
Utilisateur anonyme
 
Tu comprend tout ou tu veux quelques explications?
0
chloé1989
 
Je viens juste de le voir =). merci
J'vais le regarder de plus près et si jamais j'ai un pb je te le dirai.
merci
0
chloé1989
 
Merci, j'ai bien tout compris =)
J'ai rajouter un petit truc dans le programme principale afin que l'utilisateur puisse choisir lui mm son chiffre binaire qu'il veut convertir en hexadecimale.
Voilà mercci encore!
0
Utilisateur anonyme
 
Oui, un simple Readline() suffit pour demander une chaîne. C'est pas trop compliqué. Maintenant, c'était pour faire l'algorithme, sinon tu sais que dans certains compilateurs, cette fonction de conversion existe déjà LOOOOOOOOOL
0
chloé1989
 
OUi lol je sais mais notre porf nous a demander l'algorithme =)
0
Utilisateur anonyme
 
Dans ce cas, essaie un peu de modifier pour pas que ça fasse trop copier-coller, les profs viennent parfois ici régulièrement!!!! LOL
0
chloé1989
 
VOuiiii j'allais l'arranger à ma facon.
De tout facon c'était juste un exo d'entrainement que le prof nous a donné.
Connaissant le prof ce n'est mm pas sur qu'il se souvienne que l'on devait faire un exo lol
Bref, au moins sa m'aura servit et maintenant je sais l'faire
Merci
0
Utilisateur anonyme
 
Et c'est avec quel compilateur? Moi j'ai utilisé FreePascal pour faire ça, sinon je préfère largement Delphi avec ses superbes interfaces graphiques.
0
chloé1989
 
On utilise delphi le plus souvent et parfois freepascal mais rarement
0
Utilisateur anonyme
 
Ah ok alors, au moins vous n'utilisez pas des trucs vieux de la veille LOL.
0