programme sur rotation d'un satellite autour de la Terre [C] - C - Programmation
Marsh Posté le 20-05-2006 à 22:47:50
PoLuxR a écrit : Salut à tous. J'aurais simplement eu besoin d'un petit coup de main pour mon programme qui compile bien mais qui ne fonctionne pas comme je le souhaiterais. |
Tu ne respectes pas les regles de codage du langage C. Le comportement est indéfni.
|
Le plus simple, pour commencer, est de suivre la regle 'définir avant d'utiliser... (petit coup de réindentation au passage...)
Code :
|
Léger mieux, mai c'est pas encore ça...
|
Le plus gros problème est que tu ne passes pas le bon nombre de paramètres aux fonctions vitessex() et vitessey()... Je ne sais pas comment corriger, car je ne connais pas la partie 'métier' de ton code. (Au feeling, je mets vx, vy...)
J'ai passé les types retournés en double (je doute fort que tu ais voulu des int !)
Ceci compile et fonctionne (un fichier est crée ...)
Code :
|
Marsh Posté le 20-05-2006 à 23:05:58
Ah mince! Je vous ai donné le mauvais programme, un truc faux que j'avais essayé, du coup c'était dur pour vous de bien comprendre la question!! Voici le "bon"code:
Code :
|
Marsh Posté le 20-05-2006 à 23:18:42
PoLuxR a écrit : Ah mince! Je vous ai donné le mauvais programme, un truc faux que j'avais essayé, du coup c'était dur pour vous de bien comprendre la question!! Voici le "bon"code: |
Merci, je viens de passe 30 minutes à corriger ton ancien code... Je te laisse faire la transposition...
Marsh Posté le 21-05-2006 à 15:36:52
Merci beaucoup Emmanuel. J'ai fais la transposition et j'obtiens un fichier de sortie:
35784000.000000 0.000000
-1.#QNAN0 -1.#QNAN0
-1.#QNAN0 -1.#QNAN0
-1.#QNAN0 -1.#QNAN0
etc...
Mais comme je l'ai dit en début de topic, mon problème n'est pas un problème de compilation, mais un problème en sortie de programme car le fichier m'affiche des valeurs fausses (surtout les ordonnées qui stagnent)! Donc si quelqu'un a une idée....
Merci
Marsh Posté le 21-05-2006 à 17:18:09
Code :
|
Marsh Posté le 21-05-2006 à 18:15:28
PoLuxR a écrit :
|
Tu t'obstines à ne pas respecter les regles du langage. Je t'ai indiqué comment faire. Fait le ou je ne peux plus rien pour toi.
Marsh Posté le 21-05-2006 à 22:29:51
PoLuxR a écrit :
|
Les fonctions "vitesseX" et "vitesseY" sont très similaires. Même remarque pour "accelerationX" et "accelerationY"
Peut-être serait-il pratique de les regrouper, quitte à y inclure un paramètre supplémentaire pour faire le choix "X" ou "Y".
Petit pb: tes fonctions de type "int" retournent des doubles...
Marsh Posté le 09-06-2006 à 01:33:19
Merci à tous pour votre aide. Finalement j'ai réussi à terminer ce programme, avec simplement une erreure à un scalaire multiplicatif près. Voici les lignes, si ça peut aider quelqu'un qui fait une recherche à l'avenir:
Code :
|
Marsh Posté le 09-06-2006 à 13:55:33
PoLuxR a écrit :
|
Code :
|
Et tu appelles "accelerationxy()" en lui passant en 3° paramètre "x0" si tu veux une accélération selon X, ou "y0" si tu veux une accélération selon Y.
On peut même remplacer cette fonction par un "#define"...
Même méthode pour "vitessex" et "vitessey"
Marsh Posté le 20-05-2006 à 22:40:34
Salut à tous. J'aurais simplement eu besoin d'un petit coup de main pour mon programme qui compile bien mais qui ne fonctionne pas comme je le souhaiterais.
En fait, je veux juste tracer la trajectoire d'un satellite à partir d'une vitesse et d'une position de départ. J'utilise les coordonnées cartésiennes.
Je me demande si l'erreur ne provient pas des fonctions vitessex-vitessey: est-ce que si dans une fonction par exemple je mets vx=vx+1, à l'appel de cette fonction dans une boucle "for" le vx de droite (donc le vx à l'itération précédente) va pouvoir être utilisé? Je ne sais pas si vous voyez ce que je veux dire, allez voir les fonctions vitessex-vitessey pour mieux comprendre. Merci
Voici le code:
Message édité par PoLuxR le 20-05-2006 à 23:08:08
---------------
Bandit 400