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

Free Pascal Discussion :

Inversion des caractères d'une chaîne [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 43
    Par défaut Inversion des caractères d'une chaîne
    Bonjour !

    J'ai un problème avec cette procédure :

    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
    program inverser;
    begin
     
    type
    Tab=string;
     
    Procedure Inverser (Var t : Tab; p, n : Integer);
    Var aux : char;
    Begin
    If p < n Then
    Begin
    aux := t[p];
    t[p] := t[n];
    t[n] := aux;
    Inverser (t, p + 1, n - 1);
     End;
     End;
    End;
    end.
    Pourriez-vous m'aider ?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 283
    Par défaut
    Oui, bonjour moi aussi.

    Je pense que les gens qui liront ton post auront au moins deux problèmes en commun avec moi :
    • Quel est ton problème, en clair in the text ?
    • Il faudrait proposer un code lisible : d'abord la balise code (le # en haut à droite lors de l'édition), et ensuite indenter correctement ton code.

    D'ailleurs, si tu avais indenté ton code, je subodore qu'il y aurait au moins un problème de visible. Mais peut-être que ce n'est pas celui qui t'as motivé à poster, allons savoir.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par nadirmabed Voir le message
    J'ai un problème avec cette procédure
    Commençons par le début. Pourrais-tu nous expliquer ce que tu veux faire ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 43
    Par défaut
    Je veux exécuter cette procédure, pour inverser un vecteur ou une chaîne de caractère. Free Pascal me marque beaucoup d'erreurs.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2014
    Messages : 43
    Par défaut
    Nom : 54548787.JPG
Affichages : 4656
Taille : 82,3 Ko

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    Pour rendre ton programme compilable, il n'y a pas grand chose à changer :

    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
    program inverser;
     
    //begin
     
    type
      Tab = string;
     
    procedure Inverser (var t: Tab; p, n: Integer);
    var
      aux: char;
    begin
      If p < n Then
      begin
        aux := t[p];
        t[p] := t[n];
        t[n] := aux;
        Inverser (t, p + 1, n - 1);
      end;
    end;
     
    //end;
     
    begin
    end.

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    La déclaration du type Tab me semble inutile : autant utiliser directement le type string.

    D'autre part, si ce que tu veux faire, c'est de renverser toute la chaîne, tu peux le faire plus simplement, par exemple de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      aux: string;
      i: integer;
    begin
      aux := '';
     
      for i := Length(t) downto 1 do
        aux := aux + t[i];
     
      t := aux;
    end;

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2008, 16h15
  2. Récupérer des caractères dans une chaîne
    Par LoiL Reborn dans le forum Débuter
    Réponses: 9
    Dernier message: 05/05/2008, 08h46
  3. Réponses: 2
    Dernier message: 24/03/2008, 23h00
  4. Réponses: 21
    Dernier message: 28/01/2008, 20h56
  5. Sélection des 8 premiers caractères d'une chaîne
    Par linooo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/09/2007, 09h15

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