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 :

Exercice sur une chaîne de caractères


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Par défaut Exercice sur une chaîne de caractères
    Salut à tous !
    Voilà, il faut que je fasse un programme qui saisit une chaîne de caractères et en affiche une autre comme suit :
    si la chaine saisie est turbo, le programme affichera :
    • to
    • tubo
    • turrbo
    • turburbo
    • turboturbo

    Bon voilà ma solution mais elle ne marche pas !
    Veuillez m'indiquer mon erreur si elle est dans le raisonnement ou la syntaxe ou même, si vous avez une autre solution, elle sera la bienvenue !
    Ah j'ai oublié, la résolution doit comporter au moins deux modules !

    Solution:
    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
    program chaine;
    uses wincrt;
    var ch:string;
        ch3:string;
     
    procedure saisie(var ch1:string);
    begin
    write('donner la chaine:');
    read(ch1);     
    end;
    procedure trans(ch1:string; var ch2:string);
    var i,j:integer;
    begin
    i:=0;
    ch2:='';
    for j:=length(ch1) downto 1 do
    i:=i+1;
    ch2[i]:=ch1[i];
    ch2[j]:=ch1[j];
    write(ch2);
    end;
    begin
    saisie(ch);
    trans(ch,ch3);
    end.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Jio,
    Citation Envoyé par mah00
    salut a tous!
    voila,il faut ke je fasse un programme ki saisie une chaine de caractere et en affiche une autre comme suit:
    si la chaine saisite est turbo,le programme affichera:
    to
    tubo
    turrbo
    turburbo
    turboturbo

    bon voila ma solution,mais elle ne marche pa!
    Veuillez m'indiquer mon erreur si elle est dans le raisonnement ou la syntaxe ou meme si vous avez une autre sulution elle sera la bienvenue!
    ah j'ai oublié,la résolution doit comporter au moin deux modules!
    solution:
    J'avoue ne pas bien comprendre ce qu'il faut sortir comme résultat.

    Si l'entrée est le mot écrit en vert, il faut sortir tous les mots en rouge ?

    Je ne vois pas non plus ce que veut signifier la phrase en bleu.

    Pour mettre ton code en valeur, pense à l'encadrer avec les balises [ code][/ code], sans les espaces, qui ne sont là que pour invalider ces balises

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Par défaut
    oui il faut sortir les mots en rouge un par un
    et pour la phrase en bleue,c'est que la resolution doit comporter comme je l'ai fait des procédure et des foncnctions qu'on doit créer.
    j'espere avoir bien expliquer.
    Je passe le bac pratique informatique le lundi et ca fait partie de ma revision!

  4. #4
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    je crois que ton erreur vient du fait que tu essayes de tout faire d'un coup, ce qui fait que le programme ne donne pas du tout ce que tu souhaites.

    Pour faire ça, je te conseillerais de faire une fonction qui retourne les n premiers caractères d'une chaîne et une autre qui retourne les n derniers.

    Et, dans un second temps, tu appelles ces deux fonctions dans une boucle qui allant de 1 à la taille de ton mot et tu concatènes les 2 résultats.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Par défaut
    si je fais comme tu m'a dis,le programme va me renvoyer "turboobrut" et ce n'est pa ca que je veux.quoique peut etre que je n'ai pas compris ce que tu ma dis!
    si c'est possible essaye de me le rediger,meme la la boucle dont tu me parle.

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Quand je disais de retourner les n derniers caractères, je voulais dire dans l'ordre de lecture usuel, donc pas avec un downto.

    Pour le faire, utilise une variable que tu fais commencer à taille - n + 1 et que tu incrémentes de 1 jusqu'à taille. Tu lis donc les n derniers caractères dans l'ordre.

    Et là j'ai pas le temps d'écrire le programme, bien que ce ne soit pas long du tout.

  7. #7
    Nouveau candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut
    voilà la solution:

    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
    program chaine;
    uses wincrt;
    var ch:string;
        r:string;
        i,j:integer;
        t:array [1..50] of string;
    procedure saisie(var ch1:string);
    begin
    write('donner la chaine:');
    read(ch1);     
    end;
     
    procedure affiche(ch:string;i:integer);
     
    begin
     
      write (copy(ch,1,i));
      writeln(copy(ch,length(ch)-i+1,i));
    end;
     
    begin
    saisie(ch);
    for i:=1 to length(ch)  do
    affiche(ch,i);
     
     
    end.
    je suis pret pour n'importe qu'elle problème en pascal

Discussions similaires

  1. [8.2] Reverse sur une chaîne de caractères
    Par JYves dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/04/2008, 00h58
  2. Test sur une chaîne de caractères
    Par ThunderBolt_ dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/06/2007, 06h37
  3. recherche sur une chaîne de caractères
    Par bogsy15 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/07/2006, 12h01
  4. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52
  5. Requête sur une chaîne de caractères
    Par Hakunamatata dans le forum Langage SQL
    Réponses: 9
    Dernier message: 02/04/2006, 18h27

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