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

  FORUM HardWare.fr
  Programmation
  C++

  Jte défi de remplir un tableau!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Jte défi de remplir un tableau!

n°949024
bonyama
Posté le 08-01-2005 à 12:17:11  profilanswer
 

Voila tit défi, comment faire pour remplir un tableau pour qu il ait ce contenu :
 
Pour un tableau de 3x3:
 
1 2 3
8 0 4
7 6 5
 
Pour un tableau de 4x4 :
 1  2  3  4
12 13 14  5
11  0 15  6
10  9  8  7
 
Dernier exemple pour ceux qui aurait pas encore compris :)
Tableau de 5x5:
 
  1  2  3  4  5
 16 17 18 19  6
 15 24  0 20  7
 14 23 22 21  8
 13 12 11 10  9
 
Voila le défi : remplir un tableau ressemblant a une spirale :D

mood
Publicité
Posté le 08-01-2005 à 12:17:11  profilanswer
 

n°949056
Giz
Posté le 08-01-2005 à 12:34:52  profilanswer
 

jvois pas ce qu'il y a de compliqué dans ton truc inutile :heink:
C'est juste de la bonne manipulation de tableau et d'indice :)
...juste bon pour une introduction à l'algorithmie :o

n°949081
xterminhat​e
Si vis pacem, para bellum.
Posté le 08-01-2005 à 12:58:33  profilanswer
 

Même défi, mais en meta programmation pour ceux qui suivent ;-)


---------------
Cordialement, Xterm-in'Hate...
n°949082
Worldofdad​a
Posté le 08-01-2005 à 12:59:44  profilanswer
 

kler, pas grand intéret et pas tres compliqué ....
 
dis de suite si c'est un jeu ou si t'en as besoin .... (je vais pas réfléchir 5 minutes pour rien du tout)
 
 

n°949092
bonyama
Posté le 08-01-2005 à 13:18:35  profilanswer
 

boah un defi est tjrs stupide de base ><

n°949096
skeye
Posté le 08-01-2005 à 13:22:59  profilanswer
 

Ce serait pas un exercice, par hasard? [:itm]


---------------
Can't buy what I want because it's free -
n°949101
bonyama
Posté le 08-01-2005 à 13:29:51  profilanswer
 

OU2 bon on oublie jai reussi tout est bien qui finit bien \o/
 
bonnejournée a tous ;)

n°949333
ToxicAveng​er
Posté le 08-01-2005 à 21:37:43  profilanswer
 

bonyama a écrit :

OU2 bon on oublie jai reussi tout est bien qui finit bien \o/
 
bonnejournée a tous ;)


 
 
C'etait donc bien un exo... [:greenleaf]

n°949356
blackgodde​ss
vive le troll !
Posté le 08-01-2005 à 22:23:41  profilanswer
 

xterminhate a écrit :

Même défi, mais en meta programmation pour ceux qui suivent ;-)


 
 
voila un essai :
 

Code :
  1. template<bool cond, typename true_part, typename false_part>
  2. struct IF
  3. {
  4. typedef true_part type;
  5. };
  6. template<typename true_part, typename false_part>
  7. struct IF<false, true_part, false_part>
  8. {
  9. typedef false_part type;
  10. };
  11. template<size_t x, size_t y, size_t to_add>
  12. struct remplir_dernier
  13. {
  14. template<size_t X>
  15. static void exec(int tab[X][X])
  16. {
  17.  tab[to_add+x][to_add+y] = 0;
  18. }
  19. };
  20. template<size_t taille, size_t pos_x, size_t compteur, size_t to_add>
  21. struct remplir_haut
  22. {
  23. template<size_t X>
  24. static void exec(int tab[X][X])
  25. {
  26.  tab[to_add+pos_x][to_add] = compteur;
  27.  IF<pos_x == taille-1,
  28.   remplir_droite<taille, 1, compteur+1, to_add>,
  29.   remplir_haut<taille, pos_x+1, compteur+1, to_add>
  30.  >::type::exec<X>(tab);
  31. }
  32. };
  33. template<size_t taille, size_t pos_y, size_t compteur, size_t to_add>
  34. struct remplir_droite
  35. {
  36. template<size_t X>
  37. static void exec(int tab[X][X])
  38. {
  39.  tab[to_add+taille-1][to_add+pos_y] = compteur;
  40.  IF<pos_y == taille-1,
  41.   remplir_bas<taille, taille-2, compteur+1, to_add>,
  42.   remplir_droite<taille, pos_y+1, compteur+1, to_add>
  43.  >::type::exec<X>(tab);
  44. }
  45. };
  46. template<size_t taille, size_t pos_x, size_t compteur, size_t to_add>
  47. struct remplir_bas
  48. {
  49. template<size_t X>
  50. static void exec(int tab[X][X])
  51. {
  52.  tab[to_add+pos_x][to_add+taille-1] = compteur;
  53.  IF<pos_x == 0,
  54.   IF<taille == 2,
  55.    remplir_dernier<0, 1, to_add>,
  56.    remplir_gauche<taille, taille-2, compteur+1, to_add>
  57.   >::type,
  58.   remplir_bas<taille, pos_x-1, compteur+1, to_add>
  59.  >::type::exec<X>(tab);
  60. }
  61. };
  62. template<size_t taille, size_t pos_y, size_t compteur, size_t to_add>
  63. struct remplir_gauche
  64. {
  65. template<size_t X>
  66. static void exec(int tab[X][X])
  67. {
  68.  tab[to_add][to_add+pos_y] = compteur;
  69.  IF<pos_y == 1,
  70.   IF<taille == 3,
  71.    remplir_dernier<to_add+1, 0, 0>,
  72.    remplir_haut<taille-2, 0, compteur+1, to_add+1>
  73.   >::type,
  74.   remplir_gauche<taille, pos_y-1, compteur+1, to_add>
  75.  >::type::exec<X>(tab);
  76. }
  77. };
  78. #include <iostream>
  79. #include <iomanip>
  80. const size_t tab_taille = 5;
  81. int tab[tab_taille][tab_taille];
  82. int main()
  83. {
  84. remplir_haut<tab_taille, 0, 1, 0>::exec<tab_taille>(tab);
  85. //std::cout.fill('0');
  86. for(size_t i = 0; i<tab_taille; i++)
  87. {
  88.  for(size_t j=0; j<tab_taille; j++)
  89.   std::cout << std::setw(2) << std::right << tab[j][i] << ' ';
  90.  std::cout << '\n';
  91. }
  92. std::cin.ignore();
  93. }


---------------
-( BlackGoddess )-

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

  Jte défi de remplir un tableau!

 

Sujets relatifs
CSS vs layout tableautableau triable en ligne
tableau triable en lignebouton à positionner dans tableau
[C] Tableau dynamiqueintégrer un tableau
Défi: optimisation d'une fonction de convertion (Bin => Dec)Enregistrer dans un fichier un tableau de structure
Tableau a double entréeComment faire pour qu'une fonction renvoie un tableau?
Plus de sujets relatifs à : Jte défi de remplir un tableau!


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