online faq recherche accueil
 

Il y a 210 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :  1  2  3  4  5  ..  24  25  26  27  28  29
Auteur
 Sujet :

[topic unique] Aide au développement informatique (C++, java, algo...)

 
n°5221345
guigolum
noone can stop us now
Posté le 19-05-2007 à 08:07:08  profilanswer
 

Reprise du message précédent :
heu, un code comme ça, ne donne opas envie d'etre lu..

 

fais des fonctions, des trus plus modulables..
et je parlais de faire une structure (struc en c?) pour ta matrice, parce que là c'est un peu hardos à lire.
j'espere pour toi que tu aura pas fait d'erreur , et j'espere pour ton prof qu'il est motivé ^^

 

et pourquoi tu as deux pas x et y?(m et n)
evites de mettre deux variables qui ne sont differentes que par la casse..(t et T) ; et expliques au debut à quoi serent tes variables

 

et quand tu commences une indentation pour un bloc, continues la jusqu'à la fin du bloc, sinon on croit que le bloc est fini(ta serie de for imbriqués)


Message édité par guigolum le 19-05-2007 à 08:13:32

---------------
il y a ceux qui s'etonnent, qui s'affolent et questionnent; les autres s'en tamponnent tellement la beuh est bonne;
laissez bruler la weed, et n'oubliez personne; dans la fumée des dieux s'effondre babylone..
le libéralisme, c'est la course à l'ovule : pour qu'une personne reussise, un millier doivent crever.
n°5221347
joran
nain géant
Posté le 19-05-2007 à 08:24:05  profilanswer
 

Naz a écrit :


//ucl[n+1][j]= exp(-y);  Ces trois conditions posent un problème, mais pourquoi ?
//ucl[i][n+1]= exp(-x);  
//ucl[n+1][n+1]= exp(-1);

 

Quand j'enlève ces trois lignes du programme, ma première matrice est bien remplique.

 


POURQUOI ?


J'ai du mal à voir l'intervalle que parcourent x et y, tu est sûr que ça n'est pas redondant avec

 
Code :
  1. // Conditions initiales   
  2. if (x+y>1) u0[i][j]= exp(1-x-y);
  3. else u0[i][j]=1;
 


(et utilise donc ces balises, met un alinéa (voire deux trois etc. selon le nombre) pour les trucs dans les boucles, les if/then/else etc. ça facilite la (re)lecture


Message édité par joran le 19-05-2007 à 08:25:00

---------------
In some ways the internet is akin to Lovecraft's universe. The more you know the closer insanity comes.
n°5221380
Naz
Censurez moi.
Posté le 19-05-2007 à 11:18:00  profilanswer
 

Pourquoi ça serait redondant, c'est pas les même matrices >.<


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5221381
joran
nain géant
Posté le 19-05-2007 à 11:22:43  profilanswer
 

donc en remplissant ucl différement tu changes les valeur de u0. normal.

 

par contre je suis pas sûr qu'il aime bien l'idée d'avoir une matrice dans laquelle seuls les bords sont remplis.

 

Si tu utilises 4 vecteurs au lieu d'une matrice pour tes conditions au limites ?


Message édité par joran le 19-05-2007 à 11:26:41

---------------
In some ways the internet is akin to Lovecraft's universe. The more you know the closer insanity comes.
n°5221383
Naz
Censurez moi.
Posté le 19-05-2007 à 11:26:34  profilanswer
 

Tu peux m'expliquer pourquoi en remplissant ucl ça change u0 ? Oo


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5221384
joran
nain géant
Posté le 19-05-2007 à 11:28:49  profilanswer
 

Naz a écrit :

Tu peux m'expliquer pourquoi en remplissant ucl ça change u0 ? Oo


essai de remplacer ton truc de conditions aux limites par 4 vecteurs (ou en mettant des 0 dans tout le reste de ucl, cela dit le coup des 4 vecteurs est un peu plus éconnomique, voire un gros vecteur en mettant les 4 bout à bout). Je pense qu'il n'aime pas l'idée qu'on affecte des valeurs uniquement sur les bords de la matrice.


Message édité par joran le 19-05-2007 à 11:30:55

---------------
In some ways the internet is akin to Lovecraft's universe. The more you know the closer insanity comes.
n°5221385
Naz
Censurez moi.
Posté le 19-05-2007 à 11:34:22  profilanswer
 

Jvois pas trop comment faire ça avec des vecteurs. Pour les utiliser après je fais comment ?.

 

edit : Hourra j'ai trouvé, c'était juste un problème d'indice. x)


Message édité par Naz le 19-05-2007 à 11:38:19

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5221390
joran
nain géant
Posté le 19-05-2007 à 11:40:36  profilanswer
 

Quand tu vas remplire les matrices à inverser, il suffira juste de particulariser un peu plus le passage ou tu y met les conditions aux limites.
ça change pas fondamentalement le nombre d'opération que tu vas effectuer.


Message édité par joran le 19-05-2007 à 11:44:28

---------------
In some ways the internet is akin to Lovecraft's universe. The more you know the closer insanity comes.
n°5223338
Naz
Censurez moi.
Posté le 22-05-2007 à 20:15:25  profilanswer
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. main()
  5. {
  6. int n=9,m=9,i,j,k,c=15,t_etoile=4,T=10,p=200;
  7. float u_etoile[n+2][n+2],u_instant_avant[n+2][n+2],u_instant_apres[n+2][n+2];
  8. float dy,dt,dx,x=0,y=0,t,f,u0[n+2][n+2];
  9. float ucl[n+2][n+2];
  10. float Aj[n+2][n+2];
  11. float Ai[n+2][n+2];
  12. float bi[n+2];
  13. float bj[n+2];
  14. float n1;
  15. float n2;
  16. dx=1.0/(n+1);
  17. dy=1.0/(m+1);
  18. dt=(float)T/p;
  19. n1=(float)0.5*dt/((dx)*(dx));
  20. n2=(float)0.5*dt/((dy)*(dy));
  21. printf ("Bienvenue dans ce fucking CLANU \n" );
  22. ////////// 1ere ETAPE : PASSAGE de u_k à u*
  23. for (k=0 ; k<p+1 ; k=k+1)
  24. {
  25.     for (x=0 ; x<1+dx ; x=x+dx)
  26.     {
  27.         for (y=0 ; y<1+dy ; y=y+dy)
  28.         {
  29.             i=10*x;
  30.             j=10*y;
  31.          
  32. // Calcul des valeurs de la fonction f
  33. t=k*(dt);
  34. f=c*exp(-((x-0.8)*(x-0.8)+(y-0.8)*(y-0.8)))*exp(-(t-t_etoile)*(t-t_etoile));
  35. //
  36. // Conditions initiales     
  37. if (x+y>1) u0[i][j]= exp(1-x-y);
  38. else u0[i][j]=1;
  39. // Conditions aux limites
  40. ucl[i][j]=0;
  41. ucl[0][0]=1;
  42. ucl[0][j]=1;
  43. ucl[i][0]=1;
  44. ucl[n+1][j]= exp(-y);
  45. ucl[i][n+1]= exp(-x); 
  46. ucl[n+1][n+1]= exp(-1);
  47.  
  48. u_instant_avant[i][0]=ucl[i][0];
  49. u_instant_avant[i][n+1]=ucl[i][n+1];
  50. //
  51. // Remplissage de Aj     
  52. Aj[i][j]=0;
  53. Aj[i][i]=1+2*n1;
  54. if (j==(i+1)) Aj[i][j]=-n1;
  55. if (i==(j+1)) Aj[i][j]=-n1;                     
  56. //
  57. // Remplissage de bj
  58. bj[i]=(u_instant_avant[i][j] + n2*( (u_instant_avant[i][j-1]) + (u_instant_avant[i][j+1]) - 2*(u_instant_avant[i][j]) ) + (0.5*(dt)*f) );
  59. bj[0]=(u_instant_avant[i][j] + n2*( (u_instant_avant[i][j-1]) + (u_instant_avant[i][j+1]) - 2*(u_instant_avant[i][j]) ) + (0.5*(dt)*f) + n1*(ucl[0][j]) ); 
  60. bj[n+2]=(u_instant_avant[i][j] + n2*( (u_instant_avant[i][j-1]) + (u_instant_avant[i][j+1]) - 2*(u_instant_avant[i][j]) ) + (0.5*(dt)*f) + n1*(ucl[n+1][j]) ); 
  61. //
  62.         }
  63.        
  64.     }
  65. }
  66. //////////////////////////////////////////////////////Fin étape 1
  67. //Test de u0 :
  68. printf("\nAffichage de u0 \n \n" );
  69. for(x=0 ; x<1+dx ; x=x+dx)
  70. {
  71. for(y=0 ; y<1+dy ; y=y+dy)
  72.         {
  73.             i=10*x;
  74.             j=10*y;
  75.          printf("%f ", u0[i][j]);
  76. }
  77. printf("\n" );
  78. }
  79. //Test de Ai
  80. printf("\nAffichage de Aj \n \n" );
  81. for(x=0 ; x<1+dx ; x=x+dx)
  82. {
  83. for(y=0 ; y<1+dy ; y=y+dy)
  84.         {
  85.             i=10*x;
  86.             j=10*y;
  87.          printf("%f ", Aj[i][j]);
  88. }
  89. printf("\n" );
  90. }
  91. //Test de bi
  92. printf("\nAffichage de bj \n \n" );
  93. for(x=0 ; x<1+dx ; x=x+dx)
  94. {
  95.             i=10*x;
  96.          printf("%f ",bj[i]);
  97. printf("\n" );
  98. }
  99. getch();
  100. }
  101. float Choleski (float A[][n], int n, float H[])
  102. {
  103. int I=0,J,K,L,M;       
  104. float B[n][n], X[n], Y[n], S;
  105. int Bool=1;       
  106. for (I=0 ; I<=n-1 ; I++)
  107.     {S=0;
  108.      for (K=0 ; K<=I-1 ; K++)
  109.          {S=(S+(B[I][K]*B[I][K]));
  110.          }
  111.      if (A[I][I]-S>0)
  112.         {B[I][I]=sqrt(A[I][I]-S);
  113.          for (J=I+1 ; J<=n-1 ; J++)
  114.              {S=0;
  115.               for (K=0 ; K<=I-1 ; K++)
  116.                   {S=S+(B[I][K]*B[J][K]);
  117.                   }
  118.               B[J][I]=(A[I][J]-S)/B[I][I];
  119.               }
  120.          for (L=0 ; L<=n-2 ; L++)
  121.               {for (M=I+1 ; M<=n-1 ; M++)
  122.      {B[L][M]=0;
  123.      }
  124.               }
  125.          }
  126.      else
  127.          {Bool=0;
  128.          }
  129.      }
  130. // Boucle pour afficher B (décomposée de Choleski)
  131. for (I=0 ; I<=n-1 ; I++)
  132.  {for (J=0; J<=n-1 ; J++)
  133.    {
  134. printf("B[%d][%d]=%f   ",I,J,B[I][J]);
  135.    }
  136. printf("\n" );
  137.  }
  138. if (Bool==0)
  139. {printf("\n\nResolution impossible" );
  140. }
  141. else
  142. {printf("\n\nResolution de By=h" );
  143. Y[0]=H[0]/(B[0][0]);
  144. for (I=1 ; I<=n-1 ; I++)
  145. {S=0;
  146.  for (K=0 ; K<=I-1 ; K++)
  147.    {S=S+(B[I][K])*Y[K];
  148.    }
  149.  Y[I]=(H[I]-S)/B[I][I];
  150.  }
  151. printf("\nY=\n" );
  152. for (I=0 ; I<=n-1 ; I++)
  153.  {printf("   %f\n",Y[I]);
  154.  }
  155. printf("\n\nResolution de B trans x = y" );
  156. X[n-1]=Y[n-1]/(B[n-1][n-1]);
  157. for (I=n-2 ; I>= 0 ; I--)
  158.    {S=0;
  159.     for (K=I+1 ; K <= n-1 ; K++)
  160.         {S=S+(B[K][I])*X[K];
  161.         }
  162.      X[I]=(Y[I]-S)/(B[I][I]);
  163.      }
  164. printf("\nX=\n" );
  165. for (I=0 ; I<=n-1 ; I++)
  166.  {printf("   %f\n",X[I]);
  167.  }   
  168.    
  169.     }
  170.    
  171. }


 
Bon j'ai un soucis, je sais pas comment faire passer la valeur de n quand je déclare celui dans la ligne  
 
float Choleski (float A[][n], int n, float H[])
 
il me met une erreur.


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223351
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:22:19  profilanswer
 

C'est normal, sauf erreur de ma part, en C, c'est syntaxiquement incorrect: tu transmet un tableau à deux dimensions float A[][] sans préciser les tailles (enfin, il me semble, s'loin le C, moi j'utilise types List ^^).

 

Quoiqu'il en soit, ton n, tu l'as déjà, vu que tu le passes comme paramètre à côté, donc je vois pas trop ton problème ?

 

Et sinon, chelou ton indentation, a moins que ce soit les balises code qui font ça ?

 

Nuage.

 

EDIT:

Code :
  1. float u_etoile[n+2][n+2]

Ca marche ça ?!
De manière beaucoup plus simple, déclare ton n comme constante globale à ton programme, et c'est marre...


Message édité par Nuage le 22-05-2007 à 20:23:38
n°5223353
Naz
Censurez moi.
Posté le 22-05-2007 à 20:24:01  profilanswer
 

Indentation ? :hmm:

 

Bah en fait, dans le main, je rentre la valeur de n. Et je veux que la matrice que je passe dans cette fonction soit de taille n,n. J'ai du mal à voir ce que je dois mettre dans les parenthèses de la fonction choleski.

 

edit : Oui tout le reste fonctionne, j'essaye juste d'implémenter la fonction dans le programme.
Tu pourrais m'expliquer comment je le déclare comme constante globale mais ce après avoir demandé la valeur souhaitée à l'utilisateur ? :p


Message édité par Naz le 22-05-2007 à 20:25:09

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223361
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:26:32  profilanswer
 

Euh, oui, Indentation.

 

Je comprend pas ton problème, en soit. Ta matrice, elle est définie ailleurs, tu la passe en param, elle va pas changer de taille toute seule ? La seule chose qui compte, c'est le nombre d'itération que tu fait dans tes boucles pour la parcourir.

 

Nuage.

 

EDIT: Si tu déclare une valeur comme constante, tu peux pas la modifier par la suite (c'est le principe des constantes, en soit). Je savais pas que tu voulais pouvoir la faire modifier à la volée par l'utilisateur. Je te conseille de faire une première version qui marche avec des matrices de taille fixe; après, tu vas devoir utiliser des petites fonctions merveilleuses pour allouer toi même la mémoire nécessaire à ta matrice. Ah, les joies du C et des langages où tu contrôle toi même ces choses !


Message édité par Nuage le 22-05-2007 à 20:28:07
n°5223364
Naz
Censurez moi.
Posté le 22-05-2007 à 20:28:17  profilanswer
 

Donc en fait je peux enlever les indices "[]" et tout simplement lui renvoyer la matrice directement ?


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223365
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:29:31  profilanswer
 

Bah tu lui passes en argument

Code :
  1. float A[][]

et sauf erreur de ma part ça devrait marcher.

 

Rho, et puis sinon tu passes un pointeur float** A, et tu parcours ça bourrinement, et puis voila :p

 

Nuage, qui aime pas le C.


Message édité par Nuage le 22-05-2007 à 20:29:40
n°5223367
Naz
Censurez moi.
Posté le 22-05-2007 à 20:31:21  profilanswer
 
n°5223368
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:33:39  profilanswer
 

Rha, mais ça daube vraiment le C ^^
 
Et avec

Code :
  1. float A[n][]

?
 
Nuage, purée c'est loin, ces souvenirs.

n°5223371
Naz
Censurez moi.
Posté le 22-05-2007 à 20:35:36  profilanswer
 

Citation :

`n' undeclared here (not in a function)  


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223372
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:39:19  profilanswer
 

=)
 
J'adore.
Hmmm... Passer un pointeur vers un pointeur ( float** A ), et ta taille à côté ( int n, si je ne m'abuse, elle est bien carrée ta matrice ?) et après tu fait tout pareil.
 
Rha. Et après on me demande pourquoi j'aime pas le C :o
 
Nuage.

n°5223376
Naz
Censurez moi.
Posté le 22-05-2007 à 20:41:28  profilanswer
 

Oui elle est bien carrée ma matrice.

 


edit : Question :
Je peux déclarer une variable, faire un scanf pour que l'utilisateur choisisse sa valeur, puis déclarer d'autres variables derrière qui utilisent la variable scannée ?


Message édité par Naz le 22-05-2007 à 20:43:15

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223377
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:42:51  profilanswer
 

Beh, roule, alors. Tu passes ton tableau sous forme d'un pointeur histoire de pas se saouler, tu passes ton n, et tu le parcours normalement, et ça devrait passer.... non ?
 
Nuage.

n°5223382
Naz
Censurez moi.
Posté le 22-05-2007 à 20:49:01  profilanswer
 

Bon, le code se compile et fonctionne, donc la fonction est bien écrite. Maintenant j'ai un autre soucis, quand je déclare ma fonction (avant le main() donc) et que je balance que je l'utilise, je reçois ça :

 
Citation :


syntax error before "main"
conflicting types for 'Choleski'
previous implicit declaration of 'Choleski' was here

 

:tired:


Message édité par Naz le 22-05-2007 à 20:49:12

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223384
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:51:35  profilanswer
 

Euh.

 

Dans ton prototype, bêtement, ta fonction est bien déclarée exactement de la même manière que dans ton code après ?

 

Sinon, euh, tu fait pas de prototype, et tu met le code de ta fonction avant ton main ^^

 

Nuage.


Message édité par Nuage le 22-05-2007 à 20:51:52
n°5223386
Naz
Censurez moi.
Posté le 22-05-2007 à 20:52:51  profilanswer
 

C'est quoi que tu appelle prototype ? :p

 

edit : Ah oui si je le mets avant le main ça marche :p
edit² : Bon bah ça a l'air d'être bon, merchi Nunu :jap:


Message édité par Naz le 22-05-2007 à 20:55:07

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223388
Nuage
Profil : Modérateur
Posté le 22-05-2007 à 20:55:39  profilanswer
 

Eh bah tu vois, avec un peu de motivation, ça se gére :p
 
Nuage.

n°5223389
Naz
Censurez moi.
Posté le 22-05-2007 à 20:56:03  profilanswer
 

Vi c'est beaucoup de bidouille quand même ~.~


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223393
Flolou
Less is More
Posté le 22-05-2007 à 20:56:45  profilanswer
 

Dans le prototype d'une fonction le paramètre d'un tableau attend d'avoir la taille pour chaque dimmension à partir de la seconde :
tab[][1][2] etc... si  tu mets tab[n] ça marche pas à moins de définir n comme macro -> #define n 10
Enfin bon il attend un nombre de toute manière.


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°5223394
Naz
Censurez moi.
Posté le 22-05-2007 à 21:01:58  profilanswer
 

Citation :


main()
{
int n;
printf("Entrez le nombre de colonnes pour la matrice initiale" );
scanf("%f",n);
int m=9,i,j,k,c=15,t_etoile=4,T=10,p=200;
float u_etoile[n+2][n+2],u_instant_avant[n+2][n+2],u_instant_apres[n+2][n+2];
float dy,dt,dx,x=0,y=0,t,f,u0[n+2][n+2];
float ucl[n+2][n+2];
float Aj[n+2][n+2];
float Ai[n+2][n+2];
float bi[n+2];
float bj[n+2];
float n1;
float n2;

 

Quand j'exécute le programme, il plante, pourquoi ? :hmm:


Message édité par Naz le 22-05-2007 à 21:02:25

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223398
Flolou
Less is More
Posté le 22-05-2007 à 21:04:57  profilanswer
 

main() -> comportement indéterminé
-> int main(void) ou int main(int argc, char * argv[])
 
scanf("%d",&n);
 
Ya ça déjà.


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°5223404
Naz
Censurez moi.
Posté le 22-05-2007 à 21:11:13  profilanswer
 

Wtf. xD

 

edit : En tout cas ça marche. xD


Message édité par Naz le 22-05-2007 à 21:12:55

---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223463
kypper_667
Im'avalounède, lol.
Posté le 22-05-2007 à 22:30:53  profilanswer
 

Mon Dieu, ce topic s'est fait massacrer.
 
Je peux aider ? J'ai un peu de temps libre o//

Message cité 1 fois
Message édité par kypper_667 le 22-05-2007 à 22:31:32

---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°5223468
Flolou
Less is More
Posté le 22-05-2007 à 22:40:33  profilanswer
 

Tu voulais pas te faire payer toi?


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°5223519
kypper_667
Im'avalounède, lol.
Posté le 23-05-2007 à 00:25:01  profilanswer
 

Non xD C'est Naz' qui voulait payer xD
 
Moi j'suis open o//


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°5223576
Naz
Censurez moi.
Posté le 23-05-2007 à 02:46:52  profilanswer
 

Bah apparemment ça fonctionne. Par contre tu peux jeter un oeil aux indices, ça déconne :p


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223614
CdE
๏̯͡๏) ๏̯͡๏) ๏̯͡๏) ๏̯͡๏)
Posté le 23-05-2007 à 07:02:16  profilanswer
 

kypper_667 a écrit :

Mon Dieu, ce topic s'est fait massacrer.
 
Je peux aider ? J'ai un peu de temps libre o//


 
Moi j'aurais besoin de ta fonction ls recodée sous bash si tu l'as encore, on a un truc +- similaire à faire ça me ferait un truc à adapter :D

n°5223620
guigolum
noone can stop us now
Posté le 23-05-2007 à 07:49:50  profilanswer
 

@naz: tu devrais pas passer ta matrice par pointeur? ça serait BEAUCOUP plus rapide que de la copier(surtout si l'appel est frequent)

 

et peut etre qu'en c les pointeurs de matrice n'ont pas besoin de recuperer les tailles?

 

si tu veux modifier en cours de route ta matrice, il te FAUT une structure dynamique(donc, la memoire des variables est allouée en cours d'execution et non pas au lancement du programme, avec malloc(size))

 

edit: pour scanf tu rajoutes un & à la variable dans laquelle tu stocke l'entrée de l'utilisateur(en fait tu passes par reference, ça evite de recopier les grosses données); et tu mets entre guillemets le type de la variable(d pour..un decimal?) précédé de %
scanf = scan formatté(je sais pas si c'est la definition, mais gardes ça en tete ^^)

 

tiens peut etre que ça pourrait t'aider:
http://gilles.chagnon.free.fr/cours/cgi/cours2.html


Message édité par guigolum le 23-05-2007 à 07:57:08

---------------
il y a ceux qui s'etonnent, qui s'affolent et questionnent; les autres s'en tamponnent tellement la beuh est bonne;
laissez bruler la weed, et n'oubliez personne; dans la fumée des dieux s'effondre babylone..
le libéralisme, c'est la course à l'ovule : pour qu'une personne reussise, un millier doivent crever.
n°5223659
Nuage
Profil : Modérateur
Posté le 23-05-2007 à 10:42:10  profilanswer
 

@Kyppy: Oui bon bah ça va hein, le C c'est loin, zont qu'a faire du java :o
 
@Naz: Comme on en avait parlé, si tu demande le N à l'utilisateur, tu ne peux plus déclarer ta matrice comme

Code :
  1. float A[n][n]

Il faut obligatoirement la déclarer comme étant un pointeur, que tu vas allouer dynamiquement:

Code :
  1. int n = 20;
  2. float** A;
  3. A = (float**) malloc(n * sizeof(float*) );
  4. for (int i=0; i<n; i++) {
  5.   A[i] = (float*) malloc(n * sizeof(float) );
  6. }

Si je ne m'abuse. Bon, faudrait rajouter des tout mignons contrôle d'erreurs pour que ça arrête les dégats quand il y a un problème d'allocation (ie. malloc renvoie null), mais c'est un détail (oui, je sais, Kypper, je sais, mais là, on s'en fout).
 
Et par pitié Naz, ton code, met le entre balise code, c'est totalement illisible sinon !
 
Nuage.

n°5223664
Flolou
Less is More
Posté le 23-05-2007 à 10:57:03  profilanswer
 

HuHu, en C un tableau/matrice n'est pas recopié dans une fonction mais il est traité comme un pointeur qu'il est... Pas besoin de faire chépasquoi pour modifier une matrice A[i][j] = y; ça marche où que ce soit dans ton programme (main ou fonction).
 
scanf ("%d%f%lf%c", &n, &m, &o, &c);
 
%d -> int ;%f -> float ;%lf -> double ;%c -> char ;etc...
http://man.developpez.com/man3/scanf.3.php


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°5223665
Nuage
Profil : Modérateur
Posté le 23-05-2007 à 11:01:05  profilanswer
 

Flolou a écrit :

HuHu, en C un tableau/matrice n'est pas recopié dans une fonction mais il est traité comme un pointeur qu'il est... Pas besoin de faire chépasquoi pour modifier une matrice A[i][j] = y; ça marche où que ce soit dans ton programme (main ou fonction).

Certes.  
Mais il n'empéche que quoi qu'il arrive, il a besoin de le déclarer comme étant un pointeur et d'allouer dynamiquement la mémoire lui même après que l'utilisateur ait saisi la taille Kivabien© pour la matrice.
 
Nuage.

n°5223684
Naz
Censurez moi.
Posté le 23-05-2007 à 12:17:00  profilanswer
 

Pourquoi je dois faire du dynamique, je pige pas, ça marche bien là :p


---------------
[:nazgulknight][:nazgulknight:1][:nazgulknight:2]
Viens écouter ma playlist ! (Maj le 11/06/08)
Trois morceaux d'Ephemeride en écoute. Venez jeter une oreille !
n°5223698
Nuage
Profil : Modérateur
Posté le 23-05-2007 à 12:46:58  profilanswer
 

Ca a du changer le C depuis mon époque...
Je continue de rester choqué par le

Code :
  1. float A[n+2][n+2]

Je sais pas, c'est pas naturel j'trouve :o
 
Nuage.

n°5223700
cali
Posté le 23-05-2007 à 12:49:55  profilanswer
 

pourquoi tu fais pas un malloc (n*n*sizeof(float)) tout simplement pour A ?


---------------

 Page :  1  2  3  4  5  ..  24  25  26  27  28  29

Aller à :
Ajouter une réponse