begin process at 2012 05 29 04:54:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

fonction inverse c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fonction inverse c++

mercredi 4 novembre 2009 à 15:16:05 | fonction inverse c++

bretdu55

Bonjour,
J'ai plusieurs exos en c++ à faire et le problème est que je n'arrive pas à faire une fonction inverse pour inverser l'affichage d'un mot.
Il faut que j'arrive à inverser une chaine avec l'indice 'i' en lui donnant comme valeur i=i-1.
Pour cela, j'ai le droit à deux fonctions
- int longueurDeMaChaine=maChaine.length();
- string unExtrait=maChaine.substr(x,x);
Le résultat doit être du style: jambon-->nobmaj

voici mon programme si vous pourriez m'aider à le compléter:

#include<iostream>
#include<string>

using namespace std;

int inverse(string);

int main()
{
string laChaine;
cout<<"Saisir un mot: ";
cin>>laChaine;

inverse(laChaine);


system("pause");
return 0;
}



int inverse(string laChaine)
{
string unExtrait;
int longChaine;
inverse(laChaine)=" ";
longChaine = laChaine.length();


for (int i=0; i<longChaine; i++)
{

unExtrait = laChaine.substr(i,1);
inverse(laChaine)=inverse(laChaine)+unExtrait;


}

cout<<unExtrait;
}






MERCI.
mercredi 4 novembre 2009 à 15:35:28 | Re : fonction inverse c++

fregolo52

Membre Club
inverse(laChaine)=inverse(laChaine)+unExtrait; c'est quoi ça !!!

La boucle for, tu devrais faire exactement l'inverse. Il faut partir de la fin :
for (int i=longChaine; i<0; i--)
Et ca devient plus simple

Ca doit faire un truc du style
Code C/C++ :
string chaineinversee;
for (int i=longChaine; i<0; i--) 
{
  chaineinversee.append(laChaine.substr(i,1)); 
}
cout << chaineinversee;


mercredi 4 novembre 2009 à 16:00:26 | Re : fonction inverse c++

bretdu55

Merci mais c 'est quoi '.append'
mercredi 4 novembre 2009 à 16:11:47 | Re : fonction inverse c++

bretdu55

J'ai corrigé un exo avec mon prf pour faire un palindrome et l'algo est le suivant:

programme palindrome
chaine:maChaine
debut
afficher"saisir mot"
saisir maChaine
si inverse(maChaine)=maChaine
afficher "OUI"
sinon
afficher "NON"
finsi
fin




fonction inverse(laChaine:chaine):chaine
chaineInverse<--""
debut
pour i de longueur(laChaine)à 1 pas de -1
chaineInverse<--chaineInverse & extrait(laChaine,i,1)
finpour
fin





Je doit convertir sa en c++ mais le problème est que je n'arrive pas à faire ma fonction inverse, pourrai-tu me traduire sa en c++ avec les 2 seules fonctions extrait et longueur?

MERCI
jeudi 5 novembre 2009 à 08:36:17 | Re : fonction inverse c++

fregolo52

Membre Club
Bah c'est ce que je t'ai donné comme exemple.

append ajoute une chaine à une chaine. un peu l'équivalent de strcat en C.
Si append ne marche pas, mais j'en doute, concatène à la main, style
Code C/C++ :
chaineinversee = chaineinversee + laChaine.substr(i,1);

c'est clair dans mon exemple y'a un souci de typage entre string et char*.

j'ai pas testé mais je vois pas pourquoi mon 1er exemple ne marcherait pas.

Essaie d'avancer, et remets ton nouveau code que tu auras intégré la nouvelle fonction inverse.
jeudi 5 novembre 2009 à 18:57:38 | Re : fonction inverse c++

bretdu55

Merci beaucoup, je viens de trouver:

#include<iostream>
#include<string>

using namespace std;

int inverse(string);

int main()
{
string laChaine,mot;
cout<<"Saisir un mot: ";
cin>>laChaine;

inverse(laChaine);

system("pause");
return 0;
}



