begin process at 2008 07 20 12:16:22
1 213 212 membres
129 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : resolution systeme de N equations à N inconnues [ Divers / Débutant(e) ] (sweett)

resolution systeme de N equations à N inconnues le 13/05/2008 17:45:58

sweett
Bonjour
je suis nouveau sur ce site (meme si j'y ai deja passé du temps pr mon programme) et je suis coincé dans le programme que je dois realiser. Le su jet est la resolution de N systemes d'equations a N inconnues. le voila

 /*resolution systeme d'equation*/

# define N 3
#include<stdio.h>
#include<string.h>

void saisie(int*n,float systeme[3][3],float secondmembre[3])
{
        int i;
        int j;



        printf("combien de valeurs voulez vous rentrer");
        scanf("%d",n);
        for(i=1;i<=*n;i++)
        {
                for(j=1;j<=*n;j++)
                {
                        {printf("entrer le nombre%f%f,i+1,j+1");}
                {scanf("%f",&systeme[i][j]);}
                }
        }
        for(i=1;i<=*n;i++)
        {
                scanf("%f",&secondmembre[i]);
        }
        {printf("afficherles equations%f%f,systeme[i][j],secondmembre[k]");}
}
void echange (float *systeme[][],float *secondmembre[][],int *i,int *j,int *k)                                  /*a modifier car l'echange ne marche pas*/
{
        float memoire;




        memoire=systeme[i][j];
        systeme[i][j]=systeme[k][j];
        systeme[k][j]=memoire;


        memoire=secondmembre[i]
        secondmembre[i]=secondmembre[k]
        secondmembre[k]=memoire


}

main()
{
float systeme[N][N];
float secondmembre[N];
int n;
int i;
int j;
int k;

saisie(&n,systeme,secondmembre);

for(j=1;j<=n;j++)
{
        if (systeme[i+1]>systeme[i]);
        {
                echange(&systeme[i][j],&systeme[k][j]);

        }

suppression(systeme[][],secondmembre[],int *i,int *k,int*j);
}

}
void suppression (int *i,int *k,int *j,float systeme[][],float secondmembre[])
{

        int n;
        int z;

for(j=1;j<=n-1;j++)
{

        for(k=1;k<=n;k++)
        {
                systeme[i][j]/systeme[k+1][j]=z;
                secondmembre[i]/secondmembre[k+1]
                for(j=1;j<=n;j++)
                        {
                        [k][j]=[i][j]-[k][j]*z
                        }
        }
}



 secondmembre[n-1]=systeme[n][n-1]/systeme[n-1][n-1];
 systeme[n][n-1]=0;
 systeme[n-1][n-1]=0;

 for (ligne=1;ligne<=n;ligne++)
{


 for (sol=2;sol<=n;sol++)
 {


 systeme[n-ligne][n-sol]*=secondmembre[n-ligne];
 systeme[n][n-sol]-=systeme[n-ligne][n-sol];
 systeme[n-ligne][n-sol]=0;


 }

 secondmembre[n-(ligne+1)]=systeme[n][n-(ligne+1)]/systeme[n-(ligne+1)][n-(ligne+1)];

 }




il y a enormement d'erreur a partir de la fonction echange, souvent la meme qui revient "invalid use of array with unspecified bounds"
Je sais que mon niveau en informatique est miserable mais je n'y comprends rien.

Voila merci pour votre aide

Re : resolution systeme de N equations à N inconnues le 13/05/2008 20:32:25

deck_bsd
Membre Club
Yop,

float *systeme[][],float *secondmembre[][],int *i,int *j,int *k

tout dabord , comme tu le dis , si ton niveau en info et plus précisément en programmation n'est pas au top :D il faudrait apprendre dabord le langage C, les bases avant de s'attaquer au pointeur ;) car:

int *i,int *j,int *k

sont des pointeurs et je supose que tu veu utiliser leur valeur dans ta fonction, donc il faut par exemple a cette ligne :

memoire=systeme[i][j]; écrire ceci memoire=systeme[*i][*j]; * permet de spécifier que l'on veut utiliser la valeur pointée par le pointeur , ici i tout cours désigne l'adresse à laquel cette valeur ce trouve. Ici d'ailleur je comprend pas le pourquoi de l'utilisation de pointeur :s .

De plus aussi revoie le passage de paramètre, car ta façons de passer les tableau 2D n'est pas bonne non plus.

echange(&systeme[i][j],&systeme[k][j]);

Tu ne passe pas tout les paramètres que attend la fonction, fin bref, bcp de chose sont a refaire, prend le temps d'étudier correctement le C :D

++
deck_bsd
___________________________________
[ [ Lien ]]

Re : resolution systeme de N equations à N inconnues le 14/05/2008 18:25:01

sweett

merci pour l'histoire de l'echange. Pour l'echange tu parles des parametres "secondmembre" ou egalement des I,j et k?Ou est l'erreur dans ma facon de passer les tableaux 2D ?Quant au C je ne le comprends pas.j'ai pourtant deja lu des cours sur les passages par adresse et passage par valeur mais pour moi c'est du chinois:D

++


Classé sous : ligne, int, systeme, float, secondmembre

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS