salut à tous, ma copine est à l'EPFL et elle à son projet de programmation C++ à rendre demain à minuit.
qui plus est: elle galère avec des codes d'erreures et ne sait pas comment les régler et ce qu'un de vous est assez bon en programmation C++ pour lui filer un coup de main ? beaucoup de bières et de gâteaux sont à la clé !
Voici son message:
Bonjour, dans le cadre d'un projet semestriel, je dois simuler un jeu de billard contenant des boules et une table... J'ai des problèmes depuis que j'ai insérer ma classe mère 'Objet'. Le compilateur me sors un message d'erreur dans ma classe 'Boule', voilà des print screen de la classe Boule qui hérite de la classe Objet pour constituer la classe système dans laquelle on va pouvoir voir les boules se déplacer au cours du temps et entrer en interaction avec les boules et la table, etc ici j'essaie donc de faire tourner testCollision ....
Donc si qqun peut m'aider a trouver l'erreur et si d'autres auraient des suggestion pour une fonction d'evolution du système ou autre je suis toujours preneuse !
Dans tous les cas merci
d'avance pour vos réponses
Images attachées Images attachées
avec les images ça ira mieux
Ah, c'est le fameux projet de Chappelier ça. Bonne chance !
Ca risque d'être difficile d'aider sans avoir le message d'erreur donné par le compilateur !
Ouais il faut les messages d'erreur et ce serait un plus si le code était sur pastebin. Mais ça je peux comprendre qu'elle préfère pas
Section math spotted
Bon courage
Le 24 mai 2015 à 15:00:11 PiloteFou a écrit :
Section math spotted
Ca peut aussi être physique
A part ça, je lui conseillerais de rechercher le message d'erreur sur Google pour voir ce qui se trouve. Il y a souvent des réponses très techniques sur les forums (Stack Overflow je te vois) mais ça peut aider.
Essaye de voir ici l'an dernier ils m'avaient aidé pour mon projet java
https://www.jeuxvideo.com/forums/0-47-0-1-0-1-0-programmation.htm
Pour moi c'est pareil je traîne souvent sur le forum prog'
Alors son code est le suivant: { public : // un constructeur de copie pour les méthodes dans système : virtual std::unique_ptr<Objet> copie() const=0 ; // pour commencer les méthodes de bases recommandées : virtual Vecteur distance( Boule& autre ) =0 ; // renvois la distance la plus courte entre la boule et l'objet . virtual double t_collision ( Boule& autre , double dt, Integrateur i ) =0 ; // renvois le Tao i.e. temps jusqu'à la prochaine collision . virtual void collision (Boule &autre )=0 ; // gestions de la collision entre les boules et les objets .. mise a jour des forces s'appliquant sur la boule ... virtual double EnergieCinetique (Boule const& ) const = 0 ; ça c'est la classe mère (abstrète) boule n'est pas censée être une classe abstrete mais une classe instanciable
using namespace std ; int main () { Boule b1(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0) ; Vecteur U( 0.0 , 0.0 , 1.0) ; U.augmente(0.0) ; U.augmente(0.0) ; U.augmente(0.0) ; b1.set_omega(U); Vecteur V(1.0,0.0,2.0); V.augmente(0.0); V.augmente(0.0);V.augmente(0.0); b1.set_omega_prime(V); Boule b2(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0); Vecteur W(0.08,0.1,1.16); W.augmente(0.0); W.augmente(0.0); W.augmente(0.0); Vecteur X(0.0,0.0,0.0); X.augmente(0.0); X.augmente(0.0); X.augmente(0.0); b2.set_omega(W); b2.set_omega_prime(X); cout << "boule 1 " <<b1 << endl ; cout << "boule 2 " << b2 << endl ; double dt(0.01); Integrateur i; double tao ; tao=b1.t_collision(b1, dt , i ); if (tao<dt) { i.Integre(b1, tao); i.Integre(b2, tao); b1.collision(b2); return 0; } i.Integre(b1,dt); i.Integre(b2, dt); cout << "boule 1 " <<b1 << endl ; cout << "boule 2 " << b2 << endl ; return 0 ; }
et ça c'est la classe qui ne fonctionne pas...
merci pour vos réponses !
{ public : // un constructeur de copie pour les méthodes dans système : virtual std::unique_ptr<Objet> copie() const=0 ; // pour commencer les méthodes de bases recommandées : virtual Vecteur distance( Boule& autre ) =0 ; // renvois la distance la plus courte entre la boule et l'objet . virtual double t_collision ( Boule& autre , double dt, Integrateur i ) =0 ; // renvois le Tao i.e. temps jusqu'à la prochaine collision . virtual void collision (Boule &autre )=0 ; // gestions de la collision entre les boules et les objets .. mise a jour des forces s'appliquant sur la boule ... virtual double EnergieCinetique (Boule const& ) const = 0 ;
using namespace std ; int main () { Boule b1(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0) ; Vecteur U( 0.0 , 0.0 , 1.0) ; U.augmente(0.0) ; U.augmente(0.0) ; U.augmente(0.0) ; b1.set_omega(U); Vecteur V(1.0,0.0,2.0); V.augmente(0.0); V.augmente(0.0);V.augmente(0.0); b1.set_omega_prime(V); Boule b2(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0); Vecteur W(0.08,0.1,1.16); W.augmente(0.0); W.augmente(0.0); W.augmente(0.0); Vecteur X(0.0,0.0,0.0); X.augmente(0.0); X.augmente(0.0); X.augmente(0.0); b2.set_omega(W); b2.set_omega_prime(X); cout << "boule 1 " <<b1 << endl ; cout << "boule 2 " << b2 << endl ; double dt(0.01); Integrateur i; double tao ; tao=b1.t_collision(b1, dt , i ); if (tao<dt) { i.Integre(b1, tao); i.Integre(b2, tao); b1.collision(b2); return 0; } i.Integre(b1,dt); i.Integre(b2, dt); cout << "boule 1 " <<b1 << endl ; cout << "boule 2 " << b2 << endl ; return 0 ; }
Mets-ça sur pastebin et indente correctement. Là personne ne va essayer de lire ça, c'est absolument dégueulasse.
Et donne-nous les erreurs précises qui apparaissent lors de la compilation.
Je veux bien aider mais faut pas déconner, faut faire ça un peu proprement d'abord.
Oui je comprend pardon pardon !!
je galère a envoyer des codes c'est affreux et quand je tape "code" sous le section commentaire ça me fait cette mise en page là...
elle a changer quelque chose et maintenant elle a deux nouveau message d'erreur:
allocating an object of abstract class type 'boule'
Class member cannot be rediclared
et voici ce qu'elle a modifié
unique_ptr<Objet> Boule :: copie() const
{
return unique_ptr<Objet>(new Boule(*this));
}
Dis-lui de mettre le code correctement indenté ici : http://pastebin.com/
Et de nous donner le lien pour y accéder.
http://pastebin.com/tnXFtQ8U Comme ça ?
Le compilateur indique l'erreur sur quelle ligne ?
Et il manque le code de la classe Boule du coup.
Boule hérite de Objet ?
Mais je pense que ceci :
unique_ptr<Objet> Boule :: copie() const
{
return unique_ptr<Objet>(new Boule(*this));
}
est mal écrit. Ca fait un petit moment que j'ai plus fait de C++ mais je comprends pas trop ce qu'elle essaie de faire. Le valeur de retour c'est supposé être quoi ? Je comprends pas le prototype de la fonction. Et unique_ptr<Objet> c'est une méthode ? Ca y ressemble pas vraiment
ecoute je galère comme pas possible t'as pas skype ou un email qu'on parle vite de manière efficace et qu'on puisse partager des photos ?!
Pourquoi des photos ? J'ai les deux mais je suis un peu occupé, je regarde le forum de temps en temps. Elle peut pas poster ici ? Ce sera plus efficace.
pour que tu puisses voir les lignes de code car on en chie pour les envoyer ici vu que ni elle ni moi s'y connait en forum
ou même peut-être par email car elle a tout ses fichiers prêt à être contrôler il faut juste un programme pour les exploité et une personne apte à comprendre ses erreures
Ce serait plus pratique ici pour moi. Il suffit de mettre le code des fichiers principaux et de donner les messages d'erreur exacts. Pas besoin de s'y connaître en forum.
Mais de ce que je vois, c'est le constructeur par copie qui a l'air mauvais. Le prototype en soit est faux.
Essaie de poster ça ici et sur le forum programmation, là-bas il y aura sûrement quelqu'un de plus calé que moi en c++.