logo

Permutation

C'est ici que vous posterez vos questions sur la programmation en C ou en C++

Permutation

Messagede Cyril » 23 Oct 2009, 19:33

bonsoir, monsieur

Aprés, avoir entamé l'exercice 2 du tp 2 , je me suis hurté a un probléme qui peux paraître bête :evil: . je ne sais plus afficher le resultat de la permutation :shock: demander dans l'exercice.
voici mon programme:

#include <iostream>
using namespace std;
int main()
{
int nb,nb2,permute;
cout<<"veuillez saisir deux nombre"<<endl;
cin>>nb>>nb2;
permute<<nb;
nb<<nb2;
nb2<<permute;
cout<<?<<endl;
}
merci !!!
Cyril
 
Messages: 4
Inscription: 21 Oct 2009, 18:23

Re: Permutation

Messagede Tibo » 26 Oct 2009, 20:30

Salut Cyril,

attention, tu fais une erreur : tu te trompes avec l'affectation (c'est à dire mettre une valeur dans une variable)?

En algorithmique, il faut faire par exemple :
Code: Tout sélectionner
permute <- nb

En C++, il faut faire :
Code: Tout sélectionner
permute = nb;

Ensuite, si tu veux afficher la valeur qu'il y a dans la variable, il faut faire :

Code: Tout sélectionner
cout << "valeur de permute : " << permute << endl;


J'espère que c'est plus clair !
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58

Re: Permutation

Messagede Cyril » 26 Oct 2009, 21:50

bonsoir, monsieur



je vous remercie de votre aide , j'ai bien compris mes erreurs.
Cyril
 
Messages: 4
Inscription: 21 Oct 2009, 18:23

Re: Permutation

Messagede Cyril » 03 Nov 2009, 19:05

bonsoir, monsieur

je suis actuellement entrain de refaire tout les exercices du tp 4 que je commence a bien comprendre et a connaître par coeur .

Mais dans l'ensemble des derniers exercices un compteur (cpt++)apparaît,mon problème est le suivant , je ne comprend pas le rôle du deuxième (+).

Par exemple :

#include<iostream>
#include<string>
using namespace std;
int main ()
{
string mdp;
int cpt=0;
cout<<" veuillez saisir votre mot de passe"<<endl;
cin>>mdp;
while((mdp != "3xrf6")&& (cpt<3))
{
cout<<" erreur mdp, il vous reste : "<<3-cpt<<"essaie"<<endl;
cin>>mdp;
cpt++;
}
if (mdp == "3xrf6"){
cout<<"le renard a perdu son chapeau"<<endl;
}else{
cout<<"erreur mot de passe"<<endl;
}
}

merci !!!
Cyril
 
Messages: 4
Inscription: 21 Oct 2009, 18:23

Re: Permutation

Messagede Tibo » 04 Nov 2009, 21:10

Quand le langage C a été inventé, ils ont essayé de faire simplifier la vie des programmeurs. Il y a donc plein d'astuces pour aller plus vite. En réalité, écrire
Code: Tout sélectionner
cpt++;
revient à écrire
Code: Tout sélectionner
cpt=cpt+1;


Il est aussi possible d'écrire de manière équivalente :
Code: Tout sélectionner
cpt+=1;

De ces règles, tu peux en déduire qu'il est possible d'écrire :
Code: Tout sélectionner
cpt--;
cpt=cpt-1;
cpt-=1;

mais aussi
Code: Tout sélectionner
cpt/=5; // ce qui reviens à cpt=cpt/5;
cpt*=5; // ce qui reviens à cpt=cpt*5;


J'espère que c'est clair...
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58

Re: Tp 16

Messagede Cyril » 07 Déc 2009, 20:24

Bonsoir, monsieur

J'ai essayer de finir le TP 16 malheureusement sans succès :(

voici ce que j'ai fait :

Code: Tout sélectionner
#include<iostream>
#include<string>
using namespace std;

struct Matiere{
   string nom;
   string prof;
   string eleves[5];
   float notes[3][5];
};

Matiere initialisation(){
   Matiere m;
   cout<<"veuillez saisir le nom de la matiere, le nom du professeur et les noms des eleves : "<<endl;
   cin>>m.nom;
   cin>>m.prof;
   for(int cpt=0; cpt<5;cpt++){
      cin>>m.eleves[cpt];
   }

   return m;
};

string CreerMotDePasse(Matiere m){

   string mdp="00000";
   mdp[0]=m.nom[1];
   mdp[1]=m.nom[2];
   mdp[2]=m.prof[m.prof.length()-3];
   mdp[3]=m.prof[m.prof.length()-2];
   mdp[4]=m.prof[m.prof.length()-1];

   return mdp;
};

bool validiteMotDePasse(Matiere m,string mdp){

   string mdp2;
   mdp2=CreerMotDePasse(m);

   if(mdp2==mdp){
      cout<<"le mot de passe est correct !"<<endl;
      return true;
   }else{
      cout<<"le mot de passe n'est pas correct !"<<endl;
      return false;
   }
};

void saisirNote(Matiere m,string nomEleve){
   int cpt,cpt2;
   for (cpt=0; cpt<5; cpt++){
      if(nomEleve=m.eleves[cpt]){
         cout<<"Veuillez saisir trois notes : "<<m.eleves[cpt]<<endl;
         for (cpt2=0; cpt2<3; cpt2++){
            cin>>m.notes[cpt2][cpt];

         }else{
              cout<<"Une erreur s'est produite lors de la saisie des notes "<<endl;
         }
      }
   }
};

void main(){
   Matiere info;
   string mot2passe;
   float saisirNote;
   info=initialisation();
   cout<<CreerMotDePasse(info)<<endl;
   cout<<"saisir un mot de passe : "<<endl;
   cin>>mot2passe;
   if(validiteMotDePasse(info,mot2passe)){
      cout<<"OK"<<endl;
   }else{
      cout<<"KO"<<endl;
   }
   cout<<saisirNote(info,mot2passe)<<endl;
        cin>>mot2passe;
       
};


merci de bien vouloir m'aider :cry:
Cyril
 
Messages: 4
Inscription: 21 Oct 2009, 18:23

Re: Permutation

Messagede N4th » 08 Déc 2009, 01:34

Pour commencer sa ira mieux si tu met un "return m" à la fin de ta fonction initialisation() car elle doit renvoyer un objet Matiere.

Ensuite je ne comprend pas trop la fin de ton main :?

Code: Tout sélectionner
cout<<saisirNote(info,mot2passe)<<endl;
cin>>mot2passe;


Ton saisirNote demande en paramètre le nom d'un élève ?
N4th
 
Messages: 14
Inscription: 28 Mar 2008, 23:30

Re: Permutation

Messagede Tibo » 08 Déc 2009, 15:59

Bonjour Cyril !

Comme le dit N4th (merci à lui ;) ), ta fonction initialisation() doit renvoyer une matière pour que dans le main() tu puisse la récupérer dans ta variable info.

Ensuite, ta fonction saisirNote prend en paramètre une variable de type matière et un string correspondant au nom d'un élève. D'où deux problème :
- Dans ta fonction nomEleve, il faut te rappeler que pour tester l'égalité, il faut utiliser == !
- Dans la fonction main, il faut que tu demande à l'utilisateur quel élève (le nom) il veux modifier avant d'appeler la fonction :
Code: Tout sélectionner
cout<<"quel est le nom de l'eleve à modifier ?"<<endl;
cin>>nomE;
saisirNote(info, nomE);

Enfin, il ne fallait pas mettre la fonction dans un cout car la fonction ne renvoie rien qui puisse être affiché (elle est de type void) !
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58


Retourner vers Cpp

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron
Hit-Parade des sites francophones