IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

besoin d'aide pour fonction de conversion de base


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut besoin d'aide pour fonction de conversion de base
    bonzour bonzour

    Alors je dois faire un programme qui converti un nombre d'un base à une autre,
    j'ai fait ca mais bon ca ne marche pas biensur, ca fait 1 semaine me tape la tete contre les murs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     
    program final;
    {$APPTYPE CONSOLE}
    uses
      sysutils;
    var
     
    nbch,i,basedep,basefin:integer;
    ch,rep:string;
    erreur,controlsaisie:boolean;
     
    function control (nb:string;basedep:integer):boolean;
    begin
     
    nbch:=length(nb);
    i:=1;
    erreur:= false;
     
    while  (not erreur) and (i <= nbch) do
    begin
    ch:= copy(nb,i,1);
    if (ch > '0 ')and  (ch <'basedep-1')
       then erreur:= true ;
     
    end;
    end;
     
    function conver (basefin:integer;nb:string):string;
    begin
     
    quotient := nb div basefin
    reste := quotient mod basefin
     
    result:= result + intostr(result)
    end;
     
    begin
     
    write('voulez-vous effectuer une conversion ? o/n:');
    readln(rep);
     
    while rep = 'o' do
     
          begin
     
          write('saisir un nombre:');
          readln(nb);
     
          write ('base de depart:');
          readln(basedep);
     
          write ('base de fin:');
          readln(basefin);
     
          controlsaisie:= control (nb,basedep);
     
          if controsaisie:= true
               then writeln('erreur saisie')
               else resultat:= conver(basefin,nb);
     
    write('resultat:',resultat);
     
    write('voulez-vous effectuer une autre conversion ? o/n:');
    readln(rep);
     
          end;
     
    end.

    pensez vous que jsui sur la bonne voie ??

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (ch > '0 ')and  (ch <'basedep-1')
    Y a déjà un problème là je pense
    Ce ne serait pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (StrToInt(ch) > 0) and (StrToInt(ch) < BaseDep - 1)
    ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    vi je pense que c mieux

  4. #4
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bonjour
    et ailleur
    tu utilise des variables non déclarées
    Quel est ton compilateur ?

    voici le truc une fois compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    uses
      sysutils;
    var
      nbch, i, basedep, basefin : integer;
      ch, rep                   : string;
      erreur, controlsaisie     : boolean;
    
      resultat, nb              : string;
    
    function control (nb:string;basedep:integer):boolean;
    begin
      nbch:=length(nb);
      i:=1;
      erreur:= false;
    
      while  (not erreur) and (i <= nbch) do
      begin
        ch:= copy(nb,i,1);
        if (ch > '0 ')and  (ch <'basedep-1')
           then erreur:= true ;
      end;
    end;
    
    function conver (basefin:integer;nb:string):string;
    var
      reste, quotient : integer;
    begin
     quotient := StrToInt(nb) div basefin;
     reste    := StrToInt(nb) mod basefin;
     result   := intToStr(quotient) + intToStr(reste);
      // Comment penses tu traiter le passage en hexadécimal par exemple ?
    end;
    
    begin
      write('voulez-vous effectuer une conversion ? o/n:');
      readln(rep);
    
      while rep = 'o' do
      begin
        write('saisir un nombre:');
        readln(nb);
    
        write ('base de depart:');
        readln(basedep);
    
        write ('base de fin:');
        readln(basefin);
    
        controlsaisie:= control (nb,basedep);
    
        if controlsaisie
          then writeln('erreur saisie')
          else resultat:= conver(basefin,nb);
    
        writeln('resultat:',resultat);
    
        write('voulez-vous effectuer une autre conversion ? o/n:');
        readln(rep);
    
      end;
    end.
    Disons que ce n'est pas un mauvais début mais ta fonction conver est à poser sur papier il faut je crois traiter chacun des nombres de ton chiffre en focntion de son rang.

    a+

  5. #5
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    bah... pour lhexa jpensais au code ascii
    je pense mal ?

  6. #6
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Il te faudra utiliser le code ascii, mais il faut aussi que tu tiennes compte de ta base de départ dans ta fonction conver.

Discussions similaires

  1. besoin d'aide pour fonction split
    Par remitbo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/06/2009, 13h45
  2. Besoin d'aide pour fonction
    Par jbertin9 dans le forum Excel
    Réponses: 5
    Dernier message: 04/02/2009, 12h14
  3. Besoin d'aide pour la jonction de 2 bases
    Par djsava dans le forum Débuter
    Réponses: 6
    Dernier message: 18/10/2008, 02h26
  4. besoin d'aide pour fonction et redirection
    Par roilion dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2008, 11h29
  5. Besoin d'aide pour fonctions OpenSSL..... HELP !!!
    Par aide64 dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2006, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo