Algo simplexe

Signaler
Messages postés
1
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
14 avril 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
bonjour tout le monde quelqu'un pourra m'aider a trouver les erreus de ce code source
il ressous par la methode du simplexe  les probleme recherche operationnelle.


#include
#include <stdlib.h>
       class tab
{ float simp[4][7];
public:
tab();
  void rempmax();
float cpivot();
void rapport();
float lpivot();
void remp();
void affiche();
};
  tab::tab() {
 for( int i=1;i<=3;i++)
{
for (int a=1; a<=5;a++){
cout<<"donner le coef \t "<> simp[i][a];}


cout <<"donner le second membre de l'equation";
cin>> simp[i][6];}


}


 void tab::rempmax()
 {


cout<<"donner le coef 1 de la fontion de maximisation\n";
cin>> simp[4][1];
cout<<"donner le coef 2 de la fonction de maximisation\n";
cin>> simp[4][2];


simp[4][3]=0;
simp[4][4]=0;
simp[4][5]=0;
 simp[4][6]=0;
 simp[4][7]=0;
}


int c=0;
float tab::cpivot()
{
float max=simp[4][1];


for (int k=1; k<=2;k++)
{    float comp  = simp[4][k] ;
if (max<= comp) {c=k; }
}
return (c) ;}
void tab::rapport()
{
for (int i=1; i<=3;i++)
{
simp [i][7]=simp[i][6]/simp[i][c];
}
}
int l=0;
float tab::lpivot(){
float min= simp[1][7];


for (int s=1; s<=3; s++)
 { if (min >= simp[s][7]){l=s; min=simp[s][7];}
}return (l);
}
void tab::remp()
{  float pivot=simp[l][c];
for (int k=1; k<=6; k++)
{
simp[l][k]=simp[l][k]/pivot;
 }


for (int i=1;i<l;i++)
{
 for (int j=1;j<=6;j++)
{
simp[i][j]=simp[i][j]- simp[i][c]*simp[l][j]/pivot;


}
   }
 int f=l+1;
for (int z=f; z<=4;z++)
{
 for (int t=1;t<=6;t++)
{ float res= simp[z][t] ;
 float res2=  simp[z][c]*simp[l][t]/pivot ;
simp[z][t]=res-res2;
}
}
cout<<"\n variable de bases"<< l<<"change contre variable de decision"<<c;}
void tab::affiche(){
for (int i=1;i<=4;i++)
{
 for (int j=1; j<=7;j++)
{  float a=simp[i][j];
cout << a<<"\t" ;}cout<<"\n";
}}


 


int main()
{


float clp, lp;
   tab a;
a.rempmax();
 a.affiche();
clp=a.cpivot();


a.rapport();
lp=a.lpivot();a.affiche();


cout<<"\n ligne pivot\t"<<l<<"\n" ;
cout<<"colonne pivot "<<clp<<"\n";


cout<<"\n construction du tableau 2";
  a.remp();
   clp=a.cpivot();
a.rapport();
lp=a.lpivot();
 cout<<"\n ligne pivot\t"<<l<<"\n" ;
cout<<"colonne pivot "<<clp<<"\n";
a.affiche();
 system("PAUSE");
cout<<" construction du tableau 3";
a.remp();
a.affiche(); 


      system("PAUSE");
      return 0;
}

1 réponse

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Salut.

Si ton problème est au niveau de l'algorithme lui-même, il vaut mieux utiliser du pseudo code, tous les développeurs pourront ainsi t'aider.
Si ton problème est au niveau du code, il vaut mieux poster dans la bonne section, car il me semble qu'il s'agit de C++, or une section est consacrée à ce langage : www.cppfrance.com. (enfin, pas la peine de faire un double post, mais fait attention la prochaine fois...)

Cependant, soit plus précis en ce qui concerne ton problème. Parce que "Il y a des erreurs dans le code", ça n'aide pas beaucoup pour les trouver...

PS : depuis quand on marque le .h dans #include ? J'étais persuadé qu'on ne le mettait pas avec le bib C++

Krimog :
while (!(succeed = try())) ;