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

  FORUM HardWare.fr
  Programmation
  C

  [résolu] Modification valeur tableau bidimentionnel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Modification valeur tableau bidimentionnel

n°2259590
lolodu9512​0
Posté le 03-06-2015 à 13:37:52  profilanswer
 

Bonjour a tous, petit soucis assez banal je présume mais étant débutant (Arduino) je n'en trouve pas la solution !!!
 
 dans l'idée, je déclare un nouveau tableau 2D que j'initialise de la façon suivante :

Code :
  1. int table[8][8]={
  2.                   {0,1,2,3,4,5,6,7},
  3.                   {8,9,10,11,12,13,14,15},
  4.                   {16,17,18,19,20,21,22,23},
  5.                   {24,25,26,27,28,29,30,31},
  6.                   {32,33,34,35,36,37,38,39},
  7.                   {40,41,42,43,44,45,46,47},
  8.                   {48,49,50,51,52,53,54,55},
  9.                   {56,57,58,59,60,61,62,63}
  10.                  };


mon soucis c'est que j'aimerais trouver une façon aussi simple a écrire mais pouvoir changer les valeurs plus tard dans le programme.
 
si je tape :

Code :
  1. table[][] = {
  2.               {9,8,7,6 .....},
  3.               {.............},
  4.               {.............},
  5.               {.............},
  6.              };


cela ne fonctionne pas !
 
pourriez vous S.V.P. m'indiquer une façon aussi simple de modifier manuellement toutes les valeurs du tableau sans utiliser de boucle.
(les nouvelles valeurs a affecter sont complètement aléatoires et n'ont aucunes logique mathématique, c'est moi qui décide des nombre a rentrer ....)
 
Merci d'avance, bonne journée !


Message édité par lolodu95120 le 04-06-2015 à 13:05:49

---------------
Laurent M.
mood
Publicité
Posté le 03-06-2015 à 13:37:52  profilanswer
 

n°2259591
rat de com​bat
attention rongeur méchant!
Posté le 03-06-2015 à 13:49:50  profilanswer
 

C'est pas du C++ ça, juste du C.
 
Déjà ta syntaxe pour déclarer le tableau n'est pas bonne. Ton compilateur devrait t'avertir, sinon il est mal réglé!
 

Code :
  1. int table[3][3] = { {0,1,2}, {3,4,5}, {6,7,8} };


Trop fainéant pour faire un 8x8 mais c'est le même principe, tu peux rajouter des sauts de ligne.
 
Pour le problème en soi tu peux mettre tes nouvelles valeurs dans un autre tableau puis le copier dans ton premier (table) avec memcpy.

Code :
  1. #include <string.h>
  2. int table[3][3] = { {0,1,2}, {3,4,5}, {6,7,8} };
  3. int table2[3][3] = { {42,43,7}, {3,4,5}, {6,7,8} };
  4. memcpy(table, table2, sizeof(table));

n°2259603
lolodu9512​0
Posté le 03-06-2015 à 14:32:33  profilanswer
 


Ok merci pour les infos....

 

mais si je doit changer 20 fois les valeurs de mon tableau je doit donc faire 20 tableaux différents ?

 

Le but étant, le tableau prend certaines valeurs, je les utilises.... puis je modifie les valeurs et les réutilises ! ainsi de suite....

 

sachant que mon tableau est utilisé en paramètre envoyé dans une fonction, j'ai donc besoin que ce soit le même tableau qui change de valeurs.

 

Merci par avance de vous pencher sur mon soucis.


Message édité par lolodu95120 le 03-06-2015 à 14:43:43
n°2259621
gilou
Modérateur
Modzilla
Posté le 03-06-2015 à 15:52:52  profilanswer
 

Ben tu modifies l'élément table[i][j] en lui assignant une autre valeur, je vois pas ou est le pb.
 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2259625
lolodu9512​0
Posté le 03-06-2015 à 16:31:59  profilanswer
 

Oui, j'en suis arrivé à la même conclusion, mais je ne trouve pas cette méthode très pratique ni esthétique.
 
Ceci dit je ne penses pas avoir d'autres solution que du faire :

