Exo algo inversement de chaine

Fermé
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 - 7 mars 2008 à 13:18
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 9 mars 2008 à 22:59
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(

10 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
7 mars 2008 à 13:36
Il suffit de parcourir du début à la fin (index i) et d'extraire la sous chaîne de longueur 1 à la position i, puis de l'afficher.

Concrètement il faut donc faire un boucle for (pour) qui fait évoluer cet index i (ce qui correspond à une itération). A chaque itération tu appelles sschaine(mot,i,1) pour extraire le caractère à afficher, et tu l'écris.

En C++ (s[i] correspond au ième caractère d'une chaîne s, le premier caractère de la chaîne correspondant à s[0])
#include <iostream>
#include <string>

int main(){
  std::string mot = "tapir";
  unsigned n = mot.size();
  for(unsigned int i = 0; i < n ; ++i){
    // afficher le caractère à la position n - i - 1 où n désigne la longueur du mot
    std::cout << mot[ n - i -1 ]; 
  }
  std::cout << std::endl; // passer à la ligne
  return 0; // fin du programme
}

Bonne chance
3
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1
7 mars 2008 à 14:16
Assez rude a pouvoir le mettre en pseudo language...
Comment faire l'index??

Comment afficher chaque caractere e n fin de programme quand je dis afficher(...???


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(
0