int inverse(string laChaine)
{
string chaineinversee,chaineinv,extrait;
int longChaine,i;

longChaine=laChaine.length();
chaineinversee="";

for (int i=longChaine; i>=0; i--)
{
extrait = laChaine.substr(i,1);
chaineinversee = chaineinv + extrait;
cout << chaineinversee;
}

}







J'ai un autre prog à faire toujours avec les deux fonctions la. L'utilisateur saisi une phrase et les espaces sont remplacés par des '_'. A chaque fois que l'extrait rencontre un '_', il fait un retour à la ligne,
ex: bonjour_le_monde affichera

bonjour
le
monde












vendredi 6 novembre 2009 à 08:28:04 | Re : fonction inverse c++

fregolo52

Membre Club
bah là !! c'est super facile. Utilise les méthodes de la classe string.
Là c'est compare.
il suffit d'ajouter à ton code
Code C/C++ :
if (extrait.compare(" ") == 0 || extrait.compare("_") ==0)
  extrait = "\n"; // a tester


PS : je vois pas pourquoi chaineinversee.append(extrait); ne marcherait pas
vendredi 6 novembre 2009 à 19:34:59 | Re : fonction inverse c++

bretdu55

J'ai un palindrome à faire, et j'arrive à cesi, cependant, le programme cesse à chasue fois de fonctionner et je n'arrive pas à afficher vrai ou faux.

#include<iostream>
#include<string>

using namespace std;

string inverse(string);

int main()
{
string laChaine;
string chaineinversee;
cout<<"Saisir un mot: ";
cin>>laChaine;

inverse(laChaine);

return inverse(laChaine);



if ( inverse(laChaine) == laChaine)
{
return true;
}
else
{
return false;
}


system("pause");
return 0;

}



string inverse(string laChaine)
{
string chaineinversee,chaineinv,extrait;
int longChaine,i;

longChaine=laChaine.length();
chaineinversee="";

for (int i=longChaine; i>=0; i--)
{
extrait = laChaine.substr(i,1);
chaineinversee = chaineinv + extrait;
}
}


Si quelqu'un aurai une tite idée, mon prof ma dit de retourner la chaine inverse et de comparer, mais je patoge un peut


Cette discussion est classée dans : int, string, inverse, lachaine, unextrait


Répondre à ce message

Sujets en rapport avec ce message

convertir un int en un String et l'inverse [ par ryoussef19 ] Bonjour,je travaille avec Visual Studio 2005 , comme langage visual c++ je peux convertir un int16, int32, ou un int 64 en un string ou l'inverse ..ma int en char ou string [ par gremlins7 ] Bonjour à tous,J'effectue une liaison série avec l'objet serialport de visual c++ 2008 qui me renvoi des bytes (fonction readbytes). Je cherche à effe Fonctions Imbriquées avec argument string [ par Zakata ] Bonjours,J'esaye de programmer deux classes de menu. L'architecture est la suivantes : Une classe Menuclass Menu{public:    Menu(void);    ~Menu(void) convertir int en string [ par wasaikos ] salut a toustout est dans le titre mais je vous mache le travail voici ma fonction:string fonction(int chiffre){    string lettre="P";    string lettr convertir string en int [ par wasaikos ] salut a tous,tout est dans le titre mis e vais être plus précis, ce que j'ai besoin de faire c'est de convertir une variable de type string en une var Ma première sérialisation d'objet [ par jex0519 ] Bonjour à tous,Je suis débutant en c++, et j'ai un projet ou je dois sauvegarder mes objets afin de pouvoir les recharger après...<br App multie document [ par plasttoon ] La! je clame grave, je me suis acheter un livre "C++ le guide complet" dans ce livre il démontre des exemple de handle a multiple constructeur "surcha inserer un entier dans un tableau de int [ par clcat ] salut la compagnie j ai un ptit probleme(visual C++)j ai un tableau de string :   string TAB[10];et j ai un entier, p=3 par exemple la valeur de p n'e Probleme ASCII et coonversion string vers char (enfin je pense) [ par Leptis ] Salut a tous les pgm qu'il y a sur ce site. Avant tout je tien à vous prévenir que je suis en gros newbie en C.Voila mon problème : je cherche à faire


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales