Partage

[Exercices] Venez vous entraîner !

Ce mois: Parseur de fonctions mathématiques

14 août 2008 à 9:09:12

J'ai ientot fini mon programme BF (disons... plus qu'une heure ^^). J'avai cepandant une question sur le délai : a-t'on jusqu'au 15 aout à 00h01 ou jusqu'a 23h59 (je sais, c'est comme pour le concours); ou alors Reponse_Exercice les prends dans la journée.
14 août 2008 à 9:51:28

Citation : Jivaa

Bonjour, a quand les exercices Août ?



Quand j'aurais le temps.

Citation : yudassen

J'ai ientot fini mon programme BF (disons... plus qu'une heure ^^). J'avai cepandant une question sur le délai : a-t'on jusqu'au 15 aout à 00h01 ou jusqu'a 23h59 (je sais, c'est comme pour le concours); ou alors Reponse_Exercice les prends dans la journée.



Idem, je les prends quand j'ai le temps mais certainement pas à minuit...
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
14 août 2008 à 21:21:17

Pour le minuit, c'était une façon de parler ^^ .
J'ai finit mon programme et te l'envoie.
Edit : j'ai un problème d'acces internet, je te l'enverrai demain.
15 août 2008 à 10:01:08

J'arrive toujours pas à comprendre le fonctionnement de [ et ] o_O
15 août 2008 à 11:31:08

Qu'est ce que tu ne comprends pas ? Tu n'as certainement pas rien compris.
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
15 août 2008 à 11:48:19

"saute à l'instruction après le ] correspondant si l'octet pointé est à 0";L'octet pointé lorsque le programme trouve le crochet "d'ouverture" ou l'octet pointé après le crochet de "fermeture" ?

Car si c'est lorsque le programme tombe sur le crochet, je comprend pas pourquoi la boucle est executée ici :

[                   Boucle initiale qui affecte des valeurs utiles au tableau
   >+++++++>++++++++++>+++>+<<<<-
]


Vu que a[0] != NULL à cause juste avant qui est :

++++++++++
15 août 2008 à 11:53:29

Justement c'est différent de 0 donc on ne saute pas la boucle > on rentre dedans.
15 août 2008 à 11:58:59

merci Tealc13 =)
J'ai essayé de compiler le hello world d'après ce que j'ai compris, et j'ai pas de hello world mais des caractère bizarre o_O

Edit : Je l'ai enfin le Hello World !! (la joie ^.^), c'est trop tard pour envoyer le code là ?
15 août 2008 à 17:05:29

Non, je ne pense pas ;) , du moins, moi j'ai envoyé le mien à 9heure moins l'quart ^^ .
Anonyme
15 août 2008 à 17:50:02

C'est pas un concours, hein. Envoyer votre réponse que si vous pensez que votre code est bon, et qu'il pourra servir d'exemple.
15 août 2008 à 18:02:59

Moi je l'ai pas encore envoyé vu qu'un problème subsiste avec les boucles imbriqués, j'ai pas trop d'idée sur comment régler ça, donc je pense pas que j'enverrais le mien......=/
15 août 2008 à 19:56:13

C'est aujourd'hui la correction non ?
15 août 2008 à 20:54:02

Citation : Hiura

C'est pas un concours, hein. Envoyer votre réponse que si vous pensez que votre code est bon, et qu'il pourra servir d'exemple.



Je ne peux que plussoyer.
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
15 août 2008 à 22:58:38

Erf ça fait 3heure que je réfléchis à un moyen pour ses boucle imbriqués, mais je trouve rien =/ C'est bien complexe, j'attends voir la correction à ce sujet =)
16 août 2008 à 13:26:25

Oui, c'est plutôt difficile :s
17 août 2008 à 18:07:59

j'ai réussi après avoir galéré pour les boucles imbriquées.
par contre j'ai eu du mal à vérifier que le résultat est bon (avec tous ces chiffres qui s'affichent dans la console :p )
17 août 2008 à 19:11:48

Exercice du mois d'août 2008



Nom : Des chiffres ...
Sujet : Algorithme


Introduction



Vous connaissez très certainement le célèbre jeu télévisé "Des chiffres et des lettres". (Et oui ! On a aussi la télé en Suisse !) Ce que je vous propose ce mois est de coder un programme qui résoud la partie "Le compte est bon du jeu".

Les règles du jeu sont très simple. On prends un nombre entier au hasard entre 100 et 999 (compris). On tire également au hasard 6 nombres dans la liste {1,2,3,4,5,6,7,8,9,10,25,50,75,100} (on peut tirer plusieurs fois le meme).
Le but du jeu est alors d'atteindre le résultat en combinant les 6 chiffres tirés avec les 4 opérations élémentaires (+,-,*,/) et autant de parenthèses que nécessaire. On est pas obligé d'utiliser tous les nombres.
Si on arrive pas à obtenir le résultat, alors on cherche à atteindre le nombre le plus proche.

L'exercice



Niveau 1



Votre programme devra tirer un nombre au hasard ainsi que 6 autre nombres conformément aux règle spécifiées ci-dessus. Il devra ensuite chercher le moyen d'arriver au résultat en combinant les opérations élémentaires.
Il devra finalement présenter le calcul à faire pour y arriver.

Par exemple:
Nombre à atteindre: 660
Nombres choisis: 1,2,10,10,3,8
Recherche de solution....
On arrive au résultat en faisant : (2*3)*(10+1)*10


Niveau 2



Quand on propose un tirage, on est pas assuré qu'on puisse bien atteindre le résultat souhaité, ce qui n'est pas pratique pour les gens qui jouent.
Le but est ici d'écrire un programme qui donne un tirage (résultat + les 6 nombres) qui assure qu'on puisse atteindre le résultat.

Votre programme ne doit pas utiliser la force brute qui consiste à essayer des combinaisons jusqu'à ce qu'on trouve une qui corresponde à ce que l'on veut.

----------------------------------------------------------------------

Vous avez jusqu'au 15 septembre pour soumettre vos réponses à Réponse_Exercices.

Bonne chance à tous !

P.S.: Je vous laisse deviner le sujet du mois prochain :)
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
17 août 2008 à 19:22:08

Citation : Nanoc

Votre programme ne doit pas utiliser la force brute qui consiste à essayer des combinaisons jusqu'à ce qu'on trouve une qui corresponde à ce que l'on veut.


C'est valable aussi pour le niveau 1 ? car honnêtement je vois pas d'autre technique que le bruteforce :-°
17 août 2008 à 19:55:58

Non pour le niveau 2 uniquement.
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
18 août 2008 à 16:51:01

On a le droit de générer d'abord les 6 chiffres, puis ensuite le résultat à partir de ces chiffres ?
18 août 2008 à 18:55:50

Je pense, mais vérifie bien que le résultat est bien entre 100 et 999
18 août 2008 à 19:03:02

Dans ces cas la, il n'y a pas beaucoup d'intérêt... il faudrait que l'utilisateur entre au moins le nombre d'origine...

Enfin bon... Je vais pas contester l'énoncé, hein!? :-°
18 août 2008 à 20:04:07

Ca n'existe plus "des chiffres et des lettres" ? Vos remarques et questions me laissent perplexe.

Toute la partie tirage des nombres de départ (et non chiffres), et du nombre à tirer relève uniquement du hasard, et ne présente pas un intérêt exceptionnel.

Toute la difficulté tient dans l'algo de recherche de solution.
(et j'avoue être curieux sur le "pas d'approche brute")
C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
18 août 2008 à 20:25:37

pour le niveau 2, on peut tirer les 6 nombres et seulement après chercher un résultat? parce que tirer à chaque fois un nombre et 6 autres et voir si il y a un truc qui colle ça peut durer longtemps :euh:
PS:

Citation : Nanoc

(Et oui ! On a aussi la télé en Suisse !)


sacrés Suisses ils nous étonneront toujours :lol:
18 août 2008 à 20:53:49

Tout ce que vous voulez. Il faut simplement générer un tirage jouable.
Mais j'avoue que je n'ai pas pensé à faire ça, ce qui complique pas mal l'exerice d'où le niveau 2.

Le but n'est pas ici de reproduire le jeu mais plutôt de reproduire le programme informatique qui aide le présentateur à vérifier que la solution est correcte.

Les règles complètes ici: http://fr.wikipedia.org/wiki/Le_compte [...] ompte_est_bon

@thesimsone: Cette remarque est là parce que chaque fois que je vais en France, on me demande où j'ai mis mes vaches pendant que je suis en vacances ou bien si je vis dans un chalet en bois sans eau ni électricité. Ils sont fous ces français !
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
19 août 2008 à 2:08:41

Moi je vis la même chose car j'habite au CANADA pays où l'on chasse l'ours pour se nourrir....
19 août 2008 à 18:54:39

Ah!? Donc c'est vrai que vous chassez pour vous nourrir?? :p
20 août 2008 à 15:10:20

J'ai fait 4 des exercices proposés jusqu'à date et je dois dire que c'était très enrichissant! Bravo Nanoc.


Sinon, j'ai une petite question.
Pour le Brainfuck, y a-t-il d'autre erreur possible, dans le code, que des [ et des ] manquants?

Ps.. Trop trop fort le code.. Voir que quelqu'un à coder ça en Brainfuck o_O
20 août 2008 à 15:15:07

Je comprends pas ta question.
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
20 août 2008 à 16:06:03

Pour l'exemple du :

--- Lancement de l'interpreteur... ---

ERREUR : '[' Manquant

--- Interpretation abandonnee ---

Je ne vois pas d'autre(s) erreur(s) possible (à part son homonyme, ']')... Je voulais donc savoir s'il y avait d'autre(s) erreur(s) qu'on devait signaler?