C++ ...
Discutez d'informatique ici !
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 27 Mar 2013, 23:46
Bonsoir,
je crée ce fil vaste car je pense que j'aurais besoin de vous au travers de mon programme qui consiste a retrouver la trajectoire des planètes à partir de rk4 (n'ayant pas des bases solides (pour pas dire nuls..))
bref, d'abord, j'aimerais savoir comment dans un tableau je peux mélanger lettres et nombres dans un même tableau, en gros un tableau du style
aaa bbbb cccc
52 25 68
87 72 59
en gros mettre les différentes planètes et leur carac. (masse, vitesse..)
merci
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 28 Mar 2013, 00:05
edit : Moment d'absence :mur: :marteau:
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 28 Mar 2013, 07:45
slt Billball,
si tu manipules des planètes tu manipules pas des int ou des string.
Tu définies ta planète...
- Code: Tout sélectionner
struct Planete{
std::string _nom;
double _masse;
};
et tu crèes simplement un tableau de planètes.
- Code: Tout sélectionner
std::vector v;
la vie est une fête

-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 28 Mar 2013, 09:05
Tu peux également créer une classe Planete alors cela permettra de créer des méthodes pour le calcul d'une force ect..
- Code: Tout sélectionner
class Planete{
public :
Planete();
double calculForce(Planete planete1, Planete planete2);
~Planete();
private :
std::string m_nom;
double m_masse;
double m_vitesse;
};
et de créer un tableau de Planete comme l'a déclaré fatal_error.
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 28 Mar 2013, 10:22
ampholyte a écrit:Tu peux également créer une classe Planete alors cela permettra de créer des méthodes pour le calcul d'une force ect..
- Code: Tout sélectionner
class Planete{
public :
Planete();
double calculForce(Planete planete1, Planete planete2);
~Planete();
private :
std::string m_nom;
double m_masse;
double m_vitesse;
};
et de créer un tableau de Planete comme l'a déclaré fatal_error.
c'est un tableau dans un tableau que je crée?? :dodo:
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 28 Mar 2013, 10:22
tant qu on y est:
la definition dune classe telle que tu le fais comporte quelques points a reprendre:
- Code: Tout sélectionner
double calculForce(Planete planete1, Planete planete2);
n'a pas de sens.
on calcule la force de la planete courante a lautre planete
ex:
- Code: Tout sélectionner
double getForceExerceeBy(const Planete& other);
~Planete(); est tres discutable, parce que si jamais ya un coquin qui decide d'heriter de planete, yaura des problemes de desalloc. donc preferer
- Code: Tout sélectionner
virtual ~Planete();
la vie est une fête

-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 28 Mar 2013, 10:23
c'est un tableau dans un tableau que je crée??
tableau de Planete
Une Planete c'est pas un tableau.
la vie est une fête

-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 28 Mar 2013, 10:46
fatal_error a écrit:tant qu on y est:
la definition dune classe telle que tu le fais comporte quelques points a reprendre:
- Code: Tout sélectionner
double calculForce(Planete planete1, Planete planete2);
n'a pas de sens.
on calcule la force de la planete courante a lautre planete
ex:
- Code: Tout sélectionner
double getForceExerceeBy(const Planete& other);
~Planete(); est tres discutable, parce que si jamais ya un coquin qui decide d'heriter de planete, yaura des problemes de desalloc. donc preferer
- Code: Tout sélectionner
virtual ~Planete();
Hum, je vois merci pour ces indications, je suis encore en phase d'apprentissage du C++ en OO.
Pour la fonction tout à fait d'accord, je ne sais pas pourquoi j'ai rajouté un paramètre supplémentaire.
Concernant le virtual ~destructeur(), je vais aller voir à quoi ça sert, merci !
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 04 Avr 2013, 11:47
bon le prof a dit que ça "servait à rien" pour afficher simplement le tableau de mettre vector... du coup, j'ai mis à base de cout et tabulation pour aligner..
après, j'ai runge kutta 4, verlet ou euler pour modéliser la trajectoire (j'ai déjà RK4) mais je trouve que c'est trop complexe.. enfin j'arrive pas à effectuer une série de valeur ...
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 04 Avr 2013, 12:21
1: pour afficher un tableau tu as un. tableau. que ca soit un tableau (araay[] ou un vector) c'est pareil. donc parle pas de tableau mais de donnees
2: ok, si tu fais un tableau pour juste utiliser cout ca sert a rien
3:
après, j'ai runge kutta 4, verlet ou euler pour modéliser la trajectoire (j'ai déjà RK4) mais je trouve que c'est trop complexe.. enfin j'arrive pas à effectuer une série de valeur ...
j'arrive pas a effectuer des triangles?
la vie est une fête

-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 04 Avr 2013, 14:49
fatal_error a écrit:1: pour afficher un tableau tu as un. tableau. que ca soit un tableau (araay[] ou un vector) c'est pareil. donc parle pas de tableau mais de donnees
2: ok, si tu fais un tableau pour juste utiliser cout ca sert a rien
3:
j'arrive pas a effectuer des triangles?
bah écoute , c'est moi le prof m'a dis "t'emmerde pas avec ça" illico presto donc j'ai pas cherché plus loin.
ben je vous poste le programme que j'ai et pis vous verrez par vous même, ça n'a aucun sens sinon je suis d'accord
et pis peut être que toi l'info ça te passionne mais moi ça m'ennuie plus qu'autre chose donc voila, même les trucs simples sont galère, après si ça parait une évidence (mais pas que je fais aucun effort..) pour toi tant mieux :lol3:
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 04 Avr 2013, 17:05
ben le truc c'est que faut que tu sois precis avec les termes que tu utilises.
mais je trouve que c'est trop complexe
on sait pas cest quoi que tu trouves trop complexe.
S'agit-il de lalgo RK4 qui est trop complexe pour predire ta trajectoire?
j'arrive pas à effectuer une série de valeur
ca veut rien dire, et c est pas une question d informatique.
l'info ça te passionne mais moi ça m'ennuie plus qu'autre chose donc voila
Ben nan tinquiete pas, debugger un algorithme c'est pas ce qui me passionne le plus :ptdr: et jai pas encore dit que ton probleme est simple. Mais pour linstant on sait pas c est quoi ton probleme.
la vie est une fête

