Programmation en pascal

[Résolu/Fermé]
Signaler
-
 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!

15 réponses


Bonjour, j'ai déjà fait ce genre de truc, attend je vais te retrouver le code source complet LOL.
merci c'est gentil ! =)

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.
Tinquiete pas sa me dérange pas d'attendre =). Je te remercie

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.

Tu comprend tout ou tu veux quelques explications?
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
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!

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
OUi lol je sais mais notre porf nous a demander l'algorithme =)

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
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

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.
On utilise delphi le plus souvent et parfois freepascal mais rarement

Ah ok alors, au moins vous n'utilisez pas des trucs vieux de la veille LOL.