Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Programmation sur algobox

Posté par
Sissiiiiiii
28-11-15 à 13:04

Bonjour,
J'ai un dm a faire sur des algorithmes pour lundi. Je n'arrive pas à le programmer sur Algobox....

Voici le sujet :

Après s'être longuement attardée dans un bar, une personne décide de retourner chez elle. Sa démarche est mal assurée et ses déplacements un peu chaotiques. Un obstacle important la sépare de son domicile. Elle doit traverser un pont muni d'une barrière sur le côté droit mais pas a gauche. Le pont fait 15 pas de long et 4 de large. La démarche de la personne est particulière et ses déplacements sont les suivants:
-Soit elle avance d'un pas en avant
-Soit elle se déplace en diagonale vers la gauche (déplacement équivalent à un pas vers la gauche suivi d'un pas vers le haut)
-Soit elle se déplace en diagonale vers la droite.
On suppose que ces trois déplacements possibles sont aléatoires et équiprobables. On suppose de plus que la personne se trouve au milieu du pont lorsqu'elle entame sa traversée. L'objectif est de déterminer une estimation de la probabilité  qu'elle réussisse à traverser le pont.

Première partie: simulation avec un dé
Simuler 4 tentatives de traversée a l'aide d'un dé. Expliquer la démarche utilisée.

(En cours nous avons travaillé avec le même énoncé sauf que le le pont ne possédait aucune barrière…. Nous avions donc ainsi décidé de choisir 1 et 2 pour un déplacement en diagonale à gauche, 3 et 4 pour un déplacement à droite, 5 et 6 pour un déplacement en diagonale droite. Ici il y a une barrière donc je pensais procéder de la même manière mais lorsqu'il arrive à droite prêt a tomber et que le dé me donne le chiffre 5 ou 6 je voulais dire que ce déplacement correspondait à un déplacement vers l'avant comme si il longeait la barrière. Qu'en pensez-vous?)

Deuxième partie : simulation informatique

Les algorithmes suivants devront être implémentés sur ordinateur et envoyés par mail. Vous utiliserez algobox.

1-Modifier l'algorithme écrit en cours pour qu'il simule une traversée avec cette nouvelle configuration.

(j'ai donc réecrit l'algorithme comme ceci:
Variables : x,y
Traitement: x prend la valeur 0
                   y prend la valeur 0
                   TANT QUE x=>-2 ET x<2 ET y<=15
                                       x prend la valeur x+entier aléatoire choisi parmi -1,0 et 1
                                       y prend la valeur y+1
                  FIN TANT QUE
                  SI y<15
                      Afficher "La personne est tombée"
                  FIN SI
                   SI y=16
                      Afficher "Traversée réussie"
                  FIN SI  

est-ce que mon algorithme est correct ?? si non où y-a-t-il une erreur ? Si oui comment fait-on pour rentrer la ligne "x+entier aléatoire choisi parmi -1,0 et 1 sur algobox?

Je vous remercie d'avance pour vos réponses

Posté par
AsterTheDark
re : Programmation sur algobox 28-11-15 à 13:45

Salut
Pour la partie 1 ton raisonnement me semble correct. Pour ce qui est de l'algorithme je peux déjà te dire que tu as oublié la contrainte de la barrière. Supposons que tu ais mis 2 pour la limite de droite tu peux essayer de palier a ce problème avec un SI dans ta boucle TANT QUE...
Pour entrer un nombre aléatoire dans Algobox tu as la fonction : ALGOBOX_ALEA_ENT(n,p)
qui permet de choisir un nombre de manière aléatoire entre n et p.

Posté par
Sissiiiiiii
re : Programmation sur algobox 28-11-15 à 18:23

Je ne suis absolument pas sur de ce que je vais dire mais je vais quand meme le dire
Est-ce qu'il faudrait que je mettes une boucles SI comme sa :
SI x=2
x prend la valeur x+0
y prend la valeur y+1


Si j'ai bien compris ce que vous m'avez dit, il faut que je rajoutes une boucle SI pour envisager le fait que la personne longe la barrière. Ainsi, x serai au même point mais y avancerait d'un ??  

Posté par
Sissiiiiiii
re : Programmation sur algobox 28-11-15 à 18:27

De plus, j'ai essayé de mettre la fonction ALGOBOX_ALEA_ENT(n,p) mais cela me met erreur à chaque fois.......

Posté par
Sissiiiiiii
re : Programmation sur algobox 28-11-15 à 18:37

J'ai bien sur remplacé n par -1 et p par 1

Posté par
mathafou Moderateur
re : Programmation sur algobox 28-11-15 à 18:59

Bonjour,

appeler "SI" une "boucle" est un biais psychologique qui force une mauvaise compréhension à la base

les boucles ont pour but de répéter des instructions
SI ne répète rien du tout, il autorise ou pas un bloc d'instruction à être exécuté ou pas en fonction d'une condition

la condition est ici pour savoir si la personne tape dans la barrière ou passe sur le côté
(donc un test pour savoir si elle est arrivée à la barrière (sur y) et si elle est en face (sur x)
puis les instructions dans le corps du "SI" seront donc des
afficher "la personne est passé"
ou (SINON) afficher "la personne ne passe pas"
il faudra deux SI / SINON car il y a trois cas :
la personne n'est pas encore arrivé au niveau de la barrière
la personne est au niveau de la barrière et tape dedans
la personne est au niveau de la barrière et passe.

pour le ALGOBOX_ALEA_ENT(n,p) je pense que dans cette fonction n et p doivent être des entiers 0 (-1 ne marche pas)
à vérifier, et à corriger les valeurs en fonction de ça.

Posté par
Sissiiiiiii
re : Programmation sur algobox 28-11-15 à 19:11

Mon algorithme de base que nous avons fait avec le prof est:

variables : x,y
Traitement: x prend la valeur 0
                    y prend la valeur 0
                    TANT QUE x=>-2 et x<=2 et y<=15
                                         x prend la valeur x+entier aléatoire choisi parmi -1,0 et 1
                                         y prend la valeur y+1
                     FIN TANT QUE
                     SI y<15
                          Afficher "La personne est tombée"
                     FIN SI
                     SI y=16
                      Afficher "Traversée réussie"
                     FIN SI

Ceci est donc l'algorithme que le prof a fait. Dans l'énoncé il n'y avait pas de barrières..... J'ai pensé qu'il fallait juste enlever le = a "x<=2"...... Je ne comprends pas beaucoup les algorithme donc j'ai un peu de mal.....

Posté par
AsterTheDark
re : Programmation sur algobox 28-11-15 à 19:45

Moi pour corriger le problème de la barrière je mettrais bien un SI juste après ton TANT QUE
SI x=2
x prend la valeur x+entier aléatoire choisi parmi -1,0 et 1
avec dans ce SI un autre:
SI x=3
x prend la valeur 2
y prend la valeur y+1
SINON
x prend la valeur x+entier aléatoire choisi parmi -1,0 et 1
y prend la valeur y+1

Posté par
Sissiiiiiii
re : Programmation sur algobox 28-11-15 à 23:23

Pourquoi x=3 ??
Je ne comprends pas trop. ...


De plus .. aurais tu une solution pour le fait qu'algobox me refuse le -1?

Posté par
AsterTheDark
re : Programmation sur algobox 28-11-15 à 23:31

En gros si = 3 ca veut dire que le mec se déplace vers la droite, mais vu que il y a la barrière je redonne à x la valeur 2 pour simuler le fait qu'il est bloquer. Pour le problème je pense que tu peut modifier les valeurs pour ne pas avoir de nombres négatifs.

Posté par
Sissiiiiiii
re : Programmation sur algobox 29-11-15 à 09:01

J'aurais peut être dû le préciser avant mais avec le sujet nous avons une annexe qui représente le pont sous forme de cadrillage. Je peux peut être la mettre sur le forum pour que tu vois ce qu'on peut envisager avec le nombre négatif ?


Merci beaucoup pour le temps que tu me consacre

Posté par
AsterTheDark
re : Programmation sur algobox 29-11-15 à 11:23

Je pense que oui tu pourrais mettre l'annexe Ne tkt pas pour ça je suis aussi en term et ça me fais réviser

Posté par
Sissiiiiiii
re : Programmation sur algobox 29-11-15 à 11:36

Entre temps j'ai réfléchi et je me suis dis que j'allais remplacer les valeurs de base par celles ci.
A la base, le 0 correspondait au -2, le 1 correspondait au -1 etc etc .... J'ai changé pour éviter d'avoir une valeur négative à rentrer sur algobox

Programmation sur algobox

Posté par
AsterTheDark
re : Programmation sur algobox 29-11-15 à 11:55

Oui ça me parait une bonne solution. Ya plus qu'a le tester !

Posté par
Sissiiiiiii
re : Programmation sur algobox 29-11-15 à 20:33

excuse moi de ne repondre que maintenant....

Posté par
Sissiiiiiii
re : Programmation sur algobox 29-11-15 à 20:46

entre temps j'ai quand même réfléchi et réécrit un algorithme peut-tu me dire s'il te semble bon stp ??

variables : x,n,y,alea
Traitement: x prend la valeur 0
                    n prend la valeur 0
                    y prend la valeur 0
                    alea prend la valeur 0
                    TANT QUE x=>-2 ET x<=2 et y<=15
                                        alea prend la valeur ALGOBOX_ALEA_ENT (0,2)
                         SI alea =0
                              x prend la valeur x-1
                         FIN SI
                         SI alea = 1
                             x prend la valeur x
                          FIN SI
                         SI alea =2
                             x prend la valeur x+1
                         FIN SI
                         SI x>2
                             x prend la valeur 2
                         FIN SI
                         y prend la valeur y+1
                        SI y=16
                            n prend la valeur n+1
                        FIN SI
                  FIN TANT QUE
                  Afficher n

Posté par
Sissiiiiiii
re : Programmation sur algobox 29-11-15 à 21:12

ainsi si j'ai bien compris ce que l'on m'a expliqué, si l'algorithme affiche 1 c'est que le traversée est réussie



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 1742 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 !