Code :
  1. table[0][0]= 0 ;table[0][1]= 0 ;table[0][2]= 0 ;table[0][3]= 0 ;table[0][4]= 0 ;table[0][5]= 0 ;table[0][6]= 0 ;table[0][7]= 0 ; 
  2. table[1][0]= 0 ;table[1][1]= 0 ;table[1][2]= 0 ;table[1][3]= 0 ;table[1][4]= 0 ;table[1][5]= 0 ;table[1][6]= 0 ;table[1][7]= 0 ;
  3. table[2][0]= 0 ;table[2][1]= 0 ;table[2][2]= 0 ;table[2][3]= 0 ;table[2][4]= 0 ;table[2][5]= 0 ;table[2][6]= 0 ;table[2][7]= 0 ;
  4. table[3][0]= 0 ;table[3][1]= 0 ;table[3][2]= 0 ;table[3][3]= 0 ;table[3][4]= 0 ;table[3][5]= 0 ;table[3][6]= 0 ;table[3][7]= 0 ;
  5. table[4][0]= 0 ;table[4][1]= 0 ;table[4][2]= 0 ;table[4][3]= 0 ;table[4][4]= 0 ;table[4][5]= 0 ;table[4][6]= 0 ;table[4][7]= 0 ;
  6. table[5][0]= 0 ;table[5][1]= 0 ;table[5][2]= 0 ;table[5][3]= 0 ;table[5][4]= 0 ;table[5][5]= 0 ;table[5][6]= 0 ;table[5][7]= 0 ;
  7. table[6][0]= 0 ;table[6][1]= 0 ;table[6][2]= 0 ;table[6][3]= 0 ;table[6][4]= 0 ;table[6][5]= 0 ;table[6][6]= 0 ;table[6][7]= 0 ;
  8. table[7][0]= 0 ;table[7][1]= 0 ;table[7][2]= 0 ;table[7][3]= 0 ;table[7][4]= 0 ;table[7][5]= 0 ;table[7][6]= 0 ;table[7][7]= 0 ;


 
Sachant que chaque valeurs peut être comprise entre 0 et 255, je ne peut donc pas utiliser de boucle ...


Message édité par lolodu95120 le 03-06-2015 à 16:47:13

---------------
Laurent M.
n°2259628
par l'anne​au de l'ia
word master
Posté le 03-06-2015 à 16:51:54  profilanswer
 

Bonjour, je pense que tu dois d'abord saisir i et j pour modifier la case [i, J] et saisir en suite la valeur de la case.
Si tu veux faire l'inverse il te faut un buffer temporaire.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259629
rat de com​bat
attention rongeur méchant!
Posté le 03-06-2015 à 17:04:36  profilanswer
 

Citation :

mais si je doit changer 20 fois les valeurs de mon tableau je doit donc faire 20 tableaux différents ?


Et alors? Faut bien stocker les nombres quelque part, que tu fasses 20 tableaux ou 20x8x8 assignations ça ne changera pas grand chose (sauf au niveau lisibilité!). Par contre si il n'y a que quelque valeurs qui changent à chaque modification là c'est autre chose.
 

Citation :


sachant que mon tableau est utilisé en paramètre envoyé dans une fonction, j'ai donc besoin que ce soit le même tableau qui change de valeurs.


Selon le code tu peux aussi appeller ta fonction avec un autre tableau en paramètre.

n°2259636
gilou
Modérateur
Modzilla
Posté le 03-06-2015 à 19:15:16  profilanswer
 

Par contre, s'il veut tout remettre d'un coup a zero dans son tableau, avant de modifier juste certaines valeurs, il peut faire:
memset(&table[0], 0, sizeof(table));
 
A+,


Message édité par gilou le 03-06-2015 à 19:19:34

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2259678
lolodu9512​0
Posté le 04-06-2015 à 13:02:30  profilanswer
 

Merci a tous pour vos propositions c'est sympas, je pense que je vais passer les différents tableaux créés en paramètre de fonction.
 
Si jamais vous avez d'autres possibilités n’hésitez pas a les proposer ça pourras toujours servir a quelqu'un.


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

  [résolu] Modification valeur tableau bidimentionnel

 

Sujets relatifs
Bouton "enregistrer" qui reporte valeur dans autre feuille[Access] Tableau de bord
Tableau et ComptageRécupérer valeur dans un tableau avec boucle sous VBA
Comment mettre une valeur intermédiaire en hexa ?tableau et matrice
[résolu] Problème de récupération d'une valeur en BDDCharger fichier txt dans tableau
Récupérer une valeur numérique pour un ping 
Plus de sujets relatifs à : [résolu] Modification valeur tableau bidimentionnel


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