[C++] Apprentissage méthodique

Apprentissage méthodique [C++] - C++ - Programmation

Marsh Posté le 16-06-2006 à 10:40:09    

Salut à tous !
 
Bon bah voilà... j'aimerais "apprendre à programmer" mais ne cliquez pas tout de suite sur le bouton répondre suivi de "google + rechercher + ... (bla bla... bla)" !
 
Savoir créer un objet, des fonctions membres, des classes tout ça je sais faire. Mais j'aimerais que ça me serve à quelque chose.
 
Donc par apprendre à programmer je veux plutôt dire : "par quel projet commencer ?".
 
Le "Hello World" est le premier pas (fait y'a plus d'un an donc merci mais ça ira comme proposition (je me préserve des remarques de certaines personnent qui rôdent dans la catégorie [:zytradance])).
 
Ensuite vient le petit jeu du "Trouver le chiffre généré aléatoirement". Encore un truc de con fini qui sert à rien et qui se programme en 2h quand on y connait strictement rien.
 
Sinon j'ai aussi fait un "sudoku" en une demi nuit. Certes vraiment buggué car mauvaise gestion des bords du tableau (c'était mon premier projet pour passer du java au C++ donc l'histoire des pointeurs et références c'était pas encore génial donc pas top pour utiliser les tableaux). Encore un truc débile.
 
Maintenant j'aimerais sérieusement savoir si une personne peut m'aider sur cette planète en me donnant un projet-exemple à la fois sérieux, utile, intéressant et aussi faisable.
 
En gros, qu'est-ce qui existe en difficulté intermédiaire entre ce que je sais faire et des trucs de fou où il faut 50 hommes tels qu'un Oblivion et le tout sur 2 ans (pour 50 hommes...).
 
Vous allez me dire que ça dépend de mes intérêts ? Bah du moment que ça touche le pc ça m'intéresse [:__canard__] !
 
