Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

algorithme et programmation de algobox

Posté par
lbds
15-02-10 à 09:35

Bonjour, j'ai un algorithme a faire pour la rentrée et je ne comprends pas le logiciel algobox.
Pourriez-vous m'aider?

Voici l'énoncé:
Le jeu du lièvre et de la tortue se joue de la manière suivante:
on jette un dé (non truqué). si le résultat est 6, le lièvre atteint directement l'arrivée de la course.
Si le résultat n'est pas 6, la tortue avance d'une étape sur les six nécessaires pour atteindre l'arrivée.
Le gagnant est celui qui arrive le premier.

Après le professeurs nous a mis:[i][/i]
initialisation: l,r,i (entiers).
traitement:
pour i variant de 1 à 6
     r prend la valeur aléatoire entière entre 1 et 6.
     Si r vaut 6 alors
            l prend la valeur 1
     Fin de si
fin de pour

SORTIES
Si l vaut 1 alors
afficher "..."
Sinon
afficher "..."

merci d'avance

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 09:44

Bonjour,

j'ai déjà aidé un élève qui avait cet exercice, pour la partie calcul. Je n'ai pas algobox, mais comme les algoritmes sont à la mode, je veux bien apprendre.

On le trouve où ?

Posté par
lbds
algorithme et programmation de algobox 15-02-10 à 10:22

tu vas sur le site: http://www.xm1math.net/algobox.
tu pourra telecharger la nouvelle version du logiciel

Posté par
lbds
algorithme et programmation de algobox 15-02-10 à 10:46

as tu reussi a le telecharger ?

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 12:24

Oui

Je regarde.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 13:18

Tu t'es entraîné avec le tutoriel ?

J'avoue que ça demande un peu d'entraînement....  

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 13:34

Je te mets un lien vers le topic qui en parlait, clique ici DM sur l'algorithmique et probabilités

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 13:37

Je suis en train de décortiquer la fonction si.. alors

C'est un peu une "usine à gaz"... je te mets le lien

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 13:38

Bonjour lbds,
Bonjour borneo

Un tout petit coup de pouce (passage délicat) :

r PREND_LA_VALEUR round(0.5001+5.9998*random())

Plus sur demande...

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:08

Bon, l'aide est très incomplète. Je n'ai pas trouvé la syntaxe pour obtenir :

r prend la valeur aléatoire entière entre 1 et 6

Tu la connais ?

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:11

Merci Coll, je n'avais pas lu ton message. Effectivement, j'aurais pu chercher longtemps. J'ai essayé

random(1:6) et random(1;2;3;4;5;6)

mais j'étais loin de ce que tu proposes  

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 14:16

La réponse est mon message de 13 h 38

Algobox connaît une fonction random() comme de nombreuses calculatrices ou de nombreux tableurs. Mais cette fonction renvoie un nombre réel compris entre 0 et 1

Il faut en faire un nombre entier, compris entre 1 et 6, et, si possible, donner à chacune de ces 6 valeurs possibles la même probabilité.

Pour obtenir un nombre entier, j'utilise round() qui renvoie l'entier le plus proche.
D'où ma proposition :

5.9998*random() renvoie un nombre de 0 à 5,9998 avec équiprobabilité (enfin, on l'espère ; j'ai fait quelques tests simples qui donnent plutôt confiance).

0.5001 + 5.9998*random() renvoie un nombre de 0,5001 à 6,4999 (toujours avec équiprobabilité)

round(0.5001 + 5.9998*random()) renvoie un nombre entier de 1 à 6 avec quasi-équiprobabilité

D'accord ?

Pour mémoire : programme

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:19

Voilà, ça marche :

algorithme et programmation de algobox

Je ne suis pas helléniste (à mon grand regret) mais le préfixe "algo" me laissait présager des débuts difficiles  

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 14:30

Voici le mien :

1   VARIABLES
2     i EST_DU_TYPE NOMBRE
3     l EST_DU_TYPE NOMBRE
4     r EST_DU_TYPE NOMBRE
5   DEBUT_ALGORITHME
6     l PREND_LA_VALEUR 0
7     POUR i ALLANT_DE 1 A 6
8       DEBUT_POUR
9       r PREND_LA_VALEUR round(0.5001+5.998*random())
10      SI (r==6) ALORS
11        DEBUT_SI
12        l PREND_LA_VALEUR 1
13        FIN_SI
14      FIN_POUR
15    SI (l==1) ALORS
16      DEBUT_SI
17      AFFICHER "Le lièvre a gagné"
18      FIN_SI
19      SINON
20        DEBUT_SINON
21        AFFICHER "La tortue a gagné"
22        FIN_SINON
23  FIN_ALGORITHME

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:32

Coll : je me souviens que tu m'avais conseillé ce logiciel, mais à l'époque, je l'ai trouvé plus difficile à utiliser qu'un tableur. Je n'ai donc pas beaucoup cherché à m'en servir.

Mais il va falloir que j'apprenne à m'en servir, car il y a des demandes d'aide auxquelles personne ne répond.

Je confirme ma première impression : j'ai dû faire deux ou trois exemples du tutoriel avant de comprendre comment ça fonctionne. J'en étais à chercher la fonction ALEA.ENTRE.BORNES( )... sans même imaginer que c'était à moi d'adapter une fonction existante.

Bref, le fonctionnement n'est pas très intuitif, mais avec le tutoriel, on y arrive.

Quant à donner ça à des élèves de seconde, sur un exercice de proba incomplet, qu'ils n'ont pas compris... je trouve ça limite.

Je me demande si le prof qui a donné cet exercice l'a fait lui-même avant  

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:35

Merci d'avoir fait la suite  

Comment fais-tu pour copier et coller ? J'ai dû passer par une image.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:39

lbds : ne tiens pas compte de ce que j'ai posté, je testais juste la formule qui donne la valeur entière entre 1 et 6. La mienne faisait bugger l'algorithme.

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 14:40

Je n'ose pas raconter ce que fut mon premier cours de programmation...

