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

Mes premiers programme en c++ :bave:

Iliketo
Iliketo
Niveau 10
06 septembre 2012 à 05:33:48

Sa marche ^^
Maintenant je vais essayé de le faire avec mes autre projet :)

Iliketo
Iliketo
Niveau 10
06 septembre 2012 à 05:52:17

je viens de découvrir 2 truc en regardant ton code source ^^

- on inclue common.hpp que sur la main et pas sur common.cpp
- on est pas obliger de mettre un return 0;

alors pourquoi on met un return 0; :(

Neofungamer
Neofungamer
Niveau 22
07 septembre 2012 à 02:27:02

- on inclue common.hpp que sur la main et pas sur common.cpp

Je pense pas que ce soit utile. Je laisse un pro du c++ expliquer ça. (je suis rouillé en c++ moi)

- on est pas obliger de mettre un return 0;

obligé je ne sais pas, mais dans le sens où main est une fonction qui retourne un int alors il faut en retourner un. C'est une sorte de code de retour qui permet de savoir si ton programme s'est exécuté correctement en gros.

Donc si on retourne 0 alors tout va bien et sinon c'est qu'il y a un problème quelque part.

godrik
godrik
Niveau 30
07 septembre 2012 à 03:37:20

pendant longtemps il y avait une convention qu'une fonction qui ne retourne pas de valeur retourne 0. Cependant, j'ai eu des cas ou mon code est allegrement parti en cacahuete. Donc j'ai envie de dire qu'une focntin non-void qui ne retourne rien est un bug.

Au sujet de l'inclusion de foo.hpp dans foo.cpp, ca depend de ce que tu met dans foo.hpp si il s'agit uniquement de la definition de fonction et qu'elle ne sont pas utilise par foo.cpp alors en effet, tu n'as pas besoni de l'inclure. De facon general, ca ne coute pas cher de faire l'inclusion et ca simplifie la vie. :)

Iliketo
Iliketo
Niveau 10
07 septembre 2012 à 05:28:55

Je comprend mieux merci a vous 3 :)

Je vous laisse choisir le prochain cour car la a part les vector ou la poo je vois pas trop ^^

hyrulink2
hyrulink2
Niveau 7
07 septembre 2012 à 11:52:36

En fait le cas de main est un peu particulier car en C++ un "return 0;" est ajouté automatiquement à la fin de main (mais seulement pour main, pas les autres fonctions).

Pour que tu comprenne bien les inclusions, un petit cours sur la gestion des projets avec plusieurs fichiers:
Une convention est de toujours inclure dans un .cpp le .hpp correspondant(du même nom) comme ça on peut utiliser tout ce qui a été déclaré dans le .hpp. Dans un .hpp on inclue seulement les .hpp dont on a réellement besoin, c'est à dire ceux qui définissent des types (struct ou class que tu verra plus tard) dont on a besoin. On a besoin d'un type dans un .hpp si on en fait autre chose que le déclarer par pointeur ou référence. Exemple:
http://pastebin.com/qpXsPQi4

Là on inclue que Ville.hpp car on a besoin pour définir Perso. On a pas besoin de Pays.hpp ni de Maison.hpp car on n'utilise que des pointeurs ou références dessus. Par contre il faut les forward-déclarer avant(les deux lignes avant struct Perso) pour indiquer qu'ils existent. Maintenant dans le fichier Perso.cpp:
http://pastebin.com/2uLsZjaK

Là on inclue Pays.hpp et Maison.hpp car on les utilise vraiment, on accède à des attributs (nom et adresse).

Ces règles peuvent être un peu pénible parce que ça oblige à faire beaucoup d'include dans les .cpp mais ça permet d'éviter des problèmes dont tu t'apercevra assez rapidement si tu ne les suit pas. J'ai pris la peine de te les expliquer car bizarrement c'est pas vraiment mis en avant dans les tutos et il vaut mieux prendre cette habitude rapidement.

Pour finir, on ne définit pas plus d'un type par fichier .hpp et .cpp en règle générale et on donne comme nom de fichier le nom du type(si il y en a un).

Si t'a bien compris ça dit-moi et je te ferai un exo dessus.

Pour la poo patience il faut d'abord que tu maîtrise bien les pointeurs.
Tu devrait suivre ce cours:
http://casteyde.christian.free.fr/cpp/cours/online/book1.html
C'est en français et bien expliqué et les aspects C++ viennent petits à petit. Tu vois que la partie POO vient assez loin.

