Bonjour je suis en 1ère S et je rencontre une difficulté dans la résolution d'un exercice...
1.a Expliquer ce qu'affiche l'algorithme ci dessous.
b Le programmer sur un logiciel
c Quel résultat fournit-il lors de son exécution ?
Variables : u , n nombres
Entrée : u prend la valeur 10
n prend la valeur 1
Traitement: Tant que u<42,195 Faire
u prend la valeur u+0,7
n prend la valeur n+1
Fin Tant que
Sortie Afficher n
N'ayant pas compris l'algorithme j'ai quand même décidé de le réaliser sur Algobox afin de mieux comprendre...
Sauf que lorsque je lance l'algorithme celui ci affiche ce message "interrompu ligne 11 : dépassement de la capacité autorisée pour les boucles***"
Je vous demnde donc de l'aide pour que je produise un algorithme correct et pour la compréhension de celui-ci.
Merci de votre compréhension,
Kiltas.
AH! c'est bon ça fonctionne aussi pour moi merci !
En fait l'algorithme sert pour l'exercice d'avant ^^
J'espère ne pas avoir d'autre problème ^^
Si on écrit 42,195 et (u + 0,7) l'algo se plantera dans la ligne 11
Dans Algobox, le séparateur décimal est obligatoirement un "." et pas une ","
En écrivant 42,195 et 0,7, algobox ne comprend pas ces données comme étant des nombres, et donc il ne fait pas correctement l'opération de la ligne 9.
Si on affiche la valeur que prend u après chaque passage dans la ligne : "u PREND_LA_VALEUR (u+1,7)", on a u = 7
Même si on écrit le 42,195 correctement, donc en le remplaçant par 42.195, on ne peut pas sortir de la boucle "TANT_QUE" car la condition u<42,195 est toujours réalisée.
L'algo fait donc un très grand nombre de fois la boucle et se plante lorsque ce nombre dépasse les capacités de algobox.
Cela se plante à la fin d'une boucle du "TANT_QUE" (donc sur la ligne 11) car le nombre de boucles max que peut faire algobox est dépassé à cet instant.
Pour faire tourner l'algo correctement, il FAUT remplacer le 42,195 par 42.195 à la ligne 7 et il FAIT remplacer (u+1,7) par (u+1.7) à la ligne 9
--------------
Lorsque l'algo est corrigé, il tourne normalement et affiche au final la plus petite valeur de n telle que 10 + 0.7*(n-1) >= 42.195
Sauf distraction.
Ah je comprends mieux merci beaucoup !
En fait cette algo me permet de savoir en combien de semaine une personne a besoin pour atteindre 42.195 km en augmentant son entrainement hebdomadaire (10km) de +0.7 km.
Et la ou je bloque c'est que je dois modifier cette algo pour trouver le nombre de chaussure qu'il doit acheter... Je m'explique. Il doit changer de chaussure tout les 1000 Km parcouru ^^ La réponse est simple a l'aide d'un tableur mais je n'arrive pas avec algobox...
Pour le nombre de semaine oui c'est correct en revanche pour les chaussures c'est faux :/
Arriver a la 47 ème semaines il a parcouru 1226.7 Km. Il doit donc changer une fois de chaussure. Or l'algorithme affiche 36 :/ Je n'arrive pas a le corriger...
Bah ça m'affiche 7 pour le nombres de chaussures ^^ j'ai un problème en algorithme ^^ c'est mon point faible en mathématiques dsl
Moi aussi j'obtiens 7 paires de chaussures . Ca me semble réaliste pour une marche journalière (7 jours sur 7)
bah la réponse doit être une^^ en fait faut que ça sarrette a la 47 ème semaine. Dès que ca dépasse 1000km ça fait 1c chaussures
Merci beaucoup de m'aider
Moi je pense que la personne augmente son trajet de 0.7 km par semaine mais qu'il fait ce trajet tous les jours de la semaine . Ce qui fait qu'il arrive à plus de 7000 km au total sur les 47 semaines .
S'il court tous les jours de la semaine et augmente chaque semaine de 0,7 km par jour ...
Je trouve :
47 semaines.
8586,9 km parcourus au total
Nombres de paires de chaussures nécessaires : 9
Avec cet algo :
VARIABLES
u EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
d EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
u PREND_LA_VALEUR 10
n PREND_LA_VALEUR 1
d PREND_LA_VALEUR 70
TANT_QUE (u < 42.195) FAIRE
DEBUT_TANT_QUE
u PREND_LA_VALEUR (u + 0.7)
n PREND_LA_VALEUR (n+1)
d PREND_LA_VALEUR (d+7*u)
FIN_TANT_QUE
AFFICHER "Nombre de semaines :"
AFFICHER* n
AFFICHER "Distance totale parcourue (en km) :"
AFFICHER* d
AFFICHER "Nombres de paires de chaussures nécessaires :"
AFFICHERCALCUL (1 + floor(d/1000))
FIN_ALGORITHME
Pas vérifié.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :