Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1034 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7
Auteur Sujet :

demande Aide sur un exercice!

n°869948
Lam's
Profil: bas.
Posté le 11-10-2004 à 12:01:32  profilanswer
 

Reprise du message précédent :

pains-aux-raisins a écrit :

En tout cas, ce que je tire de topic c'est que si j'ai un pb ou une question pointue, je suis content d'avoir des personnes compétentes sur hfr ;)


 
Ouais, je suis dispo.  
 
[:jesorsv]

mood
Publicité
Posté le 11-10-2004 à 12:01:32  profilanswer
 

n°869981
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 12:53:08  profilanswer
 

pains-aux-raisins a écrit :

Chez soi on fait ce qu'on veut tout le monde est d'accord.
Mais dans le cadre de cours, je ne saurais que trop conseiller de faire comme le prof. Ce conseil devient on ne peut plus vrai dans le monde de l'entreprise où les normes de codage sont ce qu'elles sont, bonnes ou mauvaises.
;)

Si tu reflechis pas par toi meme sur ce que l'on t'apprend, mais te contentes de ressortir des recettes apprises par coeur, tu as peu de chances de devenir un bon devellopeur. Si tu t'en contentes et ton patron aussi, tant mieux pour toi, mais par contre, tu ferais pas long feu dans une boite high tech US comme Adobe ou la creativite est (etait? :whistle:) une des qualites essentielle attendue des devellopeurs par l'encadrement.
 
A+,

n°869985
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 12:57:37  profilanswer
 

Lam(er? ;))'s Scripsit

Citation :

Mon intervention voulait dire: beaucoup de gens apprennent principalement auprès des profs, et essayons de ne pas trop leur semer de confusion, voilà tout. Donc, parler de size_t, de son utilisation dans les tailles mémoires, les chaînes et l'opérateur sizeof, c'est très très bien, et il faut le faire.  
 
Par contre, dire qu'un code est faux sans son utilisation, ça me parrait trop prématuré. Je trouve qu'il y a plein de trucs plus enrichissant (et moins "écoeurants) à apprendre dans un premier temps, comme l'encapsulation, les techniques algorithmique classiques, etc. etc.


Je sais par experience (je fus prof aussi) que si tu apprends une definition "améliorable" a un groupe d'élèves, quand tu leur file la definition correcte plus tard, il y en a un pourcentage qui ne font pas les ajustement memoriels necessaires, et qui continuent a ne se souvenir que de la definition initiale. C'est ce genre de pb que je veux eviter en filant la bonne definition des le depart.
A+,

n°869989
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 13:03:59  profilanswer
 

gilou a écrit :

Si tu reflechis pas par toi meme sur ce que l'on t'apprend, mais te contentes de ressortir des recettes apprises par coeur, tu as peu de chances de devenir un bon devellopeur. Si tu t'en contentes et ton patron aussi, tant mieux pour toi, mais par contre, tu ferais pas long feu dans une boite high tech US comme Adobe ou la creativite est (etait? :whistle:) une des qualites essentielle attendue des devellopeurs par l'encadrement.
 
A+,


N'essaie pas de déformer mes propos...

n°870001
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 13:20:55  profilanswer
 

pains-aux-raisins a écrit :

N'essaie pas de déformer mes propos...

Je vois pas où.  
A+,

n°870007
Lam's
Profil: bas.
Posté le 11-10-2004 à 13:27:32  profilanswer
 

gilou a écrit :

C'est ce genre de pb que je veux eviter en filant la bonne definition des le depart.


Je suis d'accord avec toi sur le principe. Mais permet moi quand même de douter encore un peu.
 
Si tu dois enseigner le C, tu sors vraiment un truc comme ça dès le début à tes élévès ?
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.   // unsigned pour être compatible Latin1
  6.   unsigned char phrase[]="Salut, ça va ?\n";
  7.  
  8.   // size_t, sinon c'est péché
  9.   size_t i = 0;
  10.   // pré-incrémentation de i, car la post-incrémentation est inutile
  11.   for (i=0; i<strlen(phrase); ++i)
  12.   {
  13.      printf("%c", phrase[i]);
  14.   }
  15.   // everything's fine
  16.   return 0;
  17. }


 
