Journal Javascript pour les nuls

Posté par .
Tags : aucun
0
17
mar.
2004
Ma femme a donné à ses élèves un devoir à la maison dans lequel elle demandait de lancer des dés pour faire des stats.

L'un des élèves a répondu que les dés, c'était chiant. Qu'en plus, on ne pouvait pas en lancer beaucoup. Il a donc fait un programme en javascript pour faire les lancés à sa place. Il a donné son source dans le DM.

Je ne connais rien à javascript mais je trouve que son truc est monstrueusement crade. Alors avant de suggerer à ma femme de l'insulter, j'aimerai savoir si c'est normal que ce soit crade ou pas.

Pour cela, j'aimerai faire quelques tests pour modifier le source fourni. J'ai un buttineur donc je me dis que j'ai un bel interpréteur javascript sous la main. Mais je ne sais pas comment l'utiliser comme tel.

Genre comment on fait:

#!/bin/javascript
monprog


J'espère avoir été assez clair.

Merci d'avance,

Frédéric
  • # Perl pour les nuls

    Posté par . Évalué à -2.

    perl -e 'print int(rand(6)+1)."\n";'

    ou

    perl -e 'for ($i=0;$i<100;$i++) {print int(rand(6)+1)." ";}'
    • [^] # Re: Perl pour les nuls

      Posté par . Évalué à 1.

      Heu : le monsieur n'a pas le choix : le JavaScript est déjà écrit, et il veut savoir ce qu'il vaut...

      Sinon, la syntaxe du JavaScript est assez proche de celle de Java. Si tu connais ce dernier et que le script n'y ressemble pas, c'est mauvais pour lélève.

      Au fait, dans quelle classe les morpions se permettent de telle initiatives ? Il n'a pas de calculette ?
      • [^] # Re: Perl pour les nuls

        Posté par (page perso) . Évalué à 3.

        J'ai du mal à voir où tu as vu que le JavaScript ressemble à Java.
        • [^] # Re: Perl pour les nuls

          Posté par . Évalué à 1.

          pareil, pour moi ça ressemble autant à java que la tour eiffel à une pomme
        • [^] # Re: Perl pour les nuls

          Posté par . Évalué à 1.

          Nan : je parlais juste de la syntaxe, qui est dans la même veine que Java (ou C et C++).

          D'ailleurs, JavaScript est en fait un vague descendant de C (quoiqu'un peu dégénéré, non ?), ce que l'on peut lire ici :

          In 1992 and 1993 Nombas developed a language named Cmm (for C minus minus, or "C without the hard stuff") for use as an embeddable scripting language, showing that it was possible to have a full-powered language that was simple enough to replace macro languages. [...] Cmm was first released in a shareware product called CEnvi [...] When Netscape's first commercial browsers were released we made a version of CEnvi that could handle short scripts embedded within web pages. [...] [http://www.nombas.com/us/scripting/history.htm(...)]

          Sans oublier l'excellent http://www.levenez.com/lang/(...)
      • [^] # Re: Perl pour les nuls

        Posté par . Évalué à 1.

        J'ai du faire du java dans une vie antérieur.

        Le morpion est en seconde.

        Mais je ne peux rien dire. Quand j'étais en cinquième, j'avais fait un programme en basic pour faire une punition du genre:"recopier 200 fois..."
        • [^] # Re: Perl pour les nuls

          Posté par (page perso) . Évalué à 3.

          FOR a = 1 TO 200
              PRINT "Je ne dois pas dessiner de pinguins sur mes feuilles de cours"
          NEXT a
          
          • [^] # Re: Perl pour les nuls

            Posté par . Évalué à 1.

            Mais non!!!!

            C'est LPRINT qu'il faut utiliser.
          • [^] # Re: Perl pour les nuls

            Posté par . Évalué à 2.


            FOR a = 1 TO 200
            PRINT "Je ne dois pas dessiner de pinguins sur mes feuilles de cours"
            NEXT a


            FOR a = 1 TO 200 STEP 20, comme ça on perd encore moins de temps =)
        • [^] # Re: Perl pour les nuls

          Posté par . Évalué à 1.

          'faut que ta moitié le descende en flamme, à moins qu'il puisse prouver que la fonction qu'il a utilisé pour obtenir ces jets de dés donne des résultats _vraiment_ aléatoires. Car si la fonction ne donne pas de résultats aléatoires, il n'a pas pu faire les stats demandées correctement..
          Par exemple, le $RANDOM du bash est tout pourri : en effet, si tu as obtenu un nombre pair au premier tirage, alors, tu peux être certain que le nombre suivant sera impair, et vice-versa. Ce n'est donc pas une suite aléatoire, puisque l'on peut déterminer une caractéristique du nombre suivant en fonction du nombre courant.
          'faut les mater, les fortes têtes :)
          • [^] # Re: Perl pour les nuls

            Posté par . Évalué à 3.

            j'irai même un peu plus loin : je ne crois pas qu'il soit possible de générer aléatoirement des nombres avec un ordinateur, qui sera toujours limité qualitativement par son déterminisme rigoureux, et quantitativement par le nombre d'état dans lesquels il peut être

            qu'elle lui fasse donc faire une petite dissertation sur frein du déterminisme de l'informatique et le frein de la psychologie chez l'être humain, face à l'aléatoire chaotique de la nature et de l'univers, ça lui fera les pieds !

            bon évidemment, pour le déterminisme de l'informatique j'écarte le problème des barettes mémoire défaillantes

            ça me fait penser à un exemplaire des célèbres $a++ de PERL ( http://paris.mongueurs.net/aplusplus.html(...) ) :

            Compte sur la probabilité non nulle qu'un rayon cosmique altère la valeur en RAM de $A. Jérôme Abela 11-sep-2001
            $A_original = $A;
            while($A != $A_original+1) {}
            • [^] # Re: Perl pour les nuls

              Posté par . Évalué à 1.

              > je ne crois pas qu'il soit possible de générer aléatoirement des nombres avec un ordinateur, qui sera toujours limité qualitativement par son déterminisme rigoureux, et quantitativement par le nombre d'état dans lesquels il peut être

              En fait, est-ce que le truc qui génère un bruit dans le Via C3 (Nehemiah) ne serait pas relativement correct pour accomplir ce genre de tâche ? http://www.via.com.tw/en/viac3/c3.jsp(...)
              • [^] # Re: Perl pour les nuls

                Posté par . Évalué à 1.

                ah... oui peut-etre !

                l'informatique seul ne peut tout résoudre mais effectivement si on utilise des modules matériels supplémentaires tout est possible :)
            • [^] # Re: Perl pour les nuls

              Posté par (page perso) . Évalué à 1.

              Exak! Certains langages utilisent des fonctions mathématiques générant des suites de nombres pseudo-aléatoires (c'est le cas de java).
              En revanche, j'ignore comme fonctionne le démon 'random' sous GNU/Linux. Quelqu'un à une idée|url?
          • [^] # Re: Perl pour les nuls

            Posté par . Évalué à 2.

            Je dirais meme plus quand partant sur ce terrain, il n'a aucune chance. Sur un pc le seul moyen d'avoir de l'aleatoir c'est d'avoir du materiel dedie pour gerer du desodre (Non, windows n'est pas une source d'alea ;-). Le reste est et restera du pseudo-aleatoire.
          • [^] # Re: Perl pour les nuls

            Posté par . Évalué à 2.

            le $RANDOM du bash est tout pourri : en effet, si tu as obtenu un nombre pair au premier tirage, alors, tu peux être certain que le nombre suivant sera impair, et vice-versa.

            $ echo $RANDOM
            1430
            $ echo $RANDOM
            6282
            $ echo $RANDOM
            16885
            $ echo $RANDOM
            1570
            $ echo $RANDOM
            30425
            $ echo $RANDOM
            12843
            $ echo $RANDOM
            9486
            $ echo $RANDOM
            24583
            $ echo $RANDOM
            8489
            $ echo $RANDOM
            12865
            $ echo $RANDOM
            13687
            $ echo $RANDOM
            17312

            Tu disais?
            • [^] # Re: Perl pour les nuls

              Posté par . Évalué à 1.

              ~$ echo $RANDOM
              22693
              ~$ echo $RANDOM
              13434
              ~$ echo $RANDOM
              13355
              ~$ echo $RANDOM
              136
              ~$ echo $RANDOM
              23073
              ~$ echo $RANDOM
              7750
              ~$ echo $RANDOM
              26631
              ~$ echo $RANDOM
              7476
              ~$ echo $RANDOM
              30557
              ~$ echo $RANDOM
              22738
              ~$ echo $RANDOM
              32163
              ~$ echo $RANDOM
              22688
              ~$ echo $RANDOM
              11353
              ~$ echo $RANDOM
              12318
              ~$ echo $RANDOM
              20735
              ~$ echo $RANDOM
              24268
              ~$ echo $RANDOM
              13589
              ~$ echo $RANDOM
              12330
              ~$ echo $RANDOM
              32283
              ~$ echo $RANDOM
              7096
              ~$ echo $RANDOM
              3473
              ~$ echo $RANDOM
              9462
              ~$ echo $RANDOM
              24823


              Rien de particulier. J'en ai fait des séries, et sur ma machine, c'est systématiquement une suite pair/impair. Bizarre, tiens.
              Cela dit, je suis toujours certain que 2 nombres consécutifs seront forcément distincts, détail qui me sert dans quelques scripts (j'aime pas utiliser le timestamp pour ça).
      • [^] # Re: Perl pour les nuls

        Posté par . Évalué à 1.

        je voulais dire que dans n'importe quel language , un truc de lancer de dés ca ne doit pas prendre plus de 2 ou 3 lignes ( du moment qu'il ya une fonction random. ce qui est le cas en javascript avec Math.random()
  • # Re: Javascript pour les nuls

    Posté par . Évalué à 3.

    Ca dépend des capacités du butineur. Mais le plus simple, c'est de le coller le javaScript dans une page HTML (un fichier texte, quoi) entre deux balises <script /> et de l'invoquer à travers un bouton dans un formulaire.
    • [^] # Re: Javascript pour les nuls

      Posté par . Évalué à 0.

      cat>toto.html
      < script>
      monprog
      < /script>
      ^D

      puis galeon file:///tmp/toto.html
      semble marcher

      merci

      Frédéric
  • # Re: Javascript pour les nuls

    Posté par (page perso) . Évalué à 1.

    http://www.mozilla.org/unix/remote.html(...)
    http://www.mozilla.org/js/spidermonkey/(...)

    Ou alors, tu peux le montrer sur #openweb sur freenode :)
  • # Re: Javascript pour les nuls

    Posté par (page perso) . Évalué à 2.

    Montre nous le source!
    En Javascript c'est facile de faire dégeulasse, mais si on fait attention, on peut faire aussi propre qu'avec un autre langage.
    • [^] # Re: Javascript pour les nuls

      Posté par . Évalué à 1.

      heureusement d'ailleurs, sinon on aurait pas mozilla et le XUL (ou alors ce serait pas codé en javascript)
  • # Re: Javascript pour les nuls

    Posté par . Évalué à 2.

    On peut voir le source ?
  • # Re: Javascript pour les nuls

    Posté par (page perso) . Évalué à 0.

    Si on pouvait voir le code, ça serait bien !

    ++
    Nico, js-addicted !
  • # Re: Javascript pour les nuls

    Posté par . Évalué à 0.

    Comme quelqu'un l'a dit peut-être en blaguant, le code n'est pas sous GPL.

    C'est un peu ridicule car ce script de 30 lignes ne va pas changer la face du monde mais pour gueuler contre les gens qui copient office, photoshop etc, je me dois d'être irréprochable. Donc non, je ne donnerais pas le code.
    • [^] # Re: Javascript pour les nuls

      Posté par . Évalué à 1.

      Ledit code etait-il fourni avec une license te donnant le droit de l'executer, au moins ?

      Si ce n'est pas le cas, tu ne peux te permettre de le faire. Tu ne peux donc pas tester. Donc pas valider. Donc 0.

      /me se rappelle qu'au lycee il programmait sur sa calculatrice pour les conneries avec les des.
      /me se rappelle aussi qu'a l'epoque, un certain nombre avait _vraiment_ perdu son temps a lancer des des.
    • [^] # Re: Javascript pour les nuls

      Posté par . Évalué à 1.

      gni ? 30 lignes de javascript pour une série de nombres "aléatoires" ?
      ça doit pas être joli-joli (ou alors il a fait du DHTML pour toutes les versions de navigateurs depuis IE3)...
      • [^] # Re: Javascript pour les nuls

        Posté par (page perso) . Évalué à 2.

        30 lignes pour ça ????

        Allez à froid :
        <script type="text/javascript">
        <!--
        var nombre;
        nombre=Math.random();
        // un nombre entre 0 et 1 de type 0,481541854852
        nombre=nombre*1000;
        // fois mille = 4815,41854852
        nombre=Math.floor(nombre);
        //arrondi inférieur = 4815
        nombre=nombre%6;
        //modulo 6
        nombre=nombre+1;
        //+1 pour éviter d'avoir 0
        alert ("Nombre aléatoire : "+nombre);
        // -->
        </script>

        10 lignes, en écrivant très large, le tout pourrait être en une ligne.

        Un générateur de nombre aléatoire qui est classé secret défense... qu'est-ce qu'il ne faut pas entendre...

        ++

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.