-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 12 Avr 2013, 14:45
bon alors en faite mon problème viens du fait que j'arrive pas à appliquer mon RK4 pour la terre et le soleil par ex..
admettons on fixe le soleil comme centre de masses, on sait que :
masse du soleil vaut 10^30 / x,y,vx,vy = 0
la terre 10^26 kg avec x = 150.10^6, y=0 , vx =0 et vy = 30km/s (valeurs grossières)
je sais bien que il n'y a que la gravitation qui intervient donc à résoudre ma = -G*m_S*m_T / r^2
et d'après cette équa diff. je dois pouvoir retrouver la trajectoire mais bon ..
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 12 Avr 2013, 15:39
Bonjour,
Je passe sur les notions de classes bien expliquées par Ampholyte.
Là, vous en êtes à appliquer la méthode RK4 à un problème dont la résolution numérique est difficile, voire impossible directement.
Donc, imaginez que vous vouliez expliquer la méthode à quelqu'un, puis lui décrire l'algorithme. Je suis sûr que quand vous aurez trouvé les bons mots et les bonnes expressions pour expliquer cela, tout deviendra tout de suite beaucoup plus clair.
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 12 Avr 2013, 15:53
Dlzlogic a écrit:Bonjour,
Je passe sur les notions de classes bien expliquées par Ampholyte.
Là, vous en êtes à appliquer la méthode RK4 à un problème dont la résolution numérique est difficile, voire impossible directement.
Donc, imaginez que vous vouliez expliquer la méthode à quelqu'un, puis lui décrire l'algorithme. Je suis sûr que quand vous aurez trouvé les bons mots et les bonnes expressions pour expliquer cela, tout deviendra tout de suite beaucoup plus clair.
les classes, j'ai pas abordé en cours.. et vu que l'info ça me :mur: ....
je vais voir ça, mais en faite je me suis débuggé tout seul pour le moment ça "roule" à peu près
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 18 Avr 2013, 09:30
Billball a écrit:les classes, j'ai pas abordé en cours.. et vu que l'info ça me :mur: ....
je vais voir ça, mais en faite je me suis débuggé tout seul pour le moment ça "roule" à peu près
en faite, je vois pas comment m'y prendre au niveau des coefficients tout de même :hum:
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 18 Avr 2013, 09:57
Bonjour,
Si vous ne voulez pas suivre mon conseil, je pourrai pas vous aider.
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 18 Avr 2013, 10:44
Dlzlogic a écrit:Bonjour,
Si vous ne voulez pas suivre mon conseil, je pourrai pas vous aider.
bah j'ai à peu près compris : on a 4 coeff pour le pas et 4 coeff pour l'équa diff, et on injecte le pas dans l'équa diff correspondante..
par ex si je prends a pour le pas et b pour équa diff :
a1 = a
b1 = ....*a
a2 = a + pas/2*b1
b2 = ...*(a1 + pas/2*b1)
a3 = a + pas/2*b1
...
a4 = a + pas*b1
...
c'est le codage qui me gêne , j'ai un double tab[n][m] ou mes valeurs sont stockés et c'est un peu la misére
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 18 Avr 2013, 13:06
Bonjour,
Peux-tu essayer de nous expliquer d'une manière clair ce que tu cherches à faire (comme tl'a conseillé Dzlogic).
1) Cela te permettra de bien cerner ton sujet
2) Cela nous permettra de bien comprendre où se trouve ton incompréhension
par ex si je prends a pour le pas et b pour équa diff :
a1 = a
b1 = ....*a
a2 = a + pas/2*b1
b2 = ...*(a1 + pas/2*b1)
a3 = a + pas/2*b1
...
a4 = a + pas*b1
...
Ce n'est pas très clair car tu parle de 4 coefficient pour le pas (a1, a2, a3 et a4) et dans l'expression de a tu utilises une variable 'pas' (qu'est ce que c'est ?)
Que contient ton tableau de double tab ?
Qu'as-tu comme donné de départ ?
Que souhaites-tu obtenir à l'arrivé ?
Essaye de répondre clairement à tous ceci. Cela te permettra de sûrement mieux comprendre ce que tu essayes de faire.
-
Billball
- Membre Complexe
- Messages: 2669
- Enregistré le: 31 Mar 2006, 19:13
-
par Billball » 19 Avr 2013, 17:43
bah c'est pas très clair oui, je cherche à modéliser la trajectoire de 2 planètes (terre, soleil par exemple avec tout ce qui s'en suit (vitesse lib., loi des aires..)) ainsi que tout le système solaire
c'est un pas définis initialement, qui correspond plus ou moins à un nombre de points
mon tableau contient donc toutes les valeurs dont j'ai besoin (x,y,z,vx,vy,vz)
et pour se faire, j'aimerais utiliser RK4 (c'est le codage de RK4 qui me pose pb)
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités