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

Mathématiques Discussion :

Exercice d'algo que je n'arrive pas a resoudre


Sujet :

Mathématiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Exercice d'algo que je n'arrive pas a resoudre
    Bonjour,Voici un exercice que je ne parviens pas a resoudre avec les fonctions que l'on m'a donnée a savoir: sschine,longueur, RANG et autres structures iteratives et conditionelles...
    Si qqun pouvait me donner une indication..
    Merci

    Exercice 5 - Chane inverse (affichage)
    Ecrire un algorithme dont le rOle est de permettre a l'utilisateur de saisir une chaine de caracteres et d'afficher la chaine "en sens inverse" (le dernier caractere est affiche en premier. l'avant-dernier caractere est affiche en deuxierne et ainsi de suite...).

    Voila comment j'ai commencé..mais je ne vois pas le bout..&&&

    5) Chaine inversée
    *Variables :
    mot : Chaine,
    i, a :entiers

    Afficher(« Saisir un mot »)
    Saisir(mot)
    i<-- LONGUEUR(mot)
    a<-- sschaine(mot , i, 1)
    Pour sschaine(mot , i, 1) de a à 0
    Afficher(

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par bansan Voir le message
    *Variables :
    mot : Chaine,
    i, a :entiers

    Afficher(« Saisir un mot »)
    Saisir(mot)
    i<-- LONGUEUR(mot)
    a<-- sschaine(mot , i, 1)
    Pour sschaine(mot , i, 1) de a à 0
    Afficher(
    Tu n'en est pas loin ...

    Tu as bien récupéré la longueur de ta chaine dans i, c'est par contre à partir de là que ça part un peu en sucette :
    - c'est a (le deuxième entier que tu as défini) que tu dois faire varier de i à 0
    - suffit ensuite d'afficher à chaque itération de ta boucle, la sous-chaine commençant à a sur 1 caractère

    personnellement, j'aurais mis la longueur dans a (ou plutôt une variable l, comme longueur) et utilisé i comme variable d'indice de boucle

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Re
    Bonjour
    J'ai encore du mal a voir malgré la petite intervention...
    J'ai meme pensé a utilisé la concatenation pour rallier les caracteres a l'envers...
    Mais je ne vois toujours pas comment faire la
    Peut etre qu'en dormant un peu ca viendra...
    Merci

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    tu connais la longueur de la chaine, il te suffit donc de partir de la dernière lettre vers la première et d'afficher au fûr et à mesure

  5. #5
    Membre actif
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Points : 227
    Points
    227
    Par défaut
    en plus clair tu peux le faire en deux manières;mais je préfère celle ci
    i:=0;
    pour j:=longueur(chaine) -1bas 0 faire
    ch_sortie[i]:=chaine[j];
    incrémenter (i);
    Fait

    on exploite le fait que les chaines de caractères sont des tableaux indexés de 0 à longeur -1

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    BOnsoir,

    Citation Envoyé par benDelphic Voir le message
    i:=0;
    pour j:=longueur(chaine) -1bas 0 faire
    ch_sortie[i]:=chaine[j];
    incrémenter (i);
    Fait
    si j'ai bien lu l'énoncé, on demande d'afficher le résultat à l'envers...
    Donc inutile d'utiliser une deuxième chaine. Il suffit juste de parcourir la chaine saisie en partant de la fin jusqu'au premier caractère et d'afficher.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/04/2006, 20h25
  2. Réponses: 12
    Dernier message: 11/04/2006, 17h36
  3. boucle que je n'arrive pas à réaliser...
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2006, 12h24
  4. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53
  5. problème que je n'arrive pas à résoudre de façon récursive
    Par miam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 31/07/2004, 11h21

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