CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

tableau ou pounteur?

clmin
clmin
Niveau 4
28 avril 2005 à 16:05:30

Salut tout le monde, comme promi je reviens vous casser les pieds :fier:

Voici mon probleme:

( Je rappelle que je travaille en C)

Dans le cadre de mon jeu, je dois faire le bilan des force de chaque planetes sur chaque planete.
Pour cela j´utilise un tableau nb_planetes*nb_planetes.

Ca donne

F1/1 F1/2 . .. F1/n
F2/1 F2/2 . .. F2/n
. .. . .. . .. . ..
Fn/1 Fn/2 . .. Fn/n

Jusque la pas de probleme...

Oui, mais chaque force est un vecteur, donc composée de deux elements!

Ma question est:
Est-il possible de faire un tableau n*n*2 ( 3 dimensions), qqch comme
int F[n][n][2]?
Ou bien dois-je obligatoirement utiliser des pointeurs ( pour lesquels j´ai un peu beaucoup de mal, a vrai dire)?

Voila, merci a ceux qui pouront repondre

fil_razorback
fil_razorback
Niveau 10
28 avril 2005 à 16:12:11

Je fais pas de C, mais en actionscript un tableau a trois dimensions est viable; pourquoi pas en C?

kufa
kufa
Niveau 9
28 avril 2005 à 16:12:22

au lieu d utiliser un int tu peux utiliser un struct { int x; int y; } .

LGV
LGV
Niveau 28
28 avril 2005 à 16:15:28

des tableaux SONT des pointeurs ; les tableaus multi-dimensions sont a bannir pour de nombreuses raisons ( fragmentation, embrouillage d´indices, etc.)
fait toi des struct pour travailler en vectoriel, ce sera autrement plus clair

Pseudo supprimé
Pseudo supprimé 28 avril 2005 à 16:16:16

Et vive les listes chaînées !

fil_razorback
fil_razorback
Niveau 10
28 avril 2005 à 16:17:33

Bon ben moi jvais me pendre :-)

clmin
clmin
Niveau 4
28 avril 2005 à 16:26:46

LGV > C´est gentil ca, mais ca fait BEAUCOUP de vacteur, parce que ca me ferait n² vecteur plus ( si les matrices sont egalement a banir) 3*n vecteurs pour les 3 variables par planetes variables dont je n´ai pas parlé ici mais qui sont également sous formes de vecteur ( x,y)...

C´est faisables mais je risque encore plus de m´embrouiller!

Meme s´l faut l´eviter, il n´existe pas de structure tableau multi-dimensionel?

hitman_alias_47 > :gne:
( j´ai commencer le C et la programmation en géneral il y a tout juste trois jours)

Ruffi
Ruffi
Niveau 9
28 avril 2005 à 16:27:28

Moi je serai plutot partant pour une petite struct comme l´a dit kufa

Suivi d´un tableau a une dimension emulant un tableau a 2 dimention.

genre :
typedef struct { int x; int y; } myStruct;

myStruct array[nb_planetes*nb_planetes];

et pour avoir la valeur x de l´element { i;j } :
array[i+nb_planetes*j].x

clmin
clmin
Niveau 4
28 avril 2005 à 16:31:42

kufa, ruffi> Pouvez-vous détailler?
Je ne connais pas ce genre de structure
:merci:

Ruffi
Ruffi
Niveau 9
28 avril 2005 à 16:39:25

Pour comprendre les structure, je te conseil de lire ça : http://www.commentcamarche.net/c/cstruct.php3
C´est bien expliqué ::

thesuperbest
thesuperbest
Niveau 8
28 avril 2005 à 16:40:52

Tu fais :

/ / Tu définis une structure vecteur :
typedef struct vecteur
{
int x;
int y;
};

/ / Tu déclares un tableau bidimensionnel de vecteur :
vecteur tableau[nb_planetes1][nb_planetes2];

/ * pour accéder à la valeur en x du vecteur de la force de la planete 3 sur la planete 5, tu utilisera tableur[3-1][5-1].x */

jejej
jejej
Niveau 9
28 avril 2005 à 16:40:55

la structure ´mastructure´ contiend deux donnees , x et y .
donc , faire un tableau de mastructure revient a faire un tableau de x et y en meme temps en gros .

" et pour avoir la valeur x de l´element { i;j } :
array[i+nb_planetes*j].x "

si c´est ca qui bloque :
pense a un tableau a deux dimensions : pour acceder à l´element x,y , on a juste a faire

array[x][y] ok ?

mais , dans ton cas , c´est un tableau a une seule dimensions , comme si c´etait une ligne de cases .
et la case array[x][y] d´un tableau a deux dimensions se trouve à la case array[i+nb_planetes*j] d´un tableau simple dimension .

ensuite , le ´.x´ correspond à la valeur de l´int x de ta structure ´ mastructure´ .

Je trouve ça hallucinant de devoir faire un jeu en un mois , peut etre que ton prof pense que vous avez deja fait de la programmation ? ils en disent quoi les autres de ta classe ?

Ruffi
Ruffi
Niveau 9
28 avril 2005 à 16:47:47

Le principe du tableau a 2 dimension " emulé" avec un tableau a 1 dimension est simple.

petit schema explicatif :
avant, dans un tableau [4][3]
ABCD
EFGH
IJKL

maintenant dans un tableau [4*3]
ABCDEFGHIJKL

Ainsi, en connaissant la taille de la premiere dimension ( ici 4) il est facile de recuperer n´importe quel element du tableau

Cela est plus rapide car si tu a besoin de parcourir le tableau, tu peut le faire sans avoir à te balader un peu partout dans la memoire.

je sais pas si j´ai été assez clair :)
Si tu a d´autre questions, n´hesite pas

Ruffi
Ruffi
Niveau 9
28 avril 2005 à 16:50:51

Oups, j´ai fait un tableau [3][4] au lieu de [4][3]

rectification :

avant, dans un tableau [4][3]
ABC
DEF
GHI
JKL

Ainsi, en connaissant la taille de la premiere dimension ( ici 3) il est facile de recuperer n´importe quel element du tableau

clmin
clmin
Niveau 4
28 avril 2005 à 16:52:49

Merci beaucoup, je pense que je devrais y arriver.
jejej > En fait j´ai du prendre l´uv algorithme pour valider mon semestre, mais je suis en mesters MATH.

Ca viens du fait que, n´ayant pas fait ma licence ds la meme fac, je n´ai pas exactement le meme nombre d´uv.
Les autres en math ont fait qqch d´equivalent en licence ( et de plus facile).

Du coup je me retrouve seule matheuse ds un cours ou tt les autres sont en master informatique!

Ils ont deja une licence info et suivent des cours de C, pascal, java et je ne sait quoi d´autre depuis 4 ans ( et en plus ce sont des matieres qu´ils aiment).

Normalement le projet est en binome, mais c´est pas obligatoire; de plus mon niveau est tellement inferieur a celui des autres, que je me reposerait sur eux, ne serait-ce que pour ne pas tout saboter...

Donc au lieux de leur casser les pieds ( de toute facons on n´a jamais les meme horaires, je connais a peine leurs noms), je casse les pieds des forumers! :-p

Cela dit, c´etait un mois lorsqu´on nous a donner le projet: c´est pour la semaine de la rentré

jejej
jejej
Niveau 9
28 avril 2005 à 16:59:26

ok :)
et , ça avance bien ?

clmin
clmin
Niveau 4
28 avril 2005 à 17:02:59

Ca va, je devrais y arriver dans les temps.
Le fait que je pense ca est deja un GROS progres :lol:

tomtomclancy
tomtomclancy
Niveau 9
28 avril 2005 à 18:16:40

de plus mon niveau est tellement inferieur a celui des autres, que je me reposerait sur eux, ne serait-ce que pour ne pas tout saboter...

:ok: j´admire, si une fille de mon groupe de projet avait pu faire comme toi, au lieu de tout ni..
( ah les mauvais souvenir. :) )

sinon je suis du meme avis que les autre, manipule toujour des petits element quitte a faire de l´heritage et plein de structures.
tu y gagnera en rapidité d´execution, et en clarté du code.

au fait bonjour :-)))

JeanYvesYves
JeanYvesYves
Niveau 10
28 avril 2005 à 20:18:29

Tiens, je t´ai fait un exemple pour utiliser facilement un tableau 2D de vecteurs :

Regarde juste le main pour voir comment c´est utilisé : copie simplement le code du dessus dans ton programme : si tu ne le comprends pas, pas grave, l´essentiel n´est pas de le comprendre, mais de comprendre comment l´utiliser :)
Je t´ai programmé un petit truc en C pure ( aucune commande C++)

http://rafb.net/paste/results/XFF8mY61.html

clmin
clmin
Niveau 4
28 avril 2005 à 22:55:14

Merci beaucoup
JeanYvesYves > J´ai essayé ton code, il marche tres bien ds mon programme, c´est vraiment tres gentil!
( A vrai dire, je ne pense pas que j´aurais trouver toute seule)
Encore merci!

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment