Gauss jordan en C++

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
vivelefou63
Messages: 6
Enregistré le: 25 Nov 2006, 11:55

gauss jordan en C++

par vivelefou63 » 14 Déc 2006, 07:42

Salut à tous
Voila je suis entrin de programmer l'algorithme de gauss jordan en C++ et j'ai un petit souci pour la procédure qui réduit les lignes à 0 sous et au dessus d'un pivot.
Voila mon code, j'ai mis en rouge les endroits ou je pense qu'il y a des erreurs, un petit coup de main ne serait pas de refus.
Merci d'avance. :help:

#include
#include
using namespace std;
const int NMAX=100;
typedef double matrice[NMAX][NMAX];
void remplissage (matrice tab, int &n, int &p)
{
int i=0;
int j=0;
float val;
n=0;
p=0;

cout>p;
cout>n;
for ((i=0);(i>val;
tab[i][j]=val;
}
}
}

void affichage (matrice tab ,int n, int p)
{
int i,j;
cout<<"Votre matrice : "<<endl;
for ((i=0);(i<n);i++)
{
for ((j=0);(j<p);j++)
{
cout<<tab[i][j]<<"\t";
}
cout<<endl;
cout<<endl;

}
_getche() ;
}

void intervertir (matrice tab, int n, int p, int k, int i)
{
int z;
double stock;
cout<<"*intervertion de lignes.*"<<endl;
for((z=0);(z<n);z++)
{
stock=tab[i][z];
tab[i][z]=tab[k][z];
tab[k][z]=stock;
}
affichage(tab,n,p);
_getche() ;
}
void multiplier (matrice tab, int n, int p, int i, int j, double &b)
{
int z;
cout<<"*multiplication de lignes.*"<<endl;
b=(1/tab[i][j]);
for((z=0);(z<n);z++)
{
tab[i][z]=tab[i][z]*b;
}
affichage(tab,n,p);
_getche() ;
}
void soustraire (matrice tab ,int n, int p, int l,int i, double b)
{
cout<<"*soustraction de lignes*."<<endl;
int z;
for((z=0);(z<n);z++)
{
tab[l][z]=tab[l][z]-((tab[i][z])*b);
}
affichage(tab,n,p);
_getche() ;
}

void reduite(matrice tab,int n, int p, int &k, int &i, int &j, int &l, double b)
{
i=0;
j=0;
while ((i<n)&&(j<p))
{
k=i;
while ((k<n)&&(tab[k][j]==0))
{
k++;
}
if (i<n)
{
if (i!=k)
{
intervertir(tab,n,p,k,i);
}
multiplier(tab,n,p,i,j,b);
for ((l=0);(l<i);l++)
{
soustraire(tab,n,p,l,i,b);
}

for ((l=(k+1));(l<n);l++)
{
soustraire(tab,n,p,l,i,b);
}
i++;
}
j++;
}
affichage(tab,n,p);
_getche() ;
}
void main ()
{
double b;
b=1;
int n,p;
int k,i,j,l;
matrice tab;
remplissage(tab,n,p);
affichage(tab,n,p);
cout<<"La matrice va etre reduite..."<<endl;
_getche() ;
reduite(tab,n,p,k,i,j,l,b);
_getche() ;

_getch () ;
}



fahr451
Membre Transcendant
Messages: 5142
Enregistré le: 05 Déc 2006, 23:50

par fahr451 » 14 Déc 2006, 10:49

y a une rubrique informatique dans le forum

andros06
Membre Relatif
Messages: 180
Enregistré le: 30 Aoû 2006, 13:30

par andros06 » 14 Déc 2006, 14:53

Et puis du code non-commenté et écrit salement , je ne lis même pas.

vivelefou63
Messages: 6
Enregistré le: 25 Nov 2006, 11:55

par vivelefou63 » 15 Déc 2006, 09:47

Merci de l'info pour la rubrique informatique je n'avais pas vu.
Et puis désolé mais je n'es pas eu le tps de commenté mon algo, j'espere que sa ne ta pas trop brulé les yeux...

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 20 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite