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

Turbo Pascal Discussion :

[TPW] Problème de chaînes


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut [TPW] Problème de chaînes
    J'ai toujours un problème avec les traitement de chaines (niveau débutant, prière s'arme de patience )
    Donc, il s'agit d'écrire un programme qui lit une 'phrase' sous forme de chaîne de caractères et l'inverse:
    entrée: le monde est petit
    sortie: petit est monde le
    sachant que deux 'mots' sont séparés par un seul espace, et que la chaine ne doit pas commencer ni finir par un espace
    Mon (pseudo:p) prg est constitué de trois parties controle et modification de l'entrée selon les critère ci-dessus, comptage du nb de 'mots' contenus, ensuite, ben, le traitment qui inverse la chaine en utilisant le nb de mots..
    Alors voilà:
    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 aaa;
    uses wincrt; (* euh, oui j'utilise TPW :p *)
     
    var
    i,j,c,  (*compteurs*)   
    l, (*longuer de notre chaine*)
    nb,  (* nb d'esapces*)
    nbm,  (*nb de mots =nb d'espace +1*)
    p,  (*pos du 1er espace*)
    x  (*longuer du 1er mot *)   : integer;
     
    ch,espace,res,m : string;
    esp: boolean ; (*s'il existent deux espaces qui se suivent ou non *)
     
     
     
    begin
    write('entrer votre chaine')     ;
    read(ch);
    l:=length(ch);
     
     
    for j:= 1 to l do
    if (ch[j]=' ') and (ch[j-1]=' ') then
     
    delete(ch,j,1);   
     
      (* autre possiblité, qui ne fonctionne pas non plus apparemment:
    j:=0;esp:=false;
    repeat
    j:=j+1;
    if (ch[j]=espace) and (ch[j-1]=espace) then
    begin esp:=true;
    delete(ch,j,1);
    end;
    until (esp=false) or (j=l) ;       *)
     
     
     
     
    if ch[1]=' ' then delete(ch,1,1);
    if ch[l]=' ' then delete(ch,l,1)  ;
     
     
     i:=0; nb:=0;
    repeat
    i:=i+1;
    if ch[i]=' ' then nb:=nb+1;
    until (i=length(ch)-1);
     
    writeln(nb,'espaces');  (* juste pour voir :p *)
    nbm:=nb+1;
    writeln(nbm, 'mots');
     
    res:=''; (*chaine vide qui contiendra la nvlle chaine inversée *)
     
    for c:=1 to nbm do
     
    espace:=' ';
    p:=pos(espace,ch);   (* position du 1er espace, précédé donc du 1er mot*)
    m:=copy(ch,1,p);     (* exrait le 1er mot dans 'm' *)
    x:=length(m);
    delete(ch,1,x);      (* supprime le 1er mot*)
    res:=m+res;
     
    writeln('chaine inversée',res)
     
    end.
    Merci

  2. #2
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut salut,
    t'a beacoup d'erreur vulgaire comme le dit hdd34( le moderateur) ch[j]=esp;type incompatible!!! 2eme chose delet(ch,1,1) jamais vu utilise plutot delet(ch[j])sinon la première methode fera l'affaire je trouve
    sinon a part ca je trouve ton programme clean.

  3. #3
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut
    ch[j]=esp;type incompatible!!!
    ah oui je voulais dire: espace pas esp

    sinon la première methode fera l'affaire je trouve
    mais non ça ne marche pas

  4. #4
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut resalut,
    est ce que tu est sur que delet (ch[j],j,1)existe parceque moi j'vais l'habitude de travailler avec delet(ch[j]);

  5. #5
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut
    euh.. normalement oui:

    delete(ch,p,n) : efface n caractères de ch à partir de la position p

  6. #6
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut resalut,
    oui t'a raison ecoute je vais reflechir a ton prob demain je te donnerai une reponseok bon fin de soirée

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

Discussions similaires

  1. [TPW]J'ai besoin de WINCRT
    Par luno2545 dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 18/01/2004, 22h00
  2. tpw turbo pascal for windows
    Par tripper.dim dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 29/11/2003, 23h06
  3. [TPW]EnumWindowsProc
    Par Sub0 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 19/08/2003, 20h57
  4. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 18h10
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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