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

 


Dernière réponse
Sujet : [c] Mais qu'est ce que je dois mettre?
BENB

wouatouwouatou a écrit a écrit :

Euh... dsl de contredire mais... en c, comme partout je pense, un tableau a deux dimensions... ben, c toi ki decide de ki est la ligne et ki est la colonne...
Donc, tu peux tres bien avoir matrice[colonne][ligne]... :D:D
Enfin, je pense que jai du manquer un episode... :D:D




On considere en general que les tableaux sont stockes en memoire ligne par ligne il me semble...
donc c c'est stocke dans l'ordre Mat[0][0], Mat[0][1], Mat[0][2], .... Mat [1][0],Mat[1][1],Mat[1][2],...
donc c'est mat[no ligne][no colonne] alors que en FORTRAN par exemple c'est mat(no colonne,no ligne)...
 
Bien entendu tu peux prendre comme reference que tes matrices sont rangees colonnes par colonnes. Et si tu ne fais pas de transition interlangages tu peut meme eventuellement te foutres de comment c'est range en memoire :D


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
BENB

wouatouwouatou a écrit a écrit :

Euh... dsl de contredire mais... en c, comme partout je pense, un tableau a deux dimensions... ben, c toi ki decide de ki est la ligne et ki est la colonne...
Donc, tu peux tres bien avoir matrice[colonne][ligne]... :D:D
Enfin, je pense que jai du manquer un episode... :D:D




On considere en general que les tableaux sont stockes en memoire ligne par ligne il me semble...
donc c c'est stocke dans l'ordre Mat[0][0], Mat[0][1], Mat[0][2], .... Mat [1][0],Mat[1][1],Mat[1][2],...
donc c'est mat[no ligne][no colonne] alors que en FORTRAN par exemple c'est mat(no colonne,no ligne)...
 
Bien entendu tu peux prendre comme reference que tes matrices sont rangees colonnes par colonnes. Et si tu ne fais pas de transition interlangages tu peut meme eventuellement te foutres de comment c'est range en memoire :D

wouatouwouatou Euh... dsl de contredire mais... en c, comme partout je pense, un tableau a deux dimensions... ben, c toi ki decide de ki est la ligne et ki est la colonne...
Donc, tu peux tres bien avoir matrice[colonne][ligne]... :D:D
Enfin, je pense que jai du manquer un episode... :D:D
skipcool pr le cout de la variable, je sais... ct pour expliquer...sinon le compilateur y va me faire :pt1cable:  
 
Euh, tu peux me donner une explication pour le fait qu'il me collait quand même les valeurs 7 et 9 aux bons endroits? Pasq en théorie, il fait un peu la gueule, mais sinon...
 
 :lol: la version que tu m'as sortie est la première version de mon programme... je peux te répondre qu'elle ne va pas marcher non plus.. je crois que je vais donner 2 baffes aux compil et basta!
wpk 1.c'est pas bon, en c/c++ les tableaux commecent a 0 et se terminent en n-1
 
donc les for(i=0;i<=heigh;i++)
ca va planter, remplace <= par <
 
2.A l'allocation, tu ne peux pas mettre une variable, faut que ca soit une constante =>
int matrice_piece[(WIDTH/3)-1][(HEIGHT/3)-1];  
si tu as besoin de des constantes, faits 2 autres defines.
 
3.matrice_piece[widt][0] c'est pas bon non plus, tu va te chopper un core dump => widt-1
 
4. en c : matrice_piece [ligne][colonne]
ca t'explique ton probleme
 
matrice_piece[0][0]=6;  
matrice_piece[widt-1][heig-1]=9;  
matrice_piece[0][heig-1]=7;  
matrice_piece[widt-1][0]=8;
skipcool Je craque, alors finalement je demande un tit coup de main..
voila un tit morceau de mon programme. ça plante a tous les coups..
 
quand je lance cette fonction->
voila ce qu'il me met dans le tableau matrice_piece
607
708
809
 
alors que je voudrais  
607
000
809
 
Deuxième bug
Si vous regardez le programme, vous verrez que je posséde 2 variables WIDTH et HEIGHT. Celles ci représente la taille d'une fenêtre. Je souhaite partager cette fenêtre par blocs de 3*3 pixels (d'ou la matrice_piece). Comme d'habitude, g du me planter dans l'init, pasq je sais pas s'il faut que j'y mette...
-----------------------------------------------
#define HEIGHT 9
#define WIDTH 9
 
/*WIDTH et HEIGHT devront etre mis a 210*/
 
int widt=(WIDTH/3)-1;
int heig=(HEIGHT/3)-1;
int matrice_piece[widt][heig];
int trajetx=0;
int trajety=0;
 
void init(void){
  int i,j;
  /* pr initialiser le rand */
  srand(time(0));  
  /* intialise la matrice des numeros de pieces */
  for(i=0;i<=widt;i++)
    for(j=0;j<=heig;j++)
      matrice_piece[i][j]=0;
  /* pr initialiser les coins du tableau */
  matrice_piece[0][0]=6;
  matrice_piece[widt][0]=9;
  matrice_piece[0][heig]=7;
  matrice_piece[widt][heig]=8;
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)