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

Pascal Discussion :

[Débutant] Extraire chiffres d'une chaîne de gauche à droite et de droite à gauche


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut [Débutant] Extraire chiffres d'une chaîne de gauche à droite et de droite à gauche
    Ecrire un programme qui saisit une chaîne puis en extraire les chiffres de gauche à droite et de droite à gauche. Exemple : ch=e58t9df26g4 -> ça donne 589264 et 462985.
    J'ai reussi l'extraction de gauche à droite mais pas de droite à gauche. Si quelqu'un peut m'aider à compléter le programme, merci.
    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
    program extraction;
    uses wincrt ;
    var
    ch:string;
    ch2:string;
    i:integer;
    begin
    write('EnTREZ Une CHaiNe De CaraCteRe ');
    read(ch);
    for i:=1 to length(ch) do
    if ch[i] in['0'..'9'] then
    repeat
    ch2:=  copy(ch,i,1) ;
    write(ch2) ;
    until
    ch[i] in ['0'..'9']  ;
    end.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Un indice pour t'aider : il est possible de décrémenter un compteur dans une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i := length(ch) downto 1 do
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    Bon voilà, j'ai essayé un nouveau truc mais cette fois je n'arrive qu'à faire apparaître un seul chiffre de gauche à droite. N'oublie pas que je suis débutant.
    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
    program extraction;
    uses wincrt ;
    var
    ch:string;
    ch2:string;
    ch3:string;
    i:integer;
    i1:integer;
    begin
       write('EnTREZ Une CHaiNe De CaraCteRe ');
     
       read(ch);
    for
       i:=1 to length(ch) do
    if
       ch[i] in['0'..'9'] then
    repeat
       ch2:=  copy(ch,i,1) ;
       write(ch2) ;
    until
       ch[i] in ['0'..'9']  ;
     
       begin
       for
        i1:=length(ch2) downto  1 do
     
       repeat
        ch3:=copy(ch2,i1,1);                                            
        write('     ',ch3);
       until
        ch[i1] in ['0'..'9'];
     
    end;
    end.

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Il faut absolument que tu indentes correctement ton code sinon tu vas avoir beaucoup de difficultés à t'y retrouver.

    Tout d'abord, ta méthode est inutilement compliquée : dans un sens ou dans un autre, ton exercice consiste à regarder chaque caractère : si c'est un chiffre alors tu l'affiches. Donc, tu n'as pas besoin de boucle repeat à l'intérieur de la boucle for.

    Ensuite, il n'est pas utile de déclarer des variables différentes pour les deux traitements.

    Voici ce que ça pourrait donner :
    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
    program extraction;
    uses wincrt;
    var ch:string;
        ch2:string;
        i:integer;
    begin
      write('EnTREZ Une CHaiNe De CaraCteRe ');
      read(ch);
      for i:=1 to length(ch) do
        if ch[i] in['0'..'9'] then
          begin
            ch2:= copy(ch,i,1) ;
            write(ch2) ;
          end;
      write('    ');
      for i:=length(ch) downto 1 do
        if ch[i] in['0'..'9'] then
          begin
            ch2:= copy(ch,i,1) ;
            write(ch2) ;
          end;
    end.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    merci alkatiz.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire chiffre d'une chaine en SQL
    Par chillansky dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/10/2017, 14h47
  2. Réponses: 2
    Dernier message: 11/12/2008, 18h44
  3. Séparation des lettres et des chiffres d'une chaîne
    Par camoa dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/01/2007, 17h46
  4. [Tableaux] Extraire les chiffres dans une chaîne
    Par Digiduck dans le forum Langage
    Réponses: 8
    Dernier message: 16/08/2006, 14h33
  5. [débutant] Ajout bizarre d'une chaîne xmlns=""
    Par minnieBis dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 17/05/2004, 10h37

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