Programmation en pascal

Résolu
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!
Configuration: Windows Vista
Internet Explorer 7.0

15 réponses

  1. Ah ok alors, au moins vous n'utilisez pas des trucs vieux de la veille LOL.
    1. On utilise delphi le plus souvent et parfois freepascal mais rarement
      1. 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.
        1. 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
          1. 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
            1. 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
              1. 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!
                1. 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
                  1. 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.
                    
                    1. 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.
                      1. Bonjour, j'ai déjà fait ce genre de truc, attend je vais te retrouver le code source complet LOL.