Iliketo
Iliketo
Niveau 10
07 septembre 2012 à 12:19:32

https://image.noelshack.com/fichiers/2012/36/1347013038-screenshot005.png

tous les site du même genre que le tien ne marche pas c'est bizarre :(

Sinon je pense pas avoir tous compris mais donne moi l'exercice on verra bien :)

Neofungamer
Neofungamer
Niveau 22
07 septembre 2012 à 19:01:40

Je te donne un exercice :

développe moi une structure permettant de modéliser un polynome du second degré. (ax^2 + bx + c)
puis une structure permettant de modèliser les solutions du polynome.

Enfin fais moi les fonctions

void creer_polynome(Polynome & p);
void resoudre_polynome(Polynome & p, Solution & s);

Donc tout ça va dans le common.hpp et le common.cpp

et dans ton main tu me montres que ça fonctionne.

Tu peux utiliser toutes les consignes qu'on a donné avant. Si tu arrives à faire ça, on fera un objet polynome pour te montrer comment aller plus loin.

Iliketo
Iliketo
Niveau 10
08 septembre 2012 à 06:30:25

Comme ça ?
main : http://pastebin.com/ar2wXjpg
.cpp : http://pastebin.com/bp7GMcWT
.hpp : http://pastebin.com/bPymdEan
make : http://pastebin.com/zSPdmdxN

Mais j'ai une erreur que je comprend pas ^^
https://image.noelshack.com/fichiers/2012/36/1347078459-screenshot006.png

Sa a un rapport avec le make je pense

hyrulink2
hyrulink2
Niveau 7
08 septembre 2012 à 13:30:34

C'est une erreur de linkage: elle te dit que la fonction solutionEquation n'est pas définie. En gros tu l'a déclarée mais tu ne l'a pas définie. Regarde bien ton fichier a.cpp, tu devrait trouver tout seul ce qui ne va pas.

Iliketo
Iliketo
Niveau 10
08 septembre 2012 à 13:54:13

Ah oui , je me sent débile :hap:

Mais sinon c'est bien comme ça qu'il faut faire l'exercice ? :(

hyrulink2
hyrulink2
Niveau 7
08 septembre 2012 à 14:45:26

Tu n'a pas vraiment respecté le sujet.
Je ne vois pas de fonction creer_polynome ni resoudre_polynome ni de structure Solution ni Polynome. C'est un détail tu me dira évidemment creer_polynome c'est elementEquation et tout mais il faudrait que tu respectes le sujet pour qu'on corrige plus facilement.

Ensuite à mon avis le fonction resoudre_polynome ne devrait rien afficher à l'écran mais juste remplir la structure solution.

La structure solution ne me plait pas nom plus, elle devrait contenir uniquement x1 ,x2 et le nombre de solutions.

Et ajoute une fonction void afficherSolution(Solution const& s) qui permet d'afficher la solution à l'écran. Le const veut dire qu'on ne modifiera pas la structure dans la fonction.

Enfin tu t'est amélioré niveau indentation mais c'est pas encore ça. Inspire toi de styles d'indentation existants, choisis en un et ne change plus.

Pour le lien que je t'ai donné c'est bizarre qu'il ne marche plus, t'a essayé le cache?

Iliketo
Iliketo
Niveau 10
08 septembre 2012 à 15:32:56

Avec le cache sa marche merci de l'info :)
Je vais essayé d’amélioré le programme .

Iliketo
Iliketo
Niveau 10
12 septembre 2012 à 21:52:14

Désolé de up le topic pour rien mais je tenais a vous remercier pour tous le temps et la patience que vous m'avez accordé :)

La je suis entrain de suivre le tuto de hyrulink2 et j'ai eu la chance d’être tombé sur un prof de math qui programme et qui m'apprend quelque truc les weekend ^^

Peut être que je vais continué a posé mes question mais c'est sur que sa sera plus rare qu'avant ( depuis la rentré j'ai plus trop le temps :o)) )

Bonne continuation a tous :-)

Neofungamer
Neofungamer
Niveau 22
13 septembre 2012 à 11:45:54

Merci =)

hyrulink2
hyrulink2
Niveau 7
13 septembre 2012 à 20:48:08

Merci, heureux de t'avoir aidé^^

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