Edit: un copier/coller malencontreux.


Message édité par Lam's le 11-10-2004 à 13:59:12
n°870017
masklinn
í dag viðrar vel til loftárása
Posté le 11-10-2004 à 13:44:13  profilanswer
 

Citation :

// unsigned pour être compatible Latin1


rien n'oblige à être compatible Latin1

Citation :

// size_t, sinon c'est péché


size_t, type définissant les tailles des éléments

Citation :

// pré-incrémentation de i, car la post-incrémentation est inutile


là il faut déjà expliquer la différence entre pré et post incrémentation, dans un premier example (en tant que tudiant) j'aurais mis i+=1


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°870020
Lam's
Profil: bas.
Posté le 11-10-2004 à 13:51:36  profilanswer
 

Masklinn a écrit :

Citation :

// unsigned pour être compatible Latin1


rien n'oblige à être compatible Latin1

Citation :

// size_t, sinon c'est péché


size_t, type définissant les tailles des éléments


Bon le C cédille demande un encodage 8 bits, c'est ce que je voulais dire.
 
Mais tu éludes ma question (même si elle était posée à gilou): est-ce vraiment ça que tu donnerais pour introduire les tableaux par exemple ?

n°870023
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 13:53:59  profilanswer
 

Citation :

// unsigned pour être compatible Latin1


Euh non en fait. Tu seras compatible avec la table locale des caracteres de ton systeme, s'ils sont sur 8 bits et puis c'est tout.  
Rien a voir avec Latin1, a priori. Ca pourrait tres bien etre la table des caracteres Mac sous MacOS (avant OS X). Ou une table de caracteres arabe sous un DOS arabe...
 
A+,

n°870030
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 13:57:41  profilanswer
 

gilou a écrit :

Je vois pas où.  
A+,


un soupçon de mauvaise foi...
 
edit : je suis lassé de ce troll. Dans un autre topic. :jap:


Message édité par pains-aux-raisins le 11-10-2004 à 13:58:49
mood
Publicité
Posté le 11-10-2004 à 13:57:41  profilanswer
 

n°870034
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 13:58:02  profilanswer
 

Citation :

for (i=0; i<phrase(nom); ++i)


?? variable non declarée...
A+,

n°870035
Lam's
Profil: bas.
Posté le 11-10-2004 à 13:58:17  profilanswer
 

Tu avais compris que j'étais sous un système Latin1, et que j'ai pas voulu me faire chier avec de l'unicode ou avec iconv...  
 
Mais par contre, tu ne réponds pas à ma question. Oui ou non ?

n°870036
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 13:58:54  profilanswer
 

pains-aux-raisins a écrit :

un soupçon de mauvaise foi...

J'ignore le sens de ce terme :D
Non, je poussais juste ta logique a sa conclusion.
A+,

n°870038
Lam's
Profil: bas.
Posté le 11-10-2004 à 13:59:37  profilanswer
 

gilou a écrit :

Citation :

for (i=0; i<phrase(nom); ++i)


?? variable non declarée...


fixed.

n°870041
Fishes
Posté le 11-10-2004 à 14:00:45  profilanswer
 

Boh, chuis débutant et ça a pas l'air beaucoup plus compliqué que ce qu'on voit, si on explique à quoi ça sert (genre post-pré incrémentation). :)
 
Enfin vous battez pas, faut remettre la méthode d'enseignement en question, pas les étudiants qui ne font qu'apprendre ce qu'on leur donne :)

n°870042
cris56
Posté le 11-10-2004 à 14:01:03  profilanswer
 

Citation :

// pré-incrémentation de i, car la post-incrémentation est inutile


 
 
j'avais jamais fais gaffe
 
mais je vois pas de difference au niveau du code généré, c'est normal ? (enfin pour moi ca l'est)

n°870044
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 14:04:23  profilanswer
 

il y a eu une intervention dans E&E :  http://forum.hardware.fr/forum2.ph [...] =0#t286008

n°870045
Lam's
Profil: bas.
Posté le 11-10-2004 à 14:04:27  profilanswer
 

cris56 a écrit :

Citation :

// pré-incrémentation de i, car la post-incrémentation est inutile


 
 
j'avais jamais fais gaffe
 
mais je vois pas de difference au niveau du code généré, c'est normal ? (enfin pour moi ca l'est)


 
Avec des entiers, il n'y a strictement aucune différence. Avec des itérateurs sur des containers complexes, tu peux perdre en efficacité puisque le compilo est obligé de stocker temporairement l'état de l'itérateur, en faire une copie, incrémenter l'itérateur puis te renvoyer la copie, tout ça pour rien). Et j'ai déjà vu du code désassemblé où c'était laid.  
 
Donc, si je fais une généralisation à la Gilou(;)), c'est mal !

n°870051
cris56
Posté le 11-10-2004 à 14:07:45  profilanswer
 

Lam's a écrit :

Avec des entiers, il n'y a strictement aucune différence. Avec des itérateurs sur des containers complexes, tu peux perdre en efficacité puisque le compilo est obligé de stocker temporairement l'état de l'itérateur, en faire une copie, incrémenter l'itérateur puis te renvoyer la copie, tout ça pour rien). Et j'ai déjà vu du code désassemblé où c'était laid.  
 
Donc, si je fais une généralisation à la Gilou(;)), c'est mal !


 
ok, merci
 
mais en c, quel importance ?

n°870056
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 14:09:26  profilanswer
 

bah, aucune, sauf que si tu fais un peu de C++ à côté, autant ne pas s'encombrer avec un style d'incrementation simple (i++) pour C et un autre pour C++ (++i).

n°870062
gilou
Modérateur
Modzilla
Posté le 11-10-2004 à 14:12:54  profilanswer
 

Sinon, pour repondre a ta question, oui, j'enseignerais ainsi le code.
Mais evidemment, j'aurais vu auparavant qque chose de similaire pour apprendre a imprimer la valeur d'un entier. Un cours doit etre qque chose de progressif. Et j'eviterais de faire appel a strlen a chaque tour de boucle (bon, on peut esperer que le compilo optimise celà)....
Et puis un flush apres la boucle, ca serait pas inutile (je sais l'exit 0 devrait le generer, mais pourquoi ne pas prendre de bonnes habitudes)
[et mettre le \n en fin de phrase cache le pb IMHO]
 
D'ailleurs le genre d'exercice que tu donnes ici justifie pleinement d'enseigner le C++ (et non le C) aux debutants, bien plus simple et clair sur ce genre de problemes.
 
A+,


Message édité par gilou le 11-10-2004 à 14:20:47
n°870064
masklinn
í dag viðrar vel til loftárása
Posté le 11-10-2004 à 14:14:08  profilanswer
 

Lam's a écrit :

Mais tu éludes ma question (même si elle était posée à gilou): est-ce vraiment ça que tu donnerais pour introduire les tableaux par exemple ?


honnêtement, oui, vu le temps que j'ai passé à me demander d'ou venait cette saloperie de size_t qu'il y en a plein la STL parce qu'on m'a appris à utiliser des ints/longs pas moyen que je fasse de même si j'apprend à des gens [:spamafote]  

Citation :

Donc, si je fais une généralisation à la Gilou(;)), c'est mal !


Dire c'est mal, c'est mal ( :whistle: ), expliquer pourquoi la pré est meilleure que la post incrémentation dans ce cas là et les différences entre pré et post, c'est la bonne méthode.
 
Là encore, la pré-incrémentation j'ai pas appris ca en cours alors que ca m'aurait interessé, c'est un pote qui m'a montré ce truc et expliqué en gros l'intérêt

Citation :

mais en c, quel importance ?


ben la pré incrémentation, ca donne  
modif valeur / sortie valeur
alors que la post donne
sortie valeur / modif valeur (/ sortie valeur), donc tu peux y gagner, et même si t'y gagnes pas en C ca donne de bonnes habitudes.
 
C'est pas loin du coupage de cheveux en quatre, mais c'est logique et pratique [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°870072
cris56
Posté le 11-10-2004 à 14:19:03  profilanswer
 

Masklinn a écrit :

ben la pré incrémentation, ca donne  
modif valeur / sortie valeur
alors que la post donne
sortie valeur / modif valeur (/ sortie valeur), donc tu peux y gagner, et même si t'y gagnes pas en C ca donne de bonnes habitudes.


 
merci, je savais :)
 
je parlais la du cas particulier de la boucle (incrementation en poste action), ou de toute facon ya pas trop le choix

n°870079
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:22:07  profilanswer
 

for (i=0; i<strlen(phrase); ++i)
 
 
ouahh trop puissant ton truc !

n°870085
cris56
Posté le 11-10-2004 à 14:25:00  profilanswer
 

a ouai, autant de parcours inutiles de la chaine :D

n°870089
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:26:51  profilanswer
 

c'est pas la peine de faire des commentaires à la con dans ce cas là ...

n°870094
Lam's
Profil: bas.
Posté le 11-10-2004 à 14:29:31  profilanswer
 

Tu veux dire que pour écrire une chaîne je ne suis pas non plus obligé de faire une boucle for ?  
 
Mais tu es un génie, un dieu, et je ne suis qu'une sous-merde.  
 
Pitié, abreuve moi de ton savoir !!!

n°870101
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:31:39  profilanswer
 

... si tu t'en rends même pas compte ...
 
mais tu dis vrai, c'est assez stupide d'utiliser printf pour écrire un simple caractère.

n°870109
cris56
Posté le 11-10-2004 à 14:33:20  profilanswer
 

Lam's a écrit :

Tu veux dire que pour écrire une chaîne je ne suis pas non plus obligé de faire une boucle for ?  
 
Mais tu es un génie, un dieu, et je ne suis qu'une sous-merde.  
 
Pitié, abreuve moi de ton savoir !!!


 
tu crois que ca fais quoi strlen ?

n°870115
Lam's
Profil: bas.
Posté le 11-10-2004 à 14:35:35  profilanswer
 

Cris, je sais très bien comment fonctionne strlen. J'ai pas voulu polluer mon exemple parce que ce n'était pas le but (et parce que je soupçonne le compilateur d'utiliser un invariant ici). D'ailleurs, l'exemple lui-même n'a pas besoin de boucle for...
 
Comme je l'ai dit plus haut, il faut arreter à un moment de prendre tout le monde pour des cons. C'est lourd à force. Je ne vous dénigre pas, essayez d'en faire de même...

n°870118
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 14:37:58  profilanswer
 

on peut fermer ce topic je crois...
[:m-power-bmw]

n°870119
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:38:26  profilanswer
 
n°870124
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:39:15  profilanswer
 

Lam's a écrit :

Cris, je sais très bien comment fonctionne strlen. J'ai pas voulu polluer mon exemple parce que ce n'était pas le but (et parce que je soupçonne le compilateur d'utiliser un invariant ici). D'ailleurs, l'exemple lui-même n'a pas besoin de boucle for...
 
Comme je l'ai dit plus haut, il faut arreter à un moment de prendre tout le monde pour des cons. C'est lourd à force. Je ne vous dénigre pas, essayez d'en faire de même...

on a du mal à te prendre au sérieux avec les conneries que tu sors ...

n°870131
Taz
bisounours-codeur
Posté le 11-10-2004 à 14:43:12  profilanswer
 

pains-aux-raisins a écrit :

bah, aucune, sauf que si tu fais un peu de C++ à côté, autant ne pas s'encombrer avec un style d'incrementation simple (i++) pour C et un autre pour C++ (++i).

y a pas d'encombrement, y a juste appel à 2 opérateurs différents. Surchargeables en C++. Si tu avait bar() et baz(), c'est si baz() fait bar() + des bêtises, et que justement tu veux juste exprimer "bar()", je vois pas pourquoi tu ferais baz(). Dans un certain sens, ++i serait plus lisible -- sujet-verbe-complément -- j'incrémente i.

n°870162
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 14:56:33  profilanswer
 

et c'est reparti... non, mais tu prends pour un demeuré ?
 
edit : je connais parfaitement la différence en la pré et la post incrémentation. C'est clairement expliqué dans le stroustrup que je me suis tapé en entier...


Message édité par pains-aux-raisins le 11-10-2004 à 14:59:29
n°870167
Taz
bisounours-codeur
Posté le 11-10-2004 à 15:05:28  profilanswer
 

non.

n°870176
masklinn
í dag viðrar vel til loftárása
Posté le 11-10-2004 à 15:11:23  profilanswer
 

pains-aux-raisins a écrit :

et c'est reparti... non, mais tu prends pour un demeuré ?
 
edit : je connais parfaitement la différence en la pré et la post incrémentation. C'est clairement expliqué dans le stroustrup que je me suis tapé en entier...


Tu parles de s'encombrer avec 2 opérateurs différents en fonction du langage alors que les 2 opérateurs existent dans les 2 langages et n'ont pas la même fonction [:itm]  
 
Donc même moi je suis capable de voir qu'il te manque une paire de notions à ce sujet [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°870181
sircam
I Like Trains
Posté le 11-10-2004 à 15:15:53  profilanswer
 

C'est assez enrichissant, ce débat sur le respect des standards.
 
Je ferais le parallèle avec java. Qqn qui se pointerait avec du code pas catholique se ferait remettre à sa place.
 
Et des justifications du style "dans mon cas c'est acceptable", "le projet veut que", "oui mais ça marche quant même" et autres "je fais comme ça dans un premier temps, je débute" seraient rapidement évacuées, pour les plus justes raisons.
 
Je ne vois pas pq ce ne serait pas pareil en C. Pq ça doit toujours être la jungle ? Respecter des standards et prendre des bonnes habitudes est bénéfique pour le développeur et, à terme, pour tout le monde.
 
La preuve : on est en encore à passer régulièrement du temps sur des const ou des size_t sur cette section du forum.
 
Tout autre chose : je suis le premier à envoyer bouler les gens à l'orthographe infecte qui posent des questions en style SMS sur ce site - et qui viennent ensuite pleurnicher parce qu'on leur fait la remarque, mais les critiques à l'encontre de personnes qui _répondent_ et fournissent ici quantité des conseils sont nettement moins pertinantes.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°870182
Lam's
Profil: bas.
Posté le 11-10-2004 à 15:18:38  profilanswer
 

Masklinn, relis la question originale de Cris56, et ma réponse ainsi que celle de Pains-aux-raisins.
 
Sa remarque était: pourquoi prendre l'habitude de faire un for (...;...; i++) en C , alors que l'habitude voudrait que l'on fasse for (...;...; ++i) en C++ lorsque l'on travaille avec des itérateurs.  

n°870183
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 15:19:00  profilanswer
 

Masklinn a écrit :

Tu parles de s'encombrer avec 2 opérateurs différents en fonction du langage alors que les 2 opérateurs existent dans les 2 langages et n'ont pas la même fonction [:itm]  
 
Donc même moi je suis capable de voir qu'il te manque une paire de notions à ce sujet [:spamafote]


Tu le fais exprès :heink: ? Tu veux troller pour le plaisir ? On parle bien du ++i dans le contexte de la boucle for ???


Message édité par pains-aux-raisins le 11-10-2004 à 15:19:45
n°870186
Taz
bisounours-codeur
Posté le 11-10-2004 à 15:20:00  profilanswer
 

pourquoi "dans le contexte de la boucle for " ?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7

Aller à :
Ajouter une réponse
 

Sujets relatifs
excel - aide sur des fonctionsOnDestroy et CDialog non modale... un peu d'aide svp ;-)
Aide siteaide svp : Jeux en réseaux !
aide requete sql pb syntaxenovice en prog demande aide
Besoin d'aide pour resoudre un bug d affichage xhtml/cssaide fonction qui appel l'événment OnActivate chaque 3 minutes
Besoin d'aide php svp 
Plus de sujets relatifs à : demande Aide sur un exercice!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR