Voila j'ai vraiment du mal avec les algorithmes, pouvez vous m'aider à faire quelques exo pour que je comprenne mieux s'il vous plait..
Une grenouille distraite chasse une sauterelle. La grenouille et la sauterelle se déplacent en ligne droite en faisant des bonds simultanés mesurant respectivement 40 et 24 cm. Cette grenouille est capable d'attraper avec sa langue tout insecte situé à moins de 10cm devant elle, mais elle est forte distraite et si elle dépasse la sauterelle, elle oublie son objectif. Ce jour-là, la grenouille aperçoit la sauterelle à une certaine distance d comprise entre 2 m et 5 m. La course s'engage. On souhaite écrire un algorithme qui, lorsqu'on lui donne la distance initiale d répond à la question "la sauterelle réussira-t-elle à échapper à la grenouille?"
Merci d'avance!
1) Il faut demander au début l'avance de la sauterelle sur la grenouille.
2) Ensuite, on va placer dans des variables la position de la grenouille et celle de la sauterelle.
3) On crée également une variable qui contient la valeur 1 tant que la chasse continue et la valeur 0 lorsque celle-ci doit d'arrêter.
4) Tant que la chasse continue, on fait avancer les animaux d'un saut, puis on regarde:
a. si la grenouille est à plus de 10 cm derrière la sauterelle, alors les 2 animaux refont un saut;
b. sinon la chasse est finie.
5) a. Si la grenouille est çà moins de 10 cm derrière la sauterelle, alors elle mange la sauterelle.
b. Si la grenouille a dépassé la sauterelle, alors la sauterelle s'est échappée.
6)Penser à donner la réponse à la question posée.
Coup de pouce: 4) b. Ne pas oublier d'actualiser la variable permettant de savoir si la chasse est finie, sinon la boucle du 4) n'aura pas de fin.
Merci merci énormément pour ceux qui m'aideront!!
Tu as déjà la logique, il ne reste donc plus qu'à le transformer en langage Ti basic (#commentaires à ne pas mettre dans le programme):
:Input "Avance de la sauterelle',D
:0->G
->S
:0->C #sera notre variable 'stop'
:While C=0
:G+40->G #on fait les sauts
:S+24->S
:If S-G10 #la grenouille peut-elle attraper ?
:Then
isp 'La sauterelle est mangé'
:1->C
:End
:If S<G #la grenouille a dépassé la sauterelle ?
:Then
isp 'Sauterelle sauvée'
:1->C
:End #fermeture du if
:End #on ferme le while
Si tu as des questions...
oui mercii
Donc quand je lance le programme la calculettes m'affiche, SAUTERELLE E...
SAUTERELLE SAUVEE...
FAIT
C'est normal??
DSL je suis vachement nul en algo :/
Tu n'es pas nul !
La preuve, tu as fait la moitié du boulot tout seul !
Les petits points indique que la calculatrice ne peut pas tout afficher sur une ligne (elle n'est pas capable de sauter des lignes). En mode normal, tu peux faire défiler le texte avec les flèches gauche/droite, mais dans un programme, il faut insérer une pause (commande : Pause)
Tu n'as qu'à modifier le texte comme 'SAUVE' ou 'MANGE'
J'ai le meme probleme. Parcontre c'est sur Algobox. Est-ce que quelqu'un pourrait m'aider? Il faut utiliser les suites?
Merci
Mais avec plaisir et non, il n'est pas nécessaire de le faire avec les suites.
On doit d'abord déclarer les variables :
Variables :
D EST_DU_TYPE_NOMBRE
G EST_DU_TYPE_NOMBRE
S EST_DU_TYPE_NOMBRE
C EST_DU_TYPE_NOMBRE
Programme :
AFFICHER 'Avance de la sauterelle ?'
Lire D
G PREND_LA_VALEUR_DE 0
S PREND_LA_VALEUR_DE D
C PREND_LA_VALEUR_DE 0
TANT_QUE(C= =0)
DEBUT_TANT_QUE
G PREND_LA_VALEUR_DE G+40
S PREND_LA_VALEUR_DE S+24
SI (S-G<=10) ALORS
DEBUT_SI
AFFICHER 'La sauterelle a été mangée'
C PREND_LA_VALEUR_DE 1
FIN_SI
SI (S<G) ALORS
DEBUT_SI
AFFICHER 'La sauterelle est sauvée'
C PREND_LA_VALEUR_DE 1
FIN_SI
FIN_TANT_QUE
Si tu as encore des questions...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :