structure conditionnelle
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

structure conditionnelle



  1. #1
    fofo3

    structure conditionnelle


    ------

    slt pouvez vous m’aidez à résoudre un programme permettant de traiter une chaine de caractère donnée de là manière suivante
    longueur de là chaine paire on lui ajoute un espace au milieu
    longueur de là chaine impaire : le caractère du milieu est un caractère de ponctuation (,;:!.?) on ajoute un espace un espace après
    le caractère du milieu n'est pas un caractère de ponctuation on ajoute un espace avant j’ai fait çà mais n'est pas juste d’après pascal : program parite;
    uses wincrt;
    var ch:string; l,m:integer;
    begin
    writeln('ch= ');
    readln(ch);
    l:=length(ch);
    m:=l div 2 + 1;
    if l mod 2= 0 then insert(' ',ch,m)
    else if m in ['.'..'?'] insert(' ',ch,m+1);
    else insert(' ',ch,m-1);
    end. svp

    -----

  2. #2
    invite4492c379

    Re : structure conditionnelle

    Hello,

    Nom : code.png
Affichages : 35
Taille : 1,3 Ko ça préserve la lisibilité ...

    Code:
    uses wincrt;
    var ch:string; l,m:integer;
    begin
      writeln('ch= ');
      readln(ch);
      l:=length(ch);
      m:=l div 2 + 1;
      if l mod 2= 0 then 
        insert(' ',ch,m)
      else if m in ['.'..'?'] 
        insert(' ',ch,m+1);
      else 
        insert(' ',ch,m-1);
    end.
    remarques :
    Si la chaine est paire de longueur 2n tu dois insérer un espace en position n et non n+1 (que se passe-t-il si la chaine est de longueur nulle ?)
    Dans le cas contraire
    tu ajoutes un espace avant dans tous les cas de figures
    il faut tester la valeur du caractère en position m, pas la valeur de m et si c'est une ponctuation (le in ['.'..'?'] est certainement faux car les caractères donnés ne se suivent pas dans l'ordre ascii, une énumération des caractères est plus appropriée) tu ajoutes un espace après.

    attention si tu ajoutes un espace avant cela décale la position de tous les caractères après le caractère inséré : il est souvent judicieux dans ce cas d'insérer ce qu'il faut de droite à gauche.

  3. #3
    fofo3

    Re : structure conditionnelle

    et donc comment il faut faire alors comment mettre la ponctuation ? pourquoi on doit tester m? et merci

  4. #4
    invite4492c379

    Re : structure conditionnelle

    Je ne vais pas te faire ton exercice ...
    Mais tu dois retrouver dans ton cours, ou à défaut sur le net que :

    * Pour récupérer le caractère en position i dans la chaine str tu fais str[i] : une chaine est un tableau (particulier) de caractères
    * la notation [a..b] avec a et b des caractères respecte l'ordre ascii (pour simplifier, et de toute façon je suppose que tu es soit sous windows soit linux), '.' (=CHR(46)) .. '?'(=CHR(63)) contient tous les caractères dont le code ascii est compris entre 46 et 63. Je doute que ce soit ce qui est demandé ; essaye plutôt un ['.',',','?'] (à compléter évidemment dans ton cas) pour tester si un caractère est soit . soit , soit ? . Sinon tu peux essayer de découvrir l'instruction case.

    m est en gros «la position du milieu + 1», str[m] est le caractère à cette position. Tu dois tester que ce caractère est une ponctuation ...

    Table ascii : http://www.asciitable.com/
    Tuto pascal : http://pascal.developpez.com/cours/


  5. A voir en vidéo sur Futura

Discussions similaires

  1. TS probabilité conditionnelle
    Par invite570fade3 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 27/04/2009, 11h37
  2. Probabilité conditionnelle
    Par invite5ea7aaa4 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 05/03/2008, 17h23
  3. Probabilité conditionnelle
    Par invite896b79a7 dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 15/02/2008, 22h38
  4. esperance conditionnelle
    Par invite5c6c2cbf dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 05/12/2007, 13h23
  5. Probabilité conditionnelle
    Par invitedcd45209 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 15/08/2006, 14h16