Je crois beaucoup à l'apprentissage par la lecture de programmes rédigés.
C'est pour cela que, contrairement à mon habitude, je donne les solutions très vite pour ces exercices nouveaux au programme. Il y a des élèves qui accrochent bien et s'amusent ensuite (preuve que c'est alors gagné pour eux ! ).

Quant à l'étymologie, je crois que c'est la même que celle d'algèbre, et donc l'origine est arabe. Ainsi cela ne doit pas se faire dans la douleur de "-algie"...

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 14:49

Ton message de 14 h 35

Oh, là j'en bave !
J'exporte le programme : "Exporter code vers fichier texte"
J'ouvre avec Notepad le fichier texte (surtout pas avec un logiciel "savant" comme Word qui rajoute 40 ko de baratin caché).
Copier et
coller dans la fenêtre du site

Ensuite je fais quelque chose de très long que tu ne devrais pas avoir à faire : je crée les espaces de mise en page à grand renfort de "& n b s p ;" (sans les espaces ; c'est le code de "non breaking space") : ceci pour imposer ces espaces qui ne seraient pas conservés autrement car les correcteurs et modérateurs peuvent poster du texte en html ce qui dans ce cas se révèle être un gros handicap.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:49

Coll : je viens de décortiquer ton algorithme.

Peux-tu m'expliquer la ligne 6 ?

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 15-02-10 à 14:53

Simple précaution, peut-être inutile...

Avant de lancer le "traitement" j'impose à la variable l la valeur zéro (c'est-à-dire, "la tortue gagne").
Si un six est tiré en ligne 9 alors la valeur de l sera passée à 1 à la ligne 12 ("le lièvre gagne")

Je ne sais pas (c'est peut-être dans le tutoriel) comment les variables sont initialisées ni même si elles le sont ; donc je mets cette ligne 6 et je n'ai pas de mauvaise surprise.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 14:54

En fait l'exo n'est pas incomplet... je n'avais pas vu les "sorties"

Posté par
lbds
algorithme et programmation de algobox 15-02-10 à 15:59

merci beaucoup pour votre aide.
Mais comment faire pour conjecturer si c'est le lièvre ou la tortue qui a le plus de chance d'être gagnant

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:01

Je pense que tu le fais un certain nombre de fois, et tu regardes celui qui gagne le plus souvent  

Posté par
lbds
algorithme et programmation de algobox 15-02-10 à 16:12

sa me met tout le temps " le lièvre gagne"

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:15

Moi, je viens de le faire 20 fois

le lièvre a gagné 12 fois et la tortue 8 fois

Voilà mon algorithme (complet, cette fois)

algorithme et programmation de algobox

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:16

Citation :
sa me met tout le temps " le lièvre gagne"


tu l'as fait combien de fois ?

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:26

je sais pas mais je vais le refaire. c'est normal qu'a si (r=6) il y a 2 = ?

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:29

Non

Vérifie ton algorithme.

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:30

c'est ce que j'ai fait trois fois mais c'est le meme que toi

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:30

Prends modèle sur celui de Coll, moi, j'en suis encore à m'entraîner.

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:33

j'ai touvrer l'erreur mais j'ai trouve que le lievre a gagne 15 fois et la tortue 5 fois

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:36

en fait c'est bon je trouve la meme chose que toi.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:36

Chez moi, la tortue gagne quand même assez souvent (le calcul théorique donne environ 1/3)

algorithme et programmation de algobox

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:37

une derniere chose et je te laisse tranquil. comment on fait pour obtenir la frequence des victoires du lievre et celle des victoires de la tortue sur n parties.

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:39

On fait un arbre, et on les calcule.

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:44

je suis vraiment nul en maths. donc pourrais tu m'aider a faire cet arbre

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:46

Cet arbre est sur le topic que je t'ai mis en lien à 13:34

Posté par
borneo
re : algorithme et programmation de algobox 15-02-10 à 16:48

Mais ça ne t'apprendra rien de le recopier, il vaudrait mieux chercher à le faire toi-même  

Posté par
lbds
re : algorithme et programmation de algobox 15-02-10 à 16:49

dac merci enormement

Posté par
borneo
le lièvre et la tortue 07-04-10 à 20:29

up pour ce topic très demandé  

Posté par
chokr
algorithme 04-05-10 à 07:12

Bonjour, j'ai le même exercice à faire mais je ne trouve pas comment faire l'algorithme sur la calculatrice. Si quelqu'un pourrait m'aider SVP?

Merci

Posté par
pylone69
re : algorithme et programmation de algobox 09-05-10 à 17:15

Bonjour,
J'ai trouvé une autre solution pour "round(0.5001 + 5.9998*random())".
Cela revient au meme mais il me semble que c'est un peu plus simple:
round(6*random()+1).

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 09-05-10 à 17:18

Bonjour,

Tu as "pratiquement" raison.

Mais théoriquement... non ; en effet random() peut prendre la valeur 1
et dans ce cas
round(6*random()+1) = 7
ce qui est impossible pour une face de dé.

Posté par
pylone69
re : algorithme et programmation de algobox 13-05-10 à 13:55

non sa ne donne jamais 7, essaye sur algobox tu verras.
Voici l'exemple d'un algobox avec juste cette fonction, teste là sur algobox.
A bientot

algorithme et programmation de algobox

Posté par
Coll Moderateur
re : algorithme et programmation de algobox 17-05-10 à 08:49



Je lis dans l'aide (mode d'emploi) d'Algobox :

algorithme et programmation de algobox

Donc... 6 * 1 = 6
6 + 1 = 7
partie entière de 7 : 7

Posté par
Nicolas_75 Correcteur
re : algorithme et programmation de algobox 25-03-12 à 11:10

Bonjour Coll,

Merci pour ton round(0.5001+5.9998*random()) qui m'a bien aidé.

Nicolas



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !