Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2947 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Instructions non effectué à partir d'un certain rang

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Instructions non effectué à partir d'un certain rang

n°2113312
giovedy
Posté le 25-11-2011 à 22:14:51  profilanswer
 

Bonjour,
j'ai un petit problème que j'ai repéré avec gdb mais je ne sais pas le résoudre. Pour vous expliquer, le programme marche correctement jusqu'à l'itération k=42 (incluse). Mais lorsque k passe à 43, les boucles sont effectuées mais aucunes instructions n'est réalisée.
Avez vous une raison ?
Merci !
Voila le code gdb :
 
260    x[k+1][i]=x[k][i]+a[k]*r[k][i];
(gdb)  
261    printf("x [%d] [%d] :%f\n",k,i,x[k][i]);
(gdb)  
x [43] [0] :0.989438
242   for (i=0;i<=n-1;i++)
(gdb)  
265    printf("\n" );
(gdb)  
 
266   k++;
(gdb)  
267   nbiter++;
(gdb)  
268  }while((k<=itermax-1)/*&&(norme2(r,k-1,n)/norme2(b,0,n)>e)*/);
(gdb)  
232   for (i=0;i<=n-1;i++)
(gdb)  
242   for (i=0;i<=n-1;i++)
(gdb)  
265    printf("\n" );
(gdb)  
 
266   k++;
(gdb)  
 
 
Voila le programme principale :
 

Code :
  1. void main (void)
  2. {
  3. double x[Max][Maxdim];
  4. double r[Max][Maxdim];
  5. double A[Maxdim][Maxdim];
  6. double b [1][Maxdim];
  7. double a [Maxdim];
  8. int i,n,w,z,k=0,nbiter=0,itermax,itermax2;
  9. double e;
  10. double Ar[Max][Maxdim];
  11. e=0.0000001;
  12. n=3;
  13. itermax=44;
  14. hilbert(A,b,n);             // hilbert dordre n avec sa fonction
  15.  for(w=0;w<n;w++)
  16.  {
  17.   for(z=0;z<n;z++)
  18.   {
  19.    x[w][z]=0;
  20.   }
  21.  }
  22.  do
  23. {
  24.  for (i=0;i<=n-1;i++)
  25.  {
  26.   b[0][0]=11.0/6;
  27.   b[0][1]=13.0/12;
  28.   b[0][2]=47.0/60;
  29.   r[k][i]=b[0][i]-indice_i_du_produit_matrice_vecteur(A,x,k,n,i);
  30.   printf("b[0][%d] : %f\n",i,b[0][i]);
  31.   printf("r[%d][%d] : %f\n",k,i,r[k][i]);
  32.  }
  33.  for (i=0;i<=n-1;i++)
  34.  {
  35.   produit_matrice_vecteur_2(A,r, Ar, k, n);
  36.   printf("Ar[%d][%d] : %f\n",k,i,Ar[k][i]);
  37.   a[k]=prodscal(r,r,k,n)/prodscal(r,Ar,k,n);
  38.   printf("prodscal(r,r,%d,n): %.10f\n",k,prodscal(r,r,k,n));
  39.   printf("prodscal(r,Ar,%d,n): %.10f\n",k,prodscal(r,Ar,k,n));
  40.   printf("a[%d]: %f\n",k,a[k]);
  41.   x[k+1][i]=x[k][i]+a[k]*r[k][i];
  42.   printf("x [%d] [%d] :%f\n",k,i,x[k][i]);
  43.  }
  44.   printf("\n" );
  45.  k++;
  46.  nbiter++;
  47. }while((k<=itermax-1)/*&&(norme2(r,k-1,n)/norme2(b,0,n)>e)*/);


Message édité par gilou le 26-11-2011 à 20:03:39
mood
Publicité
Posté le 25-11-2011 à 22:14:51  profilanswer
 

n°2113361
Tamahome
⭐⭐⭐⭐⭐
Posté le 26-11-2011 à 16:02:48  profilanswer
 

ton code ne compile pas. Poste un code qui compile.

n°2114079
c_boy
Posté le 30-11-2011 à 19:02:13  profilanswer
 

Je ne vois pas le probléme.
A tu essayé avec  while(k<itermax);


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Instructions non effectué à partir d'un certain rang

 

Sujets relatifs
remplacer une chaine par une autre à partir d'une liste[Divers / Ada ] Utiliser un bibliothèque partagé (inpout32.ddl)
[bash] [Windows] traitement a partir de nom de fichiercréer un .exe qui écrit un .txt a partir d'une selection de photo
Appel d'une fonction javascript ) partir d'un hrefEnvoyer des graphiques sur un site internet a partir d'une source CSV
Bannir un user a partir de son adresse MACL'impression d'un composant graphique à partir d'un point
Générer un pdf à partir d'un tableau croisé dynamiqueExecution d'une Macro Access a partir d'un code C#
Plus de sujets relatifs à : Instructions non effectué à partir d'un certain rang


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR