Probleme de compilation sur dev c++

mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007 - 3 mars 2007 à 09:54
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 3 mars 2007 à 13:22
bonjour tout le monde svp aidez moi je n'arrive pas a comprendre pq mon prog ne marche pas apres validation de la compilation?
j'ai crée ce prog pour  la resolution de gauss sans pivot :
le prog é le suivant :
#include<stdio.h>
#include <stdlib.h>
 main()
   
{    
      int i,j,k;
      float A[5][5],a[5],mat[5][6],s[5],som;
     
      for (i=1;i<5;i++)
      {
      for (j=1;j<5;j++)
      {
          printf(" A[%d][%d]=",i,j);
          scanf("%f",&A[i][j]);
      }
      }
     
     
      for (i=1;i<5;i++)
      {       printf("a[%d]=",i);
              scanf("%f",&a[i]);
      }
     
      for (i=1;i<5;i++)
      {
          {    for (j=1;j<5;j++)
           printf(" %f ",A[i][j]);
          }
          printf("\n");
          }
     
      for (i=1;i<5;i++)
      printf("%f \n",a[i]);
     
                   
      for(i=1;i<5;i++)
      for (j=1;j<5;j++)
      mat[i][j]=A[i][j];
     
      for (i=1;i<5;i++)
      mat[i][5]=a[i];
     
      for(i=1;i<5;i++)
      {
      {for (j=1;j<6;j++)
      printf(" %f ",mat[i][j]);}
      printf(" \n ");}
     
     
     
      for (k=1;k<5;k++)
     
      {
         
             for (i=k+1;i<5;i++)
             for (j>5;j=1;j--)
             mat[i][j]=mat[i][j]-(mat[i][k]*mat[k][j])/mat[k][k];
      }
s[4]=mat[4][5]/mat[4][4];
    for (k>4;k=0;k--)
    {
        som=0; 
        for (j=k+1;j<5;j++)
        {
           som=som+mat[k][j]*s[j];
           s[k]=(mat[k][5]-som)/mat[k][k];
        }
    }
   for (k=1;k<5;k++)
   printf("la x %d = %f \n",k,s[k]);


  system("PAUSE");
 return 0;
   }

16 réponses

goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:31
J'ai pas tres bien compris la question. Ton programme ne se compile
pas? Ou c'est le code qui est incorrecte? Si c'est la compilation alors
met le message d'erreur du compilateur. Si c'est dans le code alors la
prochaine fois choisi un titre de post plus correcte

<hr size="2" width="100%" />Trafic web gratuit!!!
0
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 10:35
désolé je suis debutant ,voila mon program se compile mé a l'execution le programe affiche seulement la matrice et il ne fé pas le calcule des equations lineaires
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:43
bon j'ai pas encore fini de tester mais il y a une boucle infinie qq part

<hr size="2" width="100%" />Trafic web gratuit!!!
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:45
bon je l'ai trouvé la faute

t'as ecrit

for (j>5;j=1;j--)

a la place de

for (j=5;j>1;j--)

<hr size="2" width="100%" />Trafic web gratuit!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 10:46
ok merci beaucoup,car je v passé un test important en informatique,ça va vraiment m'aider ,merci encore
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:47
derien

mais ton prog marche pas comme meme

j'ai essayé avec A=ID4 et ca donne n'importe quoi

<hr size="2" width="100%" />Trafic web gratuit!!!
0
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 10:49
oui je croi ke ya un problem de priorité,je doi me concentrer sur le debut é la fin des boucles
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:51
for (k>4;k=0;k--)

meme erreur

ca doit etre

for (k=4;k>0;k--)

<hr size="2" width="100%" />Trafic web gratuit!!!
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:52
et ca marche maintenant

enfin avec une matrice Id4

<hr size="2" width="100%" />Trafic web gratuit!!!
0
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 10:56
esk ke le fé d'ecrire k=1 ou k >0 ne donne pa le mm resultat?
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 10:58
Par contre j'ai qq remarques.

quand tu utilise des tableaux les indices se commensent à 0 et non à 1.
Donc dans ton prog tu n'utilise pas 1 case par ligne et colonne.

Et puis t'as pas besoin de tableau mat et A en meme temps. Tu peux faire la saisie directement dans mat sans passer par A.

<hr size="2" width="100%" />Trafic web gratuit!!!
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 11:01
k=1 ou k >0 donne le meme resultat mais si tu modifi le k à
l'interieur de ton for et que tu le decremente par inattention alors tu
risque de jamais avoire k=1. Donc d'habitude on ecrit avec ">" ou
"<". Et puis de toute facon au niveau de performances ca change rien
les 2 operations sont identiques sur ce point la

<hr size="2" width="100%" />Trafic web gratuit!!!
0
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 11:05
oui c vré,mé g fé ça car dans mon ecole ,le compilateur ne reconé pa la case 0,
é pour la matrice a et mat je ve garder la matrice mat pour pouvoir l'utiliser dans un 2eme program de pivot partiel ,
cependant g une autre kestion a vous poser: comment utiliser ce program en tant ke fonction ?
car je ve utiliser les deux prog pivot partiel é sans pivot en tant ke deux fcts d'1 meme prog.
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 11:12
bon c'est simple. Il faux créer une fonction qui prend en parametre la
matrice initial A[5][5], le vecteur b[5] et un vecteur solution x[5]

et donc cette fonction elle va faire les memes calculs mais elle va stocker le resultat dans x et non plus dans s

<hr size="2" width="100%" />Trafic web gratuit!!!
0
mino1001 Messages postés 12 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 17 avril 2007
3 mars 2007 à 11:19
oui je c ke c com ça ,mé l'orthographe si je puis  dir je ne le coné pa,
enfin g essayé mé le program ne ce compil pas,alors g defini l'algorithme dans le main ,mé c pa interessant si je ve plusieur fcts dan un mm program,voila ce ke g essayé de faire sans la fonction ,si vous savé commen fair dit le moi
#include<stdio.h>
#include <stdlib.h>
 main()
   
{    
      int i,j,k;
      float A[5][5],a[5],mat[5][6],s[5],som;
     
      for (i=1;i<5;i++)
      {
      for (j=1;j<5;j++)
      {
          printf(" A[%d][%d]=",i,j);
          scanf("%f",&A[i][j]);
      }
      }
     
     
      for (i=1;i<5;i++)
      {       printf("a[%d]=",i);
              scanf("%f",&a[i]);
      }
     
      for (i=1;i<5;i++)
      {
          {    for (j=1;j<5;j++)
           printf(" %f ",A[i][j]);
          }
          printf("\n");
          }
     
      for (i=1;i<5;i++)
      printf("%f \n",a[i]);
     
                   
      for(i=1;i<5;i++)
      for (j=1;j<5;j++)
      mat[i][j]=A[i][j];
     
      for (i=1;i<5;i++)
      mat[i][5]=a[i];
     
      for(i=1;i<5;i++)
      {
      {for (j=1;j<6;j++)
      printf(" %f ",mat[i][j]);}
      printf(" \n ");}
     
     
     
      for (k=1;k<5;k++)
     
      {
         
             for (i=k+1;i<5;i++)
             for (j=5;j>1;j--)
             mat[i][j]=mat[i][j]-(mat[i][k]*mat[k][j])/mat[k][k];
      }
s[4]=mat[4][5]/mat[4][4];
    for (k=4;k>0;k--)
    {
        som=0; 
        for (j=k+1;j<5;j++)
        {
           som=som+mat[k][j]*s[j];
           s[k]=(mat[k][5]-som)/mat[k][k];
        }
    }
   for (k=1;k<5;k++)
   printf("la x %d = %f \n",k,s[k]);


  system("PAUSE");
 return 0;
   }
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
3 mars 2007 à 13:22
Ca devrai ressembler à ca. J'ai pas testé donc il peut y avoir qq ptits bugs


#include<stdio.h>

#include <stdlib.h>

 void resoudre(float A[5][5], a[5],s[5])

   

{    

      int i,j,k;

      float mat[5][6],som;

     

     

      for (i=1;i<5;i++)

      {

          {    for (j=1;j<5;j++)

           printf(" %f ",A[i][j]);

          }

          printf("\n");

          }

     

      for (i=1;i<5;i++)

      printf("%f \n",a[i]);

     

                   

      for(i=1;i<5;i++)

      for (j=1;j<5;j++)

      mat[i][j]=A[i][j];

     

      for (i=1;i<5;i++)

      mat[i][5]=a[i];

     

      for(i=1;i<5;i++)

      {

      {for (j=1;j<6;j++)

      printf(" %f ",mat[i][j]);}

      printf(" \n ");}

     

     

     

      for (k=1;k<5;k++)

     

      {

         

             for (i=k+1;i<5;i++)

             for (j=5;j>1;j--)

             mat[i][j]=mat[i][j]-(mat[i][k]*mat[k][j])/mat[k][k];

      }

s[4]=mat[4][5]/mat[4][4];

    for (k=4;k>0;k--)

    {

        som=0; 

        for (j=k+1;j<5;j++)

        {

           som=som+mat[k][j]*s[j];

           s[k]=(mat[k][5]-som)/mat[k][k];

        }

    } 

 }


int main()

{

float A[5][5],a[5],s[5];

/*initialisation de la matrice A*/

for (i=1;i<5;i++)


      {


      for (j=1;j<5;j++)


      {


          printf(" A[%d][%d]=",i,j);


          scanf("%f",&A[i][j]);


      }


      }

/*initialisation du second terme*/
for (i=1;i<5;i++)


      {       printf("a[%d]=",i);


              scanf("%f",&a[i]);


      }


resoudre(A,a,s);


    for (k=1;k<5;k++)


   printf("la x %d = %f \n",k,s[k]);

    system("pause");

    return 0;

}
<hr size="2" width="100%" />Trafic web gratuit!!!
0
Rejoignez-nous