Algo : Ajouter un espace

bonjour, voilà je dois ajouter un espace après chaque point dans mon texte : je n'arrive pas trop, j'ai trouvé cela si quelqu'un peut m'aider:
saisir (texte)
Pour i de longueur(texte) à 1
Faire Si texte[i]="."
Alors texte[i+1]<-" "
FinSi
Merci beaucoup.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    attention, tel que tu l'as écrit, tu remplaces le caractère suivant par un espace mais tu n'ajoutes pas.

    Si tu veux ajouter, il faut recréer une chaine en sortie, car sa longueur va changer et ta boucle ne sera plus valable (elle est bornée à la longueur initiale).

    pour i de 1 a longueur(texte)
    si texte(i) = '.' alors
        textesortie <- textesortie + '.' + ' '
    sinon
        textesortie <- textesortie + texte(i)
    finsi
    finpour
    texte <- textesortie
    

    Mais on peut faire plus simple...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    1. saisir (texte)
      Pour i de longueur(texte) à 1
      Faire Si texte[i]="."
      Alors texte[i+1]<-" "
      FinSi
      j'ai regardé ton code et c'est pas une flèche qu'il faut mettre
      Alors texte[i+1]=" "
      essaye si ça marche c'est chouette !
      1. Modérateur
        Salut,

        en algo, la flèche veut dire : 'prend pour valeur' (opérateur d'affectation) alors que 'égal' est un opérateur de comparaison (teste si deux termes sont identiques).

        Dans la demande initiale, il est bien précisé que c'est de l'algo et non un pseudo-langage (mâtiné de C), d'où l'écriture...

        Le problème n'est pas au niveau de la syntaxe, mais plutôt au niveau de la logique...

        A+ Blux
         "Les cons, ça ose tout.
        C'est même à ça qu'on les reconnait"
      2. @bluxbon je te prierai de ne pas me traiter de conne surtout que tu demandais de l'aide et que j'ai tenté de te donner un coup de pouce et que j'ai bossé pas mal sur le C alors ....
        maintenant si t'envois chiet les gens qui t'apporte pas la solution je crois que t'es pas sur le bon site
      3. @jujuJe ne connais pas blux personnellement, mais la, je crois que t'as rien compris de ce qu'il voulait dire :

        1) Il ne t'a pas traite de conne : la phrase en bas, c'est une phrase qui apparait sur tous ses messages (regarde bien, tu verras...)

        2) C'est pas lui qui demandait de l'aide, au contraire, c'est lui qui repondait au message...

        3) Je trouves que vu les propos que tu tiens, ce n'est pas blux qui n'a rien a faire sur ce forum...

        Sur ce, je te conseille de rester un peu plus zen a l'avenir (tu risque un ulcere avec ces betises)

        Bonne journee quand meme...

        Si à gauche j'ai l'amont, c'est bon...
        Si à gauche j'ai l'aval, j'suis bancal...
      4. Modérateur
        @bluxBonjour,

        Je mets les choses au point :

        - ma signature n'engage que moi, tant pis si tu la prends pour toi !
        - JE n'ai pas demandé de l'aide, c'est slider16 qui est à l'origine du message
        - tu as peut-être bossé sur le C, c'est très bien, mais la question était posée en algorithmique et non dans un langage formel, d'où ma réponse par rapport à l'opérateur d'affectation vs l'opérateur de comparaison...
        - dernière chose : je suis sur le bon site, mais je crois que tu n'as pas assez regardé où tu mettais les pieds avant de t'emporter...

        Bien amicalement :-)

        A+ Blux
         "Les cons, ça ose tout.
        C'est même à ça qu'on les reconnait"
    2. salut,
      nous aurons besoin d'une 2ème chaîne(ch) car si tu fais texte[i+1]=' ' là alors tu vas écraser la lettre qui vien juste après le point, donc :
      j=0
      pour i=1 jusqu'à taille(texte) faire
      début
      j=j+1
      ch[j]=texte[i]
      si texte[i]='.' alors
      début
      j=j+1
      ch[j]=' '
      Fsi
      i=i+1
      Fpour
      Bon courage.
      Merci.
      1. salut,
        nous aurons besoin d'une 2ème chaîne(ch) car si tu fais
        texte[i+1]<---' ' là alors tu vas écraser la lettre qui vien juste après le point, donc :
        j<--0
        pour i=1 jusqu'à taille(texte) faire
        début
        j<--j+1
        ch[j]<--texte[i]
        si texte[i]='.' alors
        début
        j<--j+1
        ch[j]<--' '
        Fsi
        i<--i+1
        Fpour
        Bon courage.
        Merci.