A savoir :
 

  • j'ai tenté un lecteur multimédia basique hein sous borland et FMOD... ça fonctionnait plutôt bien
  • j'ai tenté de créer mon propre format de compression de données mais j'ai été déçu de savoir qu'il est pas possible de traiter les données en binaires directement donc j'ai arrêté car mon but c'était pas de faire un front-end à deux cents d'utils comme tar, rar, zip, etc mais vraiment créer l'aglorithme de compression + gestion du format etc => le tout avec une GUI et multi-plateformes malheureusement pas de gestion de binaires native = mon idée d'algorithme de compression tombe à l'eau (cela dit j'ai appris à utiliser QT et les signaux/slots etc) (donc si j'ai arrêté c'est bien à cause des limitation hardware de l'architecture intel qui permettrait de travailler au moins sur des octets et j'ai vraiment pas envie de trouver un "workaround" ou de coder une classe juste pour contourner le problème ça risquerait de devenir un projet d'ampleur incontrôlée)


 
En tous cas merci d'avance pour vos réponses :D ! L'idéal serait vraiment une liste avec difficulté progressive et variation des domaines... maintenant je manque un peu d'imagination c'est clair et surfer sur sourceforge ne m'aidera pas à moins de télécharger environ 1000 codes sources et de les regarder avant de voir si c'est abordable ou pas. 1000 ça fait un peu beaucoup (au moins le temps d'achever un bon ptit programme dont y'a moyen d'être fier non ? :p) d'autant plus que je n'ai nullement besoin d'une quelconque originalité !

Reply

Marsh Posté le 16-06-2006 à 10:40:09   

Reply

Marsh Posté le 16-06-2006 à 10:41:45    

Je pense que sur sourceforge y'a des centaines de projets qui attendent contribution, dans tout les langages sur toutes les plateformes :)

Reply

Marsh Posté le 16-06-2006 à 10:51:28    

_darkalt3_ a écrit :

Je pense que sur sourceforge y'a des centaines de projets qui attendent contribution, dans tout les langages sur toutes les plateformes :)


 
Dans un élan de modestie inhabituel de ma part, je me dis qu'il vaut mieux que je sois sûr de mes compétences avant de m'intégrer à un projet sérieux et de faire le boulet (dernière chose que j'aimerais être [:itm]).
 
Donc je préfère encore "affermir" et "confirmer" mes capacités (certes encore relativement réduites) dans des applications "réelles" et utiles (c'est-à-dire qui pourraient potentiellement "vraiment" servir :)).
 
Ensuite j'aurais effectivement le loisir d'intégrer un projet passionant et contribuer de mon mieux au code en commanceant par la relecture, les commentaires, la documentation et puis ensuite la correction de bug pour enfin avoir l'audace de soumettre mon propre code... mais sûrement pas à mon niveau actuel, tu l'auras sans doute compris.

Reply

Marsh Posté le 16-06-2006 à 10:55:53    

comment ca pas de gestion de binaire native ?

Reply

Marsh Posté le 16-06-2006 à 10:58:07    

skelter a écrit :

comment ca pas de gestion de binaire native ?


 
Ben j'aimerais charger le fichier sous forme d'un buffer qui ne contient que des 0 et des 1. Pour ensuite travailler directement sur eux...
 
Mais l'architecture Intel ne permet pas de travailler avec une unité plus petite que l'octet... (tout ça est imprécis et traduis clairement mon manque de compréhension en profondeur du problème mais je sais qu'il existe et c'est une condition suffisante pour annuler le projet).
 
edit: notons que c'est pas le sujet :o (et que ça change rien à la question... parce que je me suis renseigné sur les algorithmes de compression déjà existants et malheureusement y'en a aucun qui ressemble à celui que je voulais faire donc deux solutions : soit mon idée n'est pas implémentable, soit elle est fausse/impossible/incorrecte/inadéquate/inutile/(autre)... et je prône directement la seconde solution :o)

Message cité 1 fois
Message édité par agent007se le 16-06-2006 à 11:00:31
Reply

Marsh Posté le 16-06-2006 à 10:59:08    

ben si tu peux travailler sur un bit si tu veux

Reply

Marsh Posté le 16-06-2006 à 11:03:08    

_darkalt3_ a écrit :

ben si tu peux travailler sur un bit si tu veux


 
??
 
Donc tu dis que je peux prendre un fichier foo.ext quelconque et le placer dans une liste chainée simple et la parcourir ?
 
Ensuite, je pourrais ecrire un fichier en binaire directement sur le disque dur ? Intéressant, j'écoute :D ! (parce que j'ai bien cherché avec google en anglais et rien...)
 
edit: tout compte fait ça doit être possible puisque y'a bien des éditeurs hexa... donc on est plus très loin du binaire non ? (à un changement de base près ?)


Message édité par agent007se le 16-06-2006 à 11:04:32
Reply

Marsh Posté le 16-06-2006 à 11:07:45    

hexa == base 16, binaire == base 2
 
c'est à dire que ouvrir des fichier en binaire, lire des octets, les modifiers, les réécrire, etc ... (mais bon c'est pas le topic, et y'a plein de choses sur le net à ce sujet).

Reply

Marsh Posté le 16-06-2006 à 11:12:01    

_darkalt3_ a écrit :

hexa == base 16, binaire == base 2
 
c'est à dire que ouvrir des fichier en binaire, lire des octets, les modifiers, les réécrire, etc ... (mais bon c'est pas le topic, et y'a plein de choses sur le net à ce sujet).


 
exactement voilà il faut passer par une représentation "artificielle" donc finalement on travaille sur des octets...
 
bref comme tu dis c'est pas le sujet :D j'ai mentionné mon projet simplement pour dire que je me suis familiarisé avec QT au passage :D (donc ça n'a pas été totalement inutile...)
 
maintenant j'ai exactement 2 mois chrono montre en main pour savoir produire des petites applications pratiques (en gros poser la théorie qu'on m'apprend sur une jolie page de source qui n'est pas du copier-coller mais pur produit de mes doigts)
 
et c'est là raison de mon post :o

Reply

Marsh Posté le 16-06-2006 à 11:13:07    

agent007se a écrit :

Ben j'aimerais charger le fichier sous forme d'un buffer qui ne contient que des 0 et des 1. Pour ensuite travailler directement sur eux...


 
c'est possible, renseignes toi sur les operateurs bits a bits, std::vector<bool>, std::bitset voir boost::dynamic_bitset

Reply

Marsh Posté le 16-06-2006 à 11:13:07   

Reply

Marsh Posté le 16-06-2006 à 11:16:58    

Tu veux obligatoirement un truc en C++ ?
Parce que j'ai une petite idee de logiciel, mais pour diverses raison, ca serait plutot java :P


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 16-06-2006 à 11:46:59    

traçer un Cube en OpenGl ou en Direct3D.
 
puis traçer un modèle issu d'un ficher ASC d'un vieux 3DStudio.


Message édité par bjone le 16-06-2006 à 11:47:11
Reply

Marsh Posté le 16-06-2006 à 11:48:10    

3dsmax exporte encore en ASC [:dawa]

Reply

Marsh Posté le 16-06-2006 à 12:54:01    

zapan666 a écrit :

Tu veux obligatoirement un truc en C++ ?
Parce que j'ai une petite idee de logiciel, mais pour diverses raison, ca serait plutot java :P


 
En java ça me tenterait aussi.
 
On va dire que j'accèpte toutes les bonnes idées pour C++ et java.
 
Mais étant donné que j'ai eu qq problèmes pour résumé j'ai changé de faculté (toujours le même enseignement mais la première était trop loin...). Là-bas ils fesaient du java... donc j'ai appris le java. Et là où je suis on fait du C++ en première et deuxième et le java c'est qu'en troisième ( :heink: ). Donc je me dis que j'ai plutôt intérêt à maitriser mon C++ en priorité sachant que c'est ce qui m'apportera le plus de résultats à court terme...
 
edit : puis pour les trucs 3DSMax je préfère pas y toucher :D (linux power)
 

Citation :

traçer un Cube en OpenGl ou en Direct3D.


=> et tu m'expliques l'utilité ? :D (sans vouloir être méchant) il suffit probablement d'initialiser l'affichage et de le configurer en 10-15 lignes puis de tracer le cube et limite tant que j'y suis pour le faire tourner sur un axe il doit y avoir une fonction... (sans vouloir non plus réduire l'opengl à des trivialités hein lol entendons-nous bien...)
=> conclusion : je perd 24h puisque j'apprends des nouvelles notions que je n'utiliserai pas (sauf si tu me donnais le but utilme alors là peut-être que je pourrais être interessé par ton idée :D)
 
Fin bref en tous cas merci déjà pour ceux qui tentent de m'aider :) !

Message cité 2 fois
Message édité par agent007se le 16-06-2006 à 13:02:25
Reply

Marsh Posté le 16-06-2006 à 13:05:44    

agent007se a écrit :

les trucs 3DSMax je préfère pas y toucher :D (linux power)


tu peux lire les asc sous nulix :o
 
Sinon c'est quoi ton projet professionel ?
Autant coder dans un domaine qui s'y rattache.
 
Sinon des trucs utiles qui n'existent pas encore, ca va etre chaud à trouver ...

Reply

Marsh Posté le 16-06-2006 à 13:06:25    

Bah la, j'ai 2 petites idees qui sont pas super compliquer a mettre en place
 

  • Une interface de consultation de statistique de site web.  
  • Un 'spider' qui genere la carte d'un site (bon ca par contre c'est pas obligatoirement en Java...)


Le premier truc, c'est parce que les sites genre phpmyvisites ca fait des super truc, mais pour la presentation des resultats je ne trouve pas ca pratique : avec une vrai interface, des graphs graph pas statique que tu peux manipuler et tout et tout.  
Mon idee est que tu utilise un truc deja existant (genre phpmyvisites) pour generer les donnees relatives aux visites (hits, point d'entree etc),  
tu les recuperes dans ton application, a travers le reseau, via u flux XML (pour que la meme application puisse etre utilise sur d'autre truc de stats sans changer le code) et tu affiche tout ca.
 
Ma seconde idee serait de faire un petit spider (un bot quoi...) qui parcours tout un site web et qui en fait la cartographie avec un jolie graph (cf les graphs que pond la bibliotheque jgraph par exemple)
(et apres tu peux rajouter plein de *features* dans ce truc genre le plus cour chemin pour aller de la page A a B, etc)
 


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 16-06-2006 à 13:16:41    

_darkalt3_ a écrit :

tu peux lire les asc sous nulix :o
 
Sinon c'est quoi ton projet professionel ?
Autant coder dans un domaine qui s'y rattache.
 
Sinon des trucs utiles qui n'existent pas encore, ca va etre chaud à trouver ...


 
=> Justement j'ai jamais dis que ça ne doit pas exister au contraire !! Ca peut tout à fait exister ;). Si je te demandais de me trouver un truc qui n'existe pas et qui soi révolutionnaire, tu serais un peu "pas malin" de me le dire au lieu d'en tirer profit toi-même hein :o !
 
;)
 

zapan666 a écrit :

Bah la, j'ai 2 petites idees qui sont pas super compliquer a mettre en place
 

  • Une interface de consultation de statistique de site web.  
  • Un 'spider' qui genere la carte d'un site (bon ca par contre c'est pas obligatoirement en Java...)


Le premier truc, c'est parce que les sites genre phpmyvisites ca fait des super truc, mais pour la presentation des resultats je ne trouve pas ca pratique : avec une vrai interface, des graphs graph pas statique que tu peux manipuler et tout et tout.  
Mon idee est que tu utilise un truc deja existant (genre phpmyvisites) pour generer les donnees relatives aux visites (hits, point d'entree etc),  
tu les recuperes dans ton application, a travers le reseau, via u flux XML (pour que la meme application puisse etre utilise sur d'autre truc de stats sans changer le code) et tu affiche tout ca.
 
Ma seconde idee serait de faire un petit spider (un bot quoi...) qui parcours tout un site web et qui en fait la cartographie avec un jolie graph (cf les graphs que pond la bibliotheque jgraph par exemple)
(et apres tu peux rajouter plein de *features* dans ce truc genre le plus cour chemin pour aller de la page A a B, etc)


 
Pour la première idée, c'est vrai qu'en C++ ça va pas être évident comparé au Java qui serait un peu plus adapté pour un truc pareil...
 
La seconde idée je vois pas trop l'intérêt surtout que recréer la map du site sans savoir dans quel ordre les pages sont ajoutés... ?
 
 
Rhaaa lol j'ai un sacré problème ou ferais-je mieux d'aller faire joujou avec une playstation bien passivement ?
 
Perdez pas espoir je suis sûr que vous pouvez m'aider :D.

Reply

Marsh Posté le 16-06-2006 à 13:17:33    

agent007se a écrit :

En java ça me tenterait aussi.
 
On va dire que j'accèpte toutes les bonnes idées pour C++ et java.
 
Mais étant donné que j'ai eu qq problèmes pour résumé j'ai changé de faculté (toujours le même enseignement mais la première était trop loin...). Là-bas ils fesaient du java... donc j'ai appris le java. Et là où je suis on fait du C++ en première et deuxième et le java c'est qu'en troisième ( :heink: ). Donc je me dis que j'ai plutôt intérêt à maitriser mon C++ en priorité sachant que c'est ce qui m'apportera le plus de résultats à court terme...
 
edit : puis pour les trucs 3DSMax je préfère pas y toucher :D (linux power)
 

Citation :

traçer un Cube en OpenGl ou en Direct3D.


=> et tu m'expliques l'utilité ? :D (sans vouloir être méchant) il suffit probablement d'initialiser l'affichage et de le configurer en 10-15 lignes puis de tracer le cube et limite tant que j'y suis pour le faire tourner sur un axe il doit y avoir une fonction... (sans vouloir non plus réduire l'opengl à des trivialités hein lol entendons-nous bien...)
=> conclusion : je perd 24h puisque j'apprends des nouvelles notions que je n'utiliserai pas (sauf si tu me donnais le but utilme alors là peut-être que je pourrais être interessé par ton idée :D)
 
Fin bref en tous cas merci déjà pour ceux qui tentent de m'aider :) !


 
heu comment dire, heu non aucunes chances que tu touches un projet comme Oblivion dans ce cas...
 
si j'ai écrit:

Citation :


traçer un Cube en OpenGl ou en Direct3D.
 
puis traçer un modèle issu d'un ficher ASC d'un vieux 3DStudio.


 
c'est que y'a une suite, je te donne une impulsion dans une direction qui, je pensais t'aurait interressé, mais je me suis trompé.

Reply

Marsh Posté le 16-06-2006 à 13:18:34    

ou alors je vais le faire dans un autre sens: Refaire Oblivion (puisque traçer un cube en opengl c'est trop tarlouze)

Reply

Marsh Posté le 16-06-2006 à 13:23:28    

agent007se a écrit :


Pour la première idée, c'est vrai qu'en C++ ça va pas être évident comparé au Java qui serait un peu plus adapté pour un truc pareil...


C'est surtout que Java Web Start, ca n'existe pas pour le C++ :P puis l'application tu peux en faire une applet etc
 

agent007se a écrit :


La seconde idée je vois pas trop l'intérêt surtout que recréer la map du site sans savoir dans quel ordre les pages sont ajoutés... ?


probleme avec l'ordre des pages ? pourquoi ?
 
L'interet c'est de voir si ton site niveau navigation est optimale : si tu as plus de deux click pour aller de la page A a la page B, tu peux etre sur que la page B sera moins visite que la page C qui est a un click.
 
Ca permet de voir aussi visuellement que tu n'a peut etre qu'un liens vers la page B, mais 10 vers la page C (alors que C est moins importante que B)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 16-06-2006 à 13:25:23    

Rhaaa mais non j'ai pas pour but de refaire Oblivion (ni même quake3 lol).
 
Au contraire j'aimerais faire des applications que je peux développer en 1 ou 2 mois maxi mais un truc solide et pas forcément inovateur.
 
Un cube en 3D c'est bien mais j'y connais rien à 3DSMax et/ou Blender donc je saurais pas fichu de modéliser un perso 3D. Et j'ai pas l'âme artiste donc petit prob !
 
Jamais dis que c'était un truc de tarlouze (je juge pas avant d'avoir essayé, je disais simplement que si je pars d'un cube aujourd'hui, dans 5 ou 6 ans je pourrais intégrer une équipe de dev d'un jeu comme Oblivion) mais c'est pas le but recherché :).
 
Le but c'est vraiment apprendre à maitriser correctement les bases dans plusieurs domaines sur des projets de 1 à 2 mois de travail... après le cube je vais générer un world en 3D puis après y aposer deux-trois perso et les faire marcher avec du bol en deux mois (et encore). Puis je serais obliger de passer à autre chose (qui n'a plus rien avoir avec le dev de jeux).
 
Et ainsi de suite...

Reply

Marsh Posté le 16-06-2006 à 13:30:03    

après ça dépends de ce qui t'interresse...  
y'a pas besoin de savoir utiliser 3DS ou autre, y'a des objets sur le net, tu peux chercher a les sortir et les afficher en OpenGl/D3D, genre rien que traçer correctement un .ASC (qui un format ASCII) en éclairage de gouraud est assez interressant.

Reply

Marsh Posté le 16-06-2006 à 13:31:29    

Fais un zsh  [:spamafote]

Reply

Marsh Posté le 16-06-2006 à 13:33:22    

un compilateur qui, a partir de code java et/ou c++/autre, genere du php (histoire d'avoir une verif sur les types, etc qui n'existent pas en php)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 16-06-2006 à 13:34:22    

fais un bon référenceur de fichiers musicaux; si ca t'interesse pas, moi si :D

Reply

Marsh Posté le 16-06-2006 à 13:40:06    

_darkalt3_ a écrit :

fais un bon référenceur de fichiers musicaux; si ca t'interesse pas, moi si :D


 
VOILA quelque chose de concret, intéressant et utile (doit bien y avoir des gens qui classent leurs musiques (contrairement à moi :p)) !
 
En plus c'est cool : ça implique une base de donnée, du C++, du traitement récursif de fichiers... et le tout est bien définit donc : "fichiers musicaux". Ca veut dire que je vais pas commencer à dévier vers d'autres trucs (l'enclos est fermé :D).
 
Sinon, zapan666, m'a aussi proposé en mp suite à ma demande :

Citation :

le jeu de la vie en 3d


 
Bon ben voilà grâce à vous en une demi journée j'ai de quoi m'occuper pour un petit bout de temps :D.
 
bjone> ben voilà :D avec le jeu de la vie en 3D je vais pouvoir m'intéresser à ce fameux petit cube :D (et ensuite en générer des milliers les uns à coté des autres :whistle:)
 
edit : en plus ça sera une belle évolution à mon premier programme en java : le jeu de la vie dans une grille en 2D (comme ça je peux sauter d'un cran de difficulté)


Message édité par agent007se le 16-06-2006 à 13:40:54
Reply

Marsh Posté le 16-06-2006 à 13:46:42    

moi je préfèrai des petits vaisseaux qui se tirent dessus, mais bon :D

Reply

Marsh Posté le 16-06-2006 à 13:49:10    

D'ailleurs ca manque de Viewpoint sur pc :o

Reply

Marsh Posté le 16-06-2006 à 13:51:35    

bjone a écrit :

moi je préfèrai des petits vaisseaux qui se tirent dessus, mais bon :D


 
lol :D ça sera pour la rentrée prochaine et après ! une idée de plus ça fait pas de mal :D (genre si je me fais chier sur un programme avec une GUI et des boutons partout bah je continue à dev le jeu de la vie 3D qui devrait être un peu plus sympa visuellement) et ainsi de suite... sans jamais dépasser 2 projets en même temps sinon je suppose qu'on sait plus où donner de la tête

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed