Bonjour,
Je ne me suis jamais servie d'Algobox et j'ai un dm à faire pour vendredi soir.
On a d'abord eu un exercice sur excel que j'ai réussi (voir pièce jointe) où il fallait déterminer quand la tortue dépasse le lapin, à quelle distance il le fait et quand est-ce que la course se finit.
La consigne était la suivante :
Exercice 2 : avec un tableur, comme OpenOfficeCalc ou Excel
Un lièvre et une tortue décident de faire une petite course de 100 mètres. La tortue, lente mais courageuse, avance
de 4 mètres par minute. Le lièvre, plus rapide, parcourt 10 % de la distance lors de la première minute, mais comme
« rien ne sert de courir », il poursuit avec 10 % de la distance restante à chaque minute suivante.
On note u la suite telle que u n est la distance en mètres qui reste à parcourir à la tortue après n minutes de course.
Ainsi, u 0 = 100.
De même, on note v la suite telle que v n est la distance en mètres qui reste à parcourir au lièvre après n minutes de
course. Ainsi, v 0 = 100.
Représenter les deux suites à l'aide de l'outil graphique
puis :
Ecrire un algorithme déterminant au bout de combien de minutes la tortue dépasse le lièvre, ainsi que la distance
qu'il reste à parcourir par le lièvre lorsque la tortue franchit la ligne.
Je ne sais vraiment pas comment m'y prendre avec algobox.
Pourriez-vous m'aider ?
Merci d'avance
Alors, pour faire ça, on veut 3 choses: -a combien de minutes la tortue dépasse le lièvre? (1er objectif)
-a quelle distance seront les deux quand la tortue la dépassera? (2e objectif)
-au bout de combien de temps la course sera terminée? (un des deux arrive au bout des 100 mètres) (3e objectif)
on va dire:
soit "u" la distance parcourue par la tortue
soit "v" la distance parcourue par le lièvre
soit "t" le temps en minutes depuis le début de la course.
ATTENTION! :L'ALGORITHME COMPLET EST A LA FIN DE CE POST, VOUS POUVEZ LE COPIER LIGNE PAR LIGNE DANS ALGOBOX MAIS SI VOUS ETES CAPABLE DE LE FAIRE PAR VOUS MEME LE JOUR OU VOUS AUREZ A EN FAIRE UN DANS LE MEME GENRE AU LYCEE, C'EST QUAND MEME MIEUX, DONC ESSAYER AU MOINS DE COMPRENDRE... MERCI^^
RESOLUTION:
En gros le principe, ça va être de créer une boucle avec un compteur et non des variables de type liste...
Pour parler français, on va créer une boucle "TANT_QUE(u<100 ET v<100 ET v>=u) FAIRE" qui va permettre à l'algorithme d'arrêter le lapin et la tortue quand ils auront atteints les 100 mètres (c'est "u<100" et "v<100" qui font ça) et qui va aussi l'arrêter dès que la tortue aura dépassé notre ami le lièvre (la boucle s'arrête quand "v>=u" n'est plus vrai).
Dans cette boucle, on va insérer deux lignes qui augmenteront la distance parcourue par nos sprinteurs à chaque itération de la boucle.
Ces deux lignes seront:
- "u PRENDS _LA _VALEUR u+4" la distance augmente de 4 mètres chaque minutes
- "v PRENDS _LA _VALEUR v+((100-v)*0,1)" la distance augmente d'un dixieme (soit 0,1) de la distance restante (soit 100-v).
Il faut ensuite insérer le compteur. En gros, un compteur est un variable de type nombre qui vaut zero a la base et que l'on va incrémenter de 1 à chaque itérations de la boucles pour savoir combien de fois cette boucle à eu d'itérations.
On ajoute donc après les 2 précédentes ligne, une nouvelle ligne qui sera:
t PRENDS_LA _VALEUR t+1
Donc, l'ensemble de cette boucle sera:
TANT_QUE (u<100 ET v<100 ET v>=u) FAIRE
DEBUT_TANT_QUE
u PRENDS_LA_VALEUR u+4
v PRENDS_LA_VALEUR v+((100-v)*0.1)
t PRENDS_LA_VALEUR t+1
FIN_TANT_QUE
AFFICHER t
cette boucle vous indiquera le nombre d'itération effectuées avant que la condition "v>=u" soit faux.
Autrement dit, au bout de combien de minutes u>v est donc la distance parcourue par la tortue est supérieur à celle parcourue par le lièvre. Le premier objectif est passé!
Ensuite, les deux autres objectifs sont plus simples:
Il suffit de marquer "AFFICHER u" apres la ligne "AFFICHER t" pour avoir la distance parcourue par la tortue avant de dépasser le lièvre (arrondi à la minute).
Enfin, pour le dernier objectif, on sait que la tortue dépasse le lapin est finis donc la course, ce sont donc ses performances impressionnantes qui seront utilisées pour calculer quand a eu lieu la fin de la course.
Il suffit (encore) de faire 100/4 (distance/vitesse=temps). ce qui nous donne un resultat de 25 minutes pour faire 100 mètres...
Pour écrire ça en algorithmique, on va créer une nouvelle variable "p" par exemple et dire:
"p PRENDS_LA_VALEUR 100/4"
suivi de "AFFICHER p"
apres la ligne "AFFICHER u"
Voila, terminé!!!
PS: lorsue vous créez une ligne du type "AFFICHER x", n'oubliez pas de cochez la petite case "retour à la ligne" sinon vous aurez un résultat qui sera comme ça: "239225" au lieu de "23
92
25"
Récapitulatif pour ceux qui ne voulait pas lire et qui voulait juste le résultat:
VARIABLES
u EST_DU_TYPE_NOMBRE
v EST_DU_TYPE_NOMBRE
t EST_DU_TYPE_NOMBRE
p EST_DU_TYPE_NOMBRE
DEBUT_ALGORITHME
TANT_QUE (u<100 ET v<100 ET v>=u) FAIRE
DEBUT_TANT_QUE
u PRENDS_LA_VALEUR u+4
v PRENDS_LA_VALEUR v+((100-v)/10)
t PRENDS_LA_VALEUR t+1
FIN_TANT_QUE
AFFICHER t
AFFICHER u
p PRENDS_LA_VALEUR 100/4
AFFICHER p
FIN AGLORITHME
Enfin, pour ceux qui ne comprenne pas et qui n'arrive pas à reproduire cet algorithme, vous pouvez me donner votre e-mail pour que je vous l'envoie directement, c'est plus simple...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :