Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exos de zeros

Apprenez à programmer en suivant des règles

    14 avril 2009 à 9:49:33

    Bonjour les zéros.

    "La théorie sans la pratique est vide", c'est pourquoi ce n'est pas très utile les tutoriels s'ils ne sont pas accompagnés d'exercices d'application.

    suite aux demandes de certains zeros, j'ai décidé de créer ce topics présentant des sujets de programmation en java afin de toujours progresser.

    Liste des exercices :

    Date Exercice Correction
    1 15/04/2009 Les chiffres sans les lettres -
    2 01/06/2009 Un éditeur pas comme les autres -
    3 01/07/2009 Le meilleur joueur -
    4 01/08/2009 La boule au fond -
    5 01/04/2010 JavaQuarium -
    6 01/04/2011 La blague de l'année Topic de correction


    Mode d'emploi
    Tout les 1er du mois vous sera déposé un mini cahier de charge contenant un exercice de programmation .

    Et ceux qui sont déjà avancés ? :euh:

    Pour les non débutants ne vous inquiétez pas, l'exercice enquestion sera composé de questions de niveau évolutif.

    Type de sujets
    Le but de chaque exercice est de permettre à chaque zeros d'évoluer, c'est pour cela que des exercices toucheront un peu à tous les domaines de java (console, interface, réseau, thread, UML).
    Pour le moment nous ne mettrons pas d'exercices sur la J2EE, ou sur la J2ME, mais ça arrivera un peu plus tard.
    Les suggestions d'exercices par des zeros sont possibles par MP à l'utilisateur "willard".

    Soumission de réponses
    Il est strictement inutile d'envoyer un MP à "willard".
    Lorsque votre exercice est terminé, vous allez alors envoyer celui-ci en MP a l'utilisateur "ExoJava", celui-ci ne se connectera que les fin du mois afin de récupérer les différentes réponses proposées. Il n'accepte pas les demandes d'amis.
    C'est quoi le format d'envoi des messages ?

    Pour envoyer vos messages vous le ferez suiat ce format:
    Le titre du message :"user"_"DateLancement"
    Exemple : willard_15/04/2009
    Le sous titre : "Version"_"NuméroVersion"
    Exemple : version_1
    Le numéro de version correspond au nombre de fois que vous soumettez pour un même exercice.
    Contenu du message : Une introduction sur la version de java utilisé ou encore vos commentaires sur l'exercice, ensuite votre code bien encadré par les balises java.

    Les exercices qui ne sont pas soumis dans le bon format ne seront pas corrigés


    Que devient nos réponses ?
    Après correction, les 3 meilleurs codes sont postés sur le site. Il ne sert à rien de copier des codes sans comprendre pour gagner, ceci n'est pas le but.

    Alors je vous laisse découvrir les exercices.
    J'attends vos réactions.

    Bonne chance !!!

    • Partager sur Facebook
    • Partager sur Twitter
    J'ai tous les badges d'OpenClassrooms.
      14 avril 2009 à 10:49:46

      Exercice de la seconde Moitié du mois:

      Titre: Les chiffres sans les lettres
      Thème: Aléatoire, Algorithme, Graphique, réseau, Thread.

      Énoncé:
      On connait pour la plus part le jeu de chiffres et des lettres ! ici nous nous intéresserons aux chiffres.

      Principe
      La liste de choix: suite de 7 nombres , qui sont proposés par l'ordinateur
      Résultat à atteindre: Nombre que l'on veut obtenir par une suite d'opérations.
      Opérateur : addition, soustraction, multiplication, division

      Le but du jeu est de donner à deux concurrents la liste de choix ainsi que le résultat à atteindre. partant de ces paramètres, les eux concurrents vont essayer d'atteindre le résultat, en utilisant les opérateurs.
      un élément de la liste peux ne pas être utilisé, mais dans le cas où il est utilisé il, ne peux plus l'être une deuxième fois


      Exemple:
      Liste de choix: 4, 2, 100, 30, 15, 1, 2
      Résultat à atteindre : 222

      Reponse :
      4*15=60
      60*2=120
      120+100=220
      220+2=222
      Programme terminé


      Cahier de charges

      Question 1: Concevoir le résultat atteindre
      Il est composé de 3 chiffres (entre 0 et 9 ) avec équiprobabilité d'obtenir chacun des chiffres.

      On aura donc : [0-9][0-9][0-9]


      Question 2: Concevoir la liste de choix
      Il s'agit de concevoir une liste de choix a proposer. Elle est faite ainsi:
      • Elle est composée de 7 nombres
      • chaque nombre est situé entre 1 et 100

      Les nombres seront composé de 3 chiffres pris comme suit:
      1er chiffre: entre 0 et 1 (avec prob(1)=1/7 ; prob(0)=6/7)
      2e chiffre: entre 0 et 9 (0 si 1er chiffre est 1 , si le 1er chiffre est 0 alors 0,2,5,7 ont une probabilité égale au double de celle des autres )
      3e chiffre:
      - entre 0 et 9 (si le 1er chiffre est 0 et 2e chiffre est 0)
      - 0 ou 5 (si le 1er chiffre est 0 et 2e chiffre différent de 0)
      - 0 (si le 1er chiffre est 1)

      Question 3: Concevoir le cœur du programme
      A base de l'algorithme de votre choix, permettre d'afficher la solution la plus optimale possible pour le problème.
      On ne doit pas consommer trop de ressource, si possible indiquer la complexité de votre algorithme


      Question 4: Interface graphique
      Pour eux qui arriverons à cette étapes, ils pourront sans doute faire une interface tel que l'utilisateur n'aura qu'à saisir dans des champs appropriées sa solution , et le système est chargé de vérifier si elle est juste.

      Question 5: Gestion des flux et thread

      Ici il s'agit de mettre en œuvre les deux interfaces précédentes en réseau, tel que les 2 concurrents participent et soumettent leur solution (ceci réalisé pendant un temps définis par le programme et paramétrable).
      Si les deux solutions sont exacte le gagnant est le premier à avoir soumis son code.

      Bonne chance à vous !!!

      Pour les remarques ou question veuillez faire des MP à "willard" un membre du SDZ
      • Partager sur Facebook
      • Partager sur Twitter
        14 avril 2009 à 19:34:45

        C'est bon, les posts sur le topic sont permis j'attends vos avis et vos réactions merci à tous
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          14 avril 2009 à 19:44:30

          Bon exercice, mais une petite erreur dans l'énoncer, l'énoncé dit que chaque nombre est compris entre 1 et 999. Or d'après les règles qui suivent, les nombres sont compris entre 1 et 100.

          Sinon, je ne vois pas vraiment l'intérêt d'une interface graphique, sauf éventuellement pour la partie où on fait le jeux en réseau.
          • Partager sur Facebook
          • Partager sur Twitter
            14 avril 2009 à 19:53:55

            Ok, j'ai fais signe a ExoJava il devrait rééditer le sujet bientôt.
            Pour l'interface graphique, c'est juste pour vérifier comment les zeros conçoivent une interface a partir d'un problème défini.
            Il faut un respect des règles ergonomiques.
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              14 avril 2009 à 20:56:49

              Bon intiative.
              Mais l'exercice me parait un peu difficile :euh:
              • Partager sur Facebook
              • Partager sur Twitter
                14 avril 2009 à 21:10:40

                Ce n'est pas si difficile que ça si on s'y met sérieusement on peux facilement le faire, et la correction est faite par questions donc ne vous découragez pas.
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai tous les badges d'OpenClassrooms.
                  15 avril 2009 à 19:27:28

                  Je sais pas pourquoi le topic n'as pas été mis en post-it, bizarre o_O
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 avril 2009 à 19:33:28

                    les admin refuse je ne sais pas pourquoi ?
                    Ils pensent peut être que ce n'est qu'un simple topic.
                    ra la la.
                    le forum java est vraiment déprécie ici !!
                    • Partager sur Facebook
                    • Partager sur Twitter
                    J'ai tous les badges d'OpenClassrooms.
                      15 avril 2009 à 21:14:51

                      Rien n'empêche à ceux qui ont le temps de faire les exercices proposés. :p

                      J'ai pas mal de code à proposé d'ailleurs que je ferai une fosi que j'aurai le temps, en même temps ça me permettra d'améliorer mon code.
                      Il y a aussi cette fameuse méthode stop que je dois virer et stopper l'exécution d'un Thread proprement.

                      Enfin là j'm'en fou un peu car c'est un bête chronomètre, donc c'est pas grâve si y'a des donnée qui se perdent à l'arrêt du thread.

                      Mais je vais quand même devoir améliorer si plus tard je veux faire des jeux client serveur.

                      PS : en faite les admins du style Matéo21 ? (Hein c'pas bien :p)
                      P-e qu'ils sont nostalgique au java.





                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 avril 2009 à 21:48:20

                        Citation : Edmeral

                        Je sais pas pourquoi le topic n'as pas été mis en post-it, bizarre

                        :(
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 avril 2009 à 22:19:00

                          Citation : Lolilolight

                          Il y a aussi cette fameuse méthode stop que je dois virer et stopper l'exécution d'un Thread proprement.

                          Enfin là j'm'en fou un peu car c'est un bête chronomètre, donc c'est pas grâve si y'a des donnée qui se perdent à l'arrêt du thread.


                          Arrêter un Thread avec la méthode stop est une hérésie totale. Cette méthode est très dangereuse. Si tu eux savoir comment arrêter un thread proprement quand il est bloquer sur un appel bloquant, voici un lien très utile (pour les non anglophobes).

                          Citation : kohan95

                          post-it post-itpost-itpost-it


                          Il faut éviter ce genre de commentaire si l'on veut que le sujet finisse en post-it, il faut juste prouver que le sujet n'intéresse pas que son créateur ainsi que trois ou quatre paumés. Si ce sujet a du succès suite au premier exercice ou deux, il sera sûrement mis en post-it. Si les admins ne l'ont pas mis, c'est qu'ils ont des raisons, c'es ce qu'il faut se dire. Enfin, le sujet est intéressant, et je vais sûrement essayer de le faire (sauf pour l'IHM) si j'ai le temps.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 avril 2009 à 2:52:41

                            Bonjour,
                            Je ne sais pas si "j'ai le droit" de poser des questions par rapport à l'exercice ici, ou bien s'il est préférable que je crée un nouveau topic, mais bon... Voilà, étant débutant, je bloque à la question 2 où nous devons traiter les probabilités. Pour le premier chiffre, je génère un nombre aléatoire entre 1 et 7 inclu. et si le nombre généré est entre 1 et 6, le premier chiffre est 0, sinon c'est 1.
                            if ( this.aleatoire( 1, 7 ) ) {
                                //premier chiffre = 0
                            } else {
                                //nombre = 100
                            }
                            


                            Mon problème survient au deuxième chiffre

                            Citation : Pas de titre

                            2e chiffre: entre 0 et 9 (0 si 1er chiffre est 1 , si le 1er chiffre est 0 alors 0,2,5,7 ont une probabilité égale au double de celle des autres )


                            C'est ici que je bloque. Je ne sais pas trop comment faire pour que la probabilité de 0,2,5,7 soit le double de celle des autres.

                            Merci
                            • Partager sur Facebook
                            • Partager sur Twitter
                              16 avril 2009 à 3:20:00

                              @JFGagnon: Pour ce type de questions (qui relèvent de l'ordre de la résolution de l'exercice), tu doit créer un autre topic.
                              Ne poste ici que ceux qui ne comprennent pas l'énoncé, ou qui ont des suggestions.
                              bonne chance quand même.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              J'ai tous les badges d'OpenClassrooms.
                                16 avril 2009 à 4:19:15

                                @willard : Désolé, je ne savais pas... Mais bon en y pensant un peu, j'ai trouvé une solution :)

                                En ce qui concerne l'exercice, si il n'y a aucune solution possible avec les choix disponible que doit-on faire ? On affiche simplement "Aucune solution" ou bien nous devons afficher ce qui nous permet d'obtenir le résultat le plus proche du résultat à atteindre ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  16 avril 2009 à 4:38:08

                                  S'il il n'y a vraiment pas de résultat exact, il faudra afficher le résultat qui se rapproche le plus de la solution.
                                  Attention, le plus intéressant dans le problème c'est de le faire de la manière la plus optimale possible.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  J'ai tous les badges d'OpenClassrooms.
                                    16 avril 2009 à 12:53:38

                                    Je vois que le membre ExoJava a été banni o_O
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      16 avril 2009 à 13:03:59

                                      Citation : Edmeral

                                      Je vois que le membre ExoJava a été banni o_O


                                      C'est vrai, vous pouvez envoyer au membre willard, je ferais la transmission.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      J'ai tous les badges d'OpenClassrooms.
                                        16 avril 2009 à 13:18:24

                                        Sûrement parce que le double compte est interdit et qu'ils considère qu'il n'y a pas besoin d'un deuxième compte pour organniser des exercices.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          16 avril 2009 à 13:23:44

                                          Citation : Dalshim

                                          Sûrement parce que le double compte est interdit et qu'ils considère qu'il n'y a pas besoin d'un deuxième compte pour organniser des exercices.


                                          Dans le mil
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          J'ai tous les badges d'OpenClassrooms.
                                            16 avril 2009 à 21:13:18

                                            J'ai une question à propos des corrections : tu dit que après les corrections, les trois meilleurs seront posté ici. Mais quant est-il des autres ? Allons nous recevoir des commentaires personnels sur notre travail ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              16 avril 2009 à 21:56:30

                                              Citation : JFGagnon

                                              J'ai une question à propos des corrections : tu dit que après les corrections, les trois meilleurs seront posté ici. Mais quant est-il des autres ? Allons nous recevoir des commentaires personnels sur notre travail ?


                                              Des commentaires spéciaux sur le travail ? ça sera difficile, s'il ya beaucoup de monde.
                                              Mais des commentaires sur le travail en général oui. C'est a dire, les erreurs qui reviennent le plus.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              J'ai tous les badges d'OpenClassrooms.
                                              Anonyme
                                                16 avril 2009 à 23:05:00

                                                waouh ca fait longtemps je suis pas passé ici! :-°
                                                très interessante cette initiative domage que j'ai pas de temps en ce moment :( ; sinon j'aurai revêtu avec fierté mon manteau de zero pr me casser les dents à faire ces exos ...
                                                bne continuation... ^^
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  16 avril 2009 à 23:32:45

                                                  Et voilà, j'ai rapidement fais les deux premières questions, j'attaque l'algorithme, la partie la plus intéressante. C'est vrai que je ne sais pas encore comment je vais l'attaquer, mais il est vrai qu'il est très intéressant, puisqu'il faut trouver la valeur la plus approché si ce n'est pas possible d'obtenir la valeur, et qu'il faut trouver la solution la plus optimisé (pas n'importe quelle solution qui donne le résultat).

                                                  J'espère que j'aurais le temps de finir à temps.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    17 avril 2009 à 14:37:02

                                                    Je suis de retour, ma punition à été levé, c'est donc mon compte qui reçoit toutes reponses aux exercices, et encore désolé pour tout.


                                                    A ne pas oublier, la date de fin est : Jeudi 30 avril 2009
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      17 avril 2009 à 18:46:42

                                                      Il faudrait encore changer deux ou trois truc dans l'énoncé.
                                                      Dans la sélection aléatoire des nombres de la liste de choix, il y a de trop grande chance de tombé sur 100, si bien qu'on finit souvent avec plusieurs 100 (puisqu'il y a une chance sur 7 que le nombre soit 100). Il faudrait changer ce point.

                                                      Moins grave, mais si l'on veut respecter plus scrupuleusement les règles du jeux, il n'y a que 6 nombres dans la liste, et le nombre à atteindre est forcément supérieur à 100. (En fait, le jeux officiel stipule que l'on doit prendre les valeurs dans un set de valeurs prédéfinit avec équiprobabilité de chance d'obtenir chacun (pas sûr pour l'équiprobabilité), mais ça fait moins travailler le coté nombre aléatoire.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        17 avril 2009 à 19:07:45

                                                        Citation : Dalshim

                                                        Il faudrait encore changer deux ou trois truc dans l'énoncé.
                                                        Dans la sélection aléatoire des nombres de la liste de choix, il y a de trop grande chance de tombé sur 100, si bien qu'on finit souvent avec plusieurs 100 (puisqu'il y a une chance sur 7 que le nombre soit 100). Il faudrait changer ce point.


                                                        la probabilité d'obtenir 100 est égale 1/7, mais si tu l'implémente correctement tu ne pourra avoir le nombre 100 dans ta liste de choix qu'au plus 2 fois.

                                                        En tout cas moi je n'ai pas ce problème.

                                                        Citation : Dalshim


                                                        Moins grave, mais si l'on veut respecter plus scrupuleusement les règles du jeux, il n'y a que 6 nombres dans la liste, et le nombre à atteindre est forcément supérieur à 100. (En fait, le jeux officiel stipule que l'on doit prendre les valeurs dans un set de valeurs prédéfinit avec équiprobabilité de chance d'obtenir chacun (pas sûr pour l'équiprobabilité), mais ça fait moins travailler le coté nombre aléatoire.



                                                        Si l'on reprend tel que tu le dit le concept général, ça devient trop simple a réaliser et pas intéressant , en sachant que le but c'est de se casser la tete un tout petit peu.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        J'ai tous les badges d'OpenClassrooms.
                                                          17 avril 2009 à 19:33:11

                                                          Le topic est mis maintenant en post-it :soleil:
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Exos de zeros

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown