Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme sur Algobox

Posté par
alexhdmt
25-07-23 à 09:03

Bonjour,
"Dans le plan muni d'un repère d'origine O, un point M se déplace sur le quadrillage ci dessous. Au départ, il se trouve en O, puis il se déplace d'un pas (c'est-à-dire d'une unité) dans l'une des quatre directions (droite, gauche, haut, bas). Les déplacements sont aléatoires. Le point M s'arrête lorsqu'il atteint le bord du quadrillage et la variable aléatoire K donne le nombre de pas effectués. Écrire un algorithme qui simule le déplacement aléatoire du point M et affiche la valeur prise par la variable aléatoire K."

J'ai remarqué que si le point M avait pour abscisse -4 ou 5 ou bien pour ordonné -4 ou 4, l'algorithme devait s'arrêter.
Pour une raison que j'ignore ça ne marche pas, j'ai testé deux algorithmes différents et le résultat est le même.
Je vais poster mes deux différents algorithmes sous celui-ci pour que le contenu reste lisible.

A des fins de précisions, j'attribue à la variable S un nombre aléatoire entier entre 1 et 4.
1 correspond à la situation à "déplacement du point M vers la droite"; 2 "déplacement du point M vers la gauche"; 3"déplacement du point M vers le haut"; 4"déplacement du point M vers le bas".

Merci!

Algorithme sur Algobox

Posté par
alexhdmt
re : Algorithme sur Algobox 25-07-23 à 09:03

1   FONCTIONS_UTILISEES
2   VARIABLES
3     X EST_DU_TYPE NOMBRE
4     Y EST_DU_TYPE NOMBRE
5     K EST_DU_TYPE NOMBRE
6     S EST_DU_TYPE NOMBRE
7   DEBUT_ALGORITHME
8     X PREND_LA_VALEUR 0
9     Y PREND_LA_VALEUR 0
10    K PREND_LA_VALEUR 0
11    TANT_QUE (-3<=X<=4 OU -3<=Y<=3) FAIRE
12      DEBUT_TANT_QUE
13      K PREND_LA_VALEUR K+1
14      S PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,4)
15      SI (S=1) ALORS
16        DEBUT_SI
17        X PREND_LA_VALEUR X+1
18        FIN_SI
19      SI (S=2) ALORS
20        DEBUT_SI
21        X PREND_LA_VALEUR X-1
22        FIN_SI
23      SI (S=3) ALORS
24        DEBUT_SI
25        Y PREND_LA_VALEUR Y+1
26        FIN_SI
27      SI (S=4) ALORS
28        DEBUT_SI
29        Y PREND_LA_VALEUR Y-1
30        FIN_SI
31      FIN_TANT_QUE
32    AFFICHER X
33    AFFICHER Y
34    AFFICHER K
35  FIN_ALGORITHME

Posté par
alexhdmt
re : Algorithme sur Algobox 25-07-23 à 09:03

1   FONCTIONS_UTILISEES
2   VARIABLES
3     X EST_DU_TYPE NOMBRE
4     Y EST_DU_TYPE NOMBRE
5     K EST_DU_TYPE NOMBRE
6     S EST_DU_TYPE NOMBRE
7   DEBUT_ALGORITHME
8     X PREND_LA_VALEUR 0
9     Y PREND_LA_VALEUR 0
10    K PREND_LA_VALEUR 0
11    TANT_QUE (-3<=X<=4 OU -3<=Y<=3) FAIRE
12      DEBUT_TANT_QUE
13      K PREND_LA_VALEUR K+1
14      S PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,4)
15      SI (S=1) ALORS
16        DEBUT_SI
17        X PREND_LA_VALEUR X+1
18        FIN_SI
19        SINON
20          DEBUT_SINON
21          SI (S=2) ALORS
22            DEBUT_SI
23            X PREND_LA_VALEUR X-1
24            FIN_SI
25            SINON
26              DEBUT_SINON
27              SI (S=3) ALORS
28                DEBUT_SI
29                Y PREND_LA_VALEUR Y+1
30                FIN_SI
31                SINON
32                  DEBUT_SINON
33                  SI (S=4) ALORS
34                    DEBUT_SI
35                    Y PREND_LA_VALEUR Y-1
36                    FIN_SI
37                  FIN_SINON
38              FIN_SINON
39          FIN_SINON
40      FIN_TANT_QUE
41    AFFICHER X
42    AFFICHER Y
43    AFFICHER K
44  FIN_ALGORITHME

Posté par
alexhdmt
re : Algorithme sur Algobox 25-07-23 à 09:07

J'oubliais: tout d'abord lorsque je lance ces algorithmes on m'indique une erreur car le nombre de boucles serait trop éleve, or lorsque j'active le mode pas à pas, je constate que peu importe la valeur attribué aléatoirement à S, l'algorithme considère toujours que la condition (S=1) est vérifié même si par exemple S=2. Et la boucle devrait donc s'arrêter tout de même lorsque X=5 mais c'est pareil l'algorithme ne le prend pas du tout en considération et continue donc la boucle. Et je précise qu'il est pourtant bien indiqué que la X a la valeur 5 à ce moment précis.

Désolé pour ce post extrêmement long!

Posté par
carpediem
re : Algorithme sur Algobox 25-07-23 à 14:05

salut

moi je m'embêterai pas avec tout ces si ... sinon ... et écrirai simplement :

alexhdmt @ 25-07-2023 à 09:03


15      SI (S=1) ALORS
16        DEBUT_SI
17        X PREND_LA_VALEUR X+1
18        FIN_SI
19        SI (S=2) ALORS
22         DEBUT_SI
23         X PREND_LA_VALEUR X-1
24         FIN_SI
25         SI (S=3) ALORS
28         DEBUT_SI
29         Y PREND_LA_VALEUR Y+1
30         FIN_SI
31         SI (S=4) ALORS
34         DEBUT_SI
35         Y PREND_LA_VALEUR Y-1
36         FIN_SI
37     FIN_TANT_QUE
38   ....

puisque S prend exclusivement une des quatre valeurs 1, 2, 3, ou 4

après il y a peut-être une indentation à respecter ...

Posté par
alexhdmt
re : Algorithme sur Algobox 27-07-23 à 11:06

D'accord mais cet algorithme ne marche pas non plus

Posté par
carpediem
re : Algorithme sur Algobox 27-07-23 à 13:02

désolé mais je ne vois pas pourquoi ...

peut-être un pb d'indentation ...

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 13:12

bonjour,

en l'absence de Carpediem :

ton algo posté le 25 à 9:03  est construit comme celui de Carpediem.
Tu dis que ça ne fonctionne pas : pourquoi ? qu'obtiens tu comme résultat ?

Posté par
alexhdmt
re : Algorithme sur Algobox 27-07-23 à 13:27

Lorsque je lance le mode pas à pas, peu importe la valeur attribuée à S, la condition S=1 est toujours considérée comme vérifiée. Dès lors, X prend toujours la valeur X+1. Et au-delà de ça alors même que cet algorithme est censé s'arrêter lorsque X=5, il ne s'arrête pas. Donc à chaque fois que je le lance, j'ai un message disant que l'algorithme cesse de fonctionner pour éviter une répétition à l'infini.  
J'ai même soumis ces algorithmes à ChatGPT pour qu'il y décèle une erreur et il n'en voit non plus. Je ne vois vraiment pas comment faire du coup.

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 13:31

en algobox   si S=1   s'écrit    SI S==1   (avec deux signes =)
essaie comme ça..

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 13:40

je l'ai écrit comme ceci (en placant l'origine en bas à gauche, M démarre en (4;4)

FONCTIONS_UTILISEES
VARIABLES
  K EST_DU_TYPE NOMBRE
  X EST_DU_TYPE NOMBRE
  Y EST_DU_TYPE NOMBRE
  S EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  K PREND_LA_VALEUR 0
  X PREND_LA_VALEUR 4
  Y PREND_LA_VALEUR 4
  TANT_QUE ((X>0  ET X<9) ET (Y>0 ET Y<9)) FAIRE
    DEBUT_TANT_QUE
    S PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,4)
    SI (S==1) ALORS
      DEBUT_SI
      X PREND_LA_VALEUR X+1
      FIN_SI
    SI (S==2) ALORS
      DEBUT_SI
      X PREND_LA_VALEUR X-1
      FIN_SI
    SI (S==3) ALORS
      DEBUT_SI
      Y PREND_LA_VALEUR Y+1
      FIN_SI
    SI (S==4) ALORS
      DEBUT_SI
      Y PREND_LA_VALEUR Y-1
      FIN_SI
    K PREND_LA_VALEUR K+1
    FIN_TANT_QUE
  AFFICHER* K
  AFFICHER* X
  AFFICHER* Y
FIN_ALGORITHME

et ça fonctionne..

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 13:42

de plus, la condition du tant que  : (x valide   OU   y valide) ne va pas.
Tu continues à te déplacer   si   X valide   ET   y valide.
C'est pour ça que ton algo ne s'arrête pas.

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 13:43

Tu dois continuer à te déplacer   si   X valide   ET   y valide.
corrige ton tant que  dans ce sens

Posté par
alexhdmt
re : Algorithme sur Algobox 27-07-23 à 13:58

Merci beaucoup pour votre message mon erreur se situait sur SI (S==1) ALORS que j'avais écrit SI (S=1) ALORS.

Posté par
Leile
re : Algorithme sur Algobox 27-07-23 à 14:11

oui, tu peux corriger tes conditions SI,
rectifie aussi la condition du TANT QUE

Posté par
carpediem
re : Algorithme sur Algobox 27-07-23 à 15:03

merci Leile :

1/ je n'ai pas tilté sur ce double =
2/ et pourtant je l'ai regardé cette double condition mais idem j'suis passé à côté car je me suis concentré sur les bornes et à peine sur ce ou



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 !