[C++]Aide our démmarer un exo.

austinpower
[C++]Aide our démmarer un exo.

Hello,

j'aurai besoin d'aide pour démarrer un exo :
lien sur l'énoncé

J'aimrai une aide pour ce qui est de la classe Image2D et pour le chargement de l'image.

Je ne sais pas très bien ce qu'il faut mettre dans cette classe et comment on charge l'image.

Merci

fredericmazue

Quote:
dans cette classe et comment on charge l'image.

Ma foi, quand tu nous auras dit quelle classe (une classe que tu dois écrire, que tu dois utiliser ?) quel format d'image, et sous quel système d'exploitation, on essaiera de t'aider.

austinpower

fredericmazue wrote:
Quote:
dans cette classe et comment on charge l'image.

Ma foi, quand tu nous auras dit quelle classe (une lcasse que ut dois écrire, que tu dois utiliser ?) quel format d'image, et sous quel système d'exploitation, on essaiera de t'aider.


Une classe que je dois écrire. Je suis sous Unix
J'ai mis l'énoncé dans le premier post.
fredericmazue

Quote:
J'ai mis l'énoncé dans le premier post.

Ah zut, j'avais pas vu le lien :oops:
En ce moment sur ce forum il y a tellement de questions qui sont des quarts de questions que j'ai généralisé. re - :oops:

C'est interessant comme énoncé, mais il y a déjà pas mal de boulot.

Mais je ne suis pas sûr de bien comprendre l'énoncé. Les classes Image2D et Matrice dont il est question, elles existent déjà ou bien tu dois les écrire aussi et ensuite les dériver pour écrire ta classe Image ?

Apparement oui puisque tu demandes une aide pour la classe Image2D.
Alors puisque tu sera jugé sur la qualité du code, dis de ma part à tes profs que la l'héritage mutiple ça ne parait pas pertinent. Il serait mieux que Matrice soit un membre d'image2D je pense. Surtout si tu dois écrire des constructeurs de copies. L''héritage multipe alourdit la question.

Bon, autre point. Tu es sous Unix. mais on ne parle pas de toolkit graphique pour afficher les images. C'est seulement un affichage en mode texte (surcharge de <<) si je comprends bien.

Pour ce qui est de charger l'image. Commence par écrire une classe simple avec seulement un constructeur et un destructeur.
Le constructeur reçoit le nom du fichier d'image et l'ouvre. Pour ça tu n'as qu'à faire un copier-coller partiel du code donné sur la page de GD
Bien sûr tu gères les erreurs. Pour une librairie bien conçue (tu seras évalué sur ce point si je comprends bien) le mieux est de lever des exceptions. Surtout dans un constructeur qui n'a pas de valeur de retour ;) Par exemple si le nom du fichier est pas bon.
Dans le destructeur tu veilles à libérer FILE*
Si tu gardes File* comme membre de ta classe... Ce que l'on peut critiquer car alors ça oblige quasiment à interdire le constructeur de copie ce qui serait dommage pour une librairie d'image
Donc autre approche. Dans le constructeur, tu charges l'image, tu mets les octets dans une zone mémoire et tu libères tout de suite le FILE* et dans le destructeur tu veilles à libérer la mémoire. Et dans le constructeur de copie tu veilles à allouer une nouvelle zone mémoire.

Comment comme ça, poste des bouts de code et sans doute des gens essaieront de t'aider à avancer. En tous cas moi j'aime bien cette énoncé, et puis ça change agréablement des c........ Java habituelles :)
Ca donne envie de t'aider :)

Je me permets une question. Tu es à quel niveau d'étude ?

K-lo

fredericmazue wrote:

Alors puisque tu sera jugé sur la qualité du code, dis de ma part à tes profs que la l'héritage mutiple ça ne parait pas pertinent. Il serait mieux que Matrice soit un membre d'image2D je pense. Surtout si tu dois écrire des constructeurs de copies. L''héritage multipe alourdit la question.


Y a pas si longtemps j'étais étudiant et je peux affirmer ceci : les profs font pas dans l'utile : c'est un cas d'exemple qui ne sert pas forcément dans le cas réel et donc l'héritage multiple est juste un moyen de testé si l'étudiant sais le faire .... Mais c'est pas plus mal de le lui rappeler, à ton prof :P

fredericmazue wrote:
Je me permets une question. Tu es à quel niveau d'étude ?

Même question et surtout depuis combien de temps tu vois l'objet ? Et si ta formation t'as présenté l'UML?

Car j'aimerai soulevé ce point : notre système éducatif [dans les écoles public du moins] (pour raison de simplicité, de compréhension et, sans doute, pour ne pas rebuter les étudiants) font passer au second plan l'UML, voir ne le montre jamais (car même certains profs ne l'aime pas)!
Hors je pense qu'il permet vraiment de bien comprendre les avantages de la programmation objet.

Bref n'hésite pas à te renseigner sur l'UML quand tu auras le tps car ça ne peux que t'aider pour la suite...
Ceci dit ce n'est qu'un avis personnel de quelqu'un qui était étudiant y a pas si longtemps. :P

fredericmazue

Quote:
c'est un cas d'exemple qui ne sert pas forcément dans le cas réel et donc l'héritage multiple est juste un moyen de testé si l'étudiant sais le faire ....

Certes.
Mais dans l'énoncé on lui dit qu'il sera évalué sur la qualité du code alors...
Mais bon, peut être que les profs ne savent pas reconnaître un bon code. Je serais pas plus surpris que ça
Bah de toutes façons on va essayer de l'aider ici n'est-ce pas, toi et moi.

Quote:
l'UML, voir ne le montre jamais (car même certains profs ne l'aime pas)!
Hors je pense qu'il permet vraiment de bien comprendre les avantages de la programmation objet.

Là je dois dire que je ne l'aime pas non plus :)
On peut comprendre la programmation objet et ses avantages sans UML.
Par contre puisque tu parles éducation, moi ce qui me tue c'est qu'à 99.9% les étudiants sont gavés de Java et de Java uniquement, sous Windows si possible.
Comme ça on est sûr qu'ils ignoreont tout de l'informatique en sortant de l'école :twisted:
Quel fléau...
(Et oui je n'ai encore une fois pas pu m'empêcher de lâcher mon bon gros troll préféré :) )
K-lo

Moi j'ai été gavé et gavé (j'en redemandais :P) de C / C++ et le tout sous UNIX et (j'arrive à ne pas hair l'UML). donc non c'est moins de 99,9% :P

Tout depend des profs...
Surtout que je crois avoir lu dans l'un des article de Programmez (je sais plus quel numéro) la tendance était au retour au C/C++ au dépend de JAVA vde quoi te faire plaisir Frédéric. :lol:

fredericmazue

Quote:
la tendance était au retour au C/C++ au dépend de JAVA

Ca viendra forcément. Mais peut être trop tard.
Sans forcément prendre C++, il existe des quantités de langages intéressants, voire géniaux.
Le problème est que Sun a réussi à pénétrer les esprits avec son marketing à base de "Write Once Run Everywhere", qui dans la pratique se traduit par "Write Once Debug Everywhere". Et malheureusement en France les décideurs sont souvent assez frileux lorsqu'il s'agit choisir une techno. Alors le logo de la tasse de café chaud ça doit les rassurer :)

Quand je pense qu'en Pologne il y a des développements en Haskell, langage de pointe. En France on a le problème du plombier polonais, on ne va pas tarder à avoir le problème de l'informaticien polonais...