Concours de code : new test en cours, proposez votre solution ! [C++] - C++ - Programmation
Marsh Posté le 02-08-2003 à 00:27:40
je pense que le topic 'trouver les bugs' est mieux. ça va vite être le bordel si tout le monde balance 25lignes... mais on peut essayer si tu veux
Marsh Posté le 02-08-2003 à 00:29:38
Taz a écrit : je pense que le topic 'trouver les bugs' est mieux. ça va vite être le bordel si tout le monde balance 25lignes... mais on peut essayer si tu veux |
Je connaissait pas le topic "trouvez les bugs"...
Sinon, on choisi quoi comme theme de depart ?
Marsh Posté le 02-08-2003 à 00:30:34
aucune idée... pas le sujet de ton prochain tp de préférence
Marsh Posté le 02-08-2003 à 00:32:09
Taz a écrit : aucune idée... pas le sujet de ton prochain tp de préférence |
AHAHAH, merci de ta solicitude, mais mes annees de facs sont loin derriere moi..
Bref, je vais scruter sur le web pour trouver un idée.
Marsh Posté le 02-08-2003 à 00:33:24
Pour bien montrer aux éleves ce qu'il ne faut pas faire en apprenant le C, les profs de ma fac organisaient le concours suivant:
#1 : "écrire un programme C qui trie lexicalement les arguments de la ligne de commande, dont le source est le plus court possible"
Marsh Posté le 02-08-2003 à 00:35:03
Pourquoi pas...
Si tout le monde est d'accord on peut essayer ca.
Marsh Posté le 02-08-2003 à 00:41:58
Code :
|
Marsh Posté le 02-08-2003 à 00:45:48
Taz a écrit : merde, j'ai le droit de jouer? |
les meilleurs arrivaient facilement en dessous des 100 caractères pour le source tout entier; remarque si tu veux on peux te faire jouer seul dans la catégorie c++/stl
Marsh Posté le 02-08-2003 à 00:47:25
je veux pas d'un concours de code brouillé. j'ai donné l'exemple: du code clair, sur, réutilisable, performant
Marsh Posté le 02-08-2003 à 00:47:45
Difficile de faire mieux la....
On sent la maitrise de la STL.
Marsh Posté le 02-08-2003 à 00:49:32
bon, je joue pas, je corrige. j'efface ou tu propose un truc de la même complexité?
Marsh Posté le 02-08-2003 à 00:49:33
Taz a écrit : je veux pas d'un concours de code brouillé. j'ai donné l'exemple: du code clair, sur, réutilisable, performant |
Et qui compile pas sous Visual !
Marsh Posté le 02-08-2003 à 00:50:09
fykman a écrit : |
c'est visual qui compile pas. c'est quoi le problème?
Marsh Posté le 02-08-2003 à 00:52:40
Taz a écrit : c'est visual qui compile pas. c'est quoi le problème? |
"Cannot convert char** to unsigned int"
ligne : vector<string> args(argv, argv+argc);
Et t'as oublié "return(0);" a la fin
Marsh Posté le 02-08-2003 à 00:54:11
l'erreur, je la comprends pas.
j'ai pas oublié le return(0). il est implicite: la valeur renvoyée est garantie comme indiquant une sortie correcte
d'ailleurs, ça serait un return 0, return étant une instruction et pas une fonction
Marsh Posté le 02-08-2003 à 01:00:29
ReplyMarsh Posté le 02-08-2003 à 01:03:10
fykman a écrit : |
y a pas de support technique dans un compilo si cher (ok j'arrete)
Marsh Posté le 02-08-2003 à 01:15:13
Ca, ca compile et ca marche :
Code :
|
Mais c'est moins elegant, forcement....
Marsh Posté le 02-08-2003 à 01:19:19
Taz a écrit : c'est bizarre cette histoire de constructeur... |
boarf, ça m'étonne pas. Je me suis déjà cassé les dents à faire du code stl portable entre msc6 et d'autres compilos, le facteur limitant est vite trouvé.
Marsh Posté le 02-08-2003 à 01:20:30
SchnapsMann a écrit : |
c'est con quand même. c'est pas une question de version de STL. j'y connais rien mais j'ai déjà entendu des trucs là dessus. ou c'est vraiment le compilo?
Marsh Posté le 02-08-2003 à 01:23:16
Taz a écrit : c'est con quand même. c'est pas une question de version de STL. j'y connais rien mais j'ai déjà entendu des trucs là dessus. ou c'est vraiment le compilo? |
ouais même en utilisant VC++6 SP5, ce compilo ne passe pas tous les tests de conformance au standard stl
Marsh Posté le 02-08-2003 à 01:25:14
J'y connais rien mais tu fait un cast inplicite entre un char** et un vector<string>::interator, le compilo doit pas aimer ca...
Marsh Posté le 02-08-2003 à 01:28:31
non, c'est pas ce qui se passe. tu peux imaginer le code du contructeur de vector comme ça
Code :
|
dans notre cas, *begin est de type char* ce qui est compatible avec le constructeur string(const char*)
Marsh Posté le 02-08-2003 à 01:30:15
SchnapsMann a écrit : Pour bien montrer aux éleves ce qu'il ne faut pas faire en apprenant le C, les profs de ma fac organisaient le concours suivant: |
en O'caml :
Code :
|
Marsh Posté le 02-08-2003 à 01:31:12
ReplyMarsh Posté le 02-08-2003 à 01:32:04
Taz a écrit : je te reconnait bien là |
j'avais trop envie. En plus ce truc est meme pas fonctionnel !
Marsh Posté le 02-08-2003 à 01:32:41
ReplyMarsh Posté le 02-08-2003 à 01:36:19
Taz a écrit : pourquoi? |
Code :
|
ca trie le tableau "en place", donc par effet de bord donc pas fonctionel (ou les valeurs n'ont pas le droit d'etre modifiées).
edit : version fonctionelle :
Code :
|
Marsh Posté le 02-08-2003 à 01:37:19
nraynaud a écrit :
|
ah en ocaml, ok.
Marsh Posté le 02-08-2003 à 10:42:36
ouaip bonne idee, malheureusement jsuis pas un bete de c++,
mais ca peut le faire
Marsh Posté le 02-08-2003 à 10:47:31
faudrait clairement mettre le titre du 'contest' dans lentete du topic , et mettre en dessous le code de ceux qui ont deja reussi a le faire
un truc clair quoi
un peu comme le concours graphisme....
Marsh Posté le 02-08-2003 à 11:13:01
ouais moi aussi ca marrangerai bien , mais bon si on peut sameliorer en c++
du moment que ca devie pas en concours stl...
Marsh Posté le 02-08-2003 à 11:17:31
bof, moi de toute facon j'associe automatiquement le C++ à la stl
et comme je connais pas la stl, je ferai du C
Marsh Posté le 02-08-2003 à 11:46:10
on est cat C++, pourrissez pas le topic. si vous voulez faire la meme chose dans d'autres langages, pas de problèmes. quelqu'un n'a qu'a créer le meme topic en C et voir ce que donne le meme problème, c'est tout suite moins bien en C
Marsh Posté le 02-08-2003 à 14:07:58
En adaptant un peu la version de Taz pour raccourcir :
Code :
|
Voila, c'est plus court et ça fait ce qui est demandé
Edit : il vaudrait beaucoup mieux utiliser multiset que set !
Marsh Posté le 02-08-2003 à 00:25:42
Salut,
Il sagit donc d'un petit concours de code.
Par exemple, on defini une petite tache a acomplir (parsing de texte, calcul mathematique...), chaque personne poste son code et on juge le meilleur (meilleure optimisation, elegance du code, ruses de sioux, etc..).
Il ne faut pas que ce ne soit pas trop long (15-20 lignes max).
Le juge-correcteur officiel est Taz, bien sur vous pouvez aussi juger/critiquer/corriger.
edit de Taz :
Pour ceux qui utilise g++ (ou mingw, dev-cpp), votre code doit compiler avec ces paramètres :
g++ -Wall -std=c++98 -pedantic
Test #1 (proposé par SchnapsMann) :
-------------------------------
#1 : "écrire un programme C qui trie lexicalement les arguments de la ligne de commande, dont le source est le plus court possible"
Meilleur resultat proposé par Kristoff (adapté du code de Taz)
Test #2 (proposé par Taz):
--------------------------
Il sagit de donner les anagrammes de mots a partir du dictionnaire de francais suivant :
http://dejean.benoit.free.fr/tmp/french.zip
Essayez de faire un programme sur avant d'être efficace, au niveau de la lecture du fichier aussi. Dans mon programme, on quitte en envoyant EOF (CTRl+D sous *n*x, CTRL+Z sous windows).
Pour ceux qui n'auraient pas saisi, l'idéal serait d'avoir un affichage comme ça
[benoit@athlon tmp]$ ./a.out /usr/share/dict/french
aimer
aimer : aimer, maire, marie,
nouveau
nouveau : nouveau,
Message édité par fykman le 03-08-2003 à 12:53:57