Programmation en pascal

Résolu/Fermé
chloé1989 - 8 mai 2008 à 14:28
 Utilisateur anonyme - 8 mai 2008 à 16:20
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
8 mai 2008 à 14:32
Bonjour, j'ai déjà fait ce genre de truc, attend je vais te retrouver le code source complet LOL.
0
merci c'est gentil ! =)
0
Utilisateur anonyme
8 mai 2008 à 14:52
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
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
8 mai 2008 à 15:22
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
8 mai 2008 à 15:26
Tu comprend tout ou tu veux quelques explications?
0
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
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
8 mai 2008 à 16:06
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
OUi lol je sais mais notre porf nous a demander l'algorithme =)
0
Utilisateur anonyme
8 mai 2008 à 16:09
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
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
8 mai 2008 à 16:17
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
On utilise delphi le plus souvent et parfois freepascal mais rarement
0
Utilisateur anonyme
8 mai 2008 à 16:20
Ah ok alors, au moins vous n'utilisez pas des trucs vieux de la veille LOL.
0