Bonjour Julien dit qu'il peut parcourir 90 km en nageant le premier jour il parcourt 4 km mais chaque jour la fatigue s'accumule et sa performance diminue de 5 % on note dn la distance parcourue durant le énième jour ainsi d1 = 4.
Q= 0,95 et de 1er thermes d1= 4 et dn= 4× 0,95^n
Sn est le nb de km parcouru au bout de n jours
Sn = 4× (1-0,95^n)/(1-0,95)
Julien décide que 60 km sera une distance tout à fait honorable déterminer le nombre minimal de jours qui seront nécessaires pour parcourir les 60km -> 28 jours
écrire un algorithme sur votre copie permettant d'afficher le résultat précédent
Pouvez vous m'aider pour
Écrire l'algorithme svp
Bonjour,
écrire un algorithme c'est avant tout être conscient de la méthode et des opérations exactes que l'on appliquerait soi-même à la main pour résoudre le problème
et de décrire explicitement toutes ces opérations et leur enchainement.
à la main on pourrait faire comme ça
je pars de d = 4
et de la distance totale S = 4
(1er jour appelé n = 1)
ensuite tant que je n'ai pas effectué au moins 60 km (tant que la distance totale S est < 60)
j'ajoute un jour :
calcul de la distance parcourue ce jour là
accumulation de cette distance dans la distance totale
à toi.
(de traduire ça mis en forme de façon "à la mode des algorithmes")
Variables n entiers naturels u est un réel
Entrée Saisir la valeur de n
Début traitement u prend la valeur 3
tant que u <60
Pour i allant de 1 à u prend la valeur 4×(1-0,95^n)/(1-0,95)
Afficher u
Fin Pour
1) tu n'as pas suivi la méthode que je proposais mais qu'à cela ne tienne..
dans ma méthode je me fiche de savoir que la formule de la somme est 4×(1-0,95^n)/(1-0,95)
je calcule cette somme pas à pas en ajoutant explicitement chacune des distances individuelles de chaque jour
tu veux faire autrement :
utiliser cette formule pour chercher le plus petit n tel que 4×(1-0,95^n)/(1-0,95) > 60
pourquoi pas. c'est ton droit le choix de la méthode.
2) la traduction de cette méthode maintenant.
Variables n entiers naturels u est un réel OK
Entrée Saisir la valeur de n absurde, vu que n on ne le connait pas, on le cherche.
comment pourrait on en demander la valeur avant même de l'avoir trouvée ??
Début traitement u prend la valeur 3 d'où diable sort cette valeur ???
tant que u <60 OK tant qu'on n'a pas encore parcouru les 60km en tout
Pour i allant de 1 à u ... absurde, u n'est pas un nombre entier mais la distance totale parcourue
de plus il n'y a aucune boucle "pour" à écrire ici.
une boucle pour c'est pour répéter quelque chose un nombre de fois connu au moment où on entre dans cette boucle
ici le nombre de calculs à effectuer est à priori inconnu
... prend la valeur 4×(1-0,95^n)/(1-0,95) qu'est ce donc qui "prend la valeur" ???
tu voulais dire
pour i allant de 1 à ... va savoir quoi
u prend la valeur 4×(1-0,95^n)/(1-0,95)
???
faut pas mélanger ainsi une structure de boucle "pour" et une affectation "prend la valeur"
Afficher u pourquoi pas, tu afficheras toutes les valeurs de la distance cumulée à la fin de chaque jour
Fin Pour la boucle ce n'est pas une boucle "pour" (deja dit) mais la boucle "tant que"
bref il n'y a pas grand chose de correct là dedans
on pourrait imaginer
Variables n entiers naturels u est un réel
Entrée Saisir la valeur de n aucune
Début traitement
u prend la valeur 4 (la distance au premier jour)
tant que u <60
Pour i allant de 1 à pas de "pour" du tout
u prend la valeur 4×(1-0,95^n)/(1-0,95)
Afficher u
Fin tantque
ça ça marche
mais est ce que ça répond au problème ?
cet algorithme va afficher successivement les valeurs cumulées jour après jour, en s'arrêtant dès qu'elle devient > 60s
l'utilisateur devra compter les lignes affichées pour savoir au bout de combien de jours on arrive à > 60
on demande que le programme affiche ce nombre de jours,
le nombre de fois qu'il a exécuté la boucle "tant que"
et pour ça il faut les compter (le programme doit les compter lui-même)
c'est à ça que doit servir la variable n
et quand tout est fini (après le "fin tant que") le programme devra afficher cette valeur de n
Ah merci beaucoup pour TOUTES cette description tres précise.
Variables n entiers naturels u est un réel
Entrée
Début traitement
u prend la valeur 4
tant que u <60
u prend la valeur 4×(1-0,95^n)/(1-0,95)
Afficher u
Fin tantque
Donc cette algorithme fonctionne mais il faudrait rajouté qqchose pour qu'il affiche seul le nb de jours .
bein oui
c'esb bie ce que j'ai dit à la fin. relis, tout y est dit
je ne vais pas tout te faire quand même
comment compter ?
facile
1
1+1 = 2
2+1 = 3
3+1 = 4
...
et ça doit se faire dans la variable n ...
et dans la boucle puisqu'on veut compter le nombre de fois où on est passé par là.
oui
mais :
où ça ?
et initialisation ?
et affichage ?
mets ça en forme en l'intégrant dans l'algo précédent.
en fait l'algorithme précédent ne fonctionnait pas (lu trop vite) car "n" n'avait aucune valeur
il était donc incapable de calculer "4×(1-0,95^n)/(1-0,95)"
tu dois initialiser à 1 (au départ on a 1 jour)
puis dans la boucle ajouter 1 à ce n pour traiter le "jour suivant" (le calcul de la somme au bout de n jours)
Variables n entiers naturels, u est un réel
Entrée
Début traitement
\
u prend la valeur 4 | quelque part dans cette partie on initialise n à 1 (1er jour)
/ par un "n prend la valeur 1"
tant que u <60
\ quelque part dans cette partie on doit passer au jour suivant
u prend la valeur 4×(1-0,95^n)/(1-0,95) | par un "n prend la valeur n+1"
Afficher u (attention il est dans la boucle) |
/
Fin tantque
\
| et quelque part là dedans on doit afficher le résultat final
/ par un "afficher n"
Variables n entiers naturels, u est un réel
Entré
u prend la valeur 4
initialisation n prend la valeur 1
tant que u <60
| u prend la valeur 4×(1- |0,95^n+1)/(1-0,95)
| Afficher u
Fin tanque
sortie
Afficher n
si tu fais figurer explicitement une section "initialisation" dans l'algorithme, l'initialisation c'est de tout ce qui doit être initialisé
aussi bien n que u
et si on fait figurer explicitement une section "initialisation" il est d'usage de faire figurer explicitement la section "traitement :"
Variables : n entiers naturels, u est un réel
Entrée :
initialisation :
u prend la valeur 4
n prend la valeur 1
[traitement :]
tant que u <60
etc
il manque l'instruction "n prend la valeur n+1" dans la boucle
ça ne veut pas dire écrire quelque part dans les formules "n+1" là où on avait écrit "n" !!
ça ne changerait pas le contenu de la variable n
juste ajouterait 1 à une certaine valeur intermédiaire au cours de ce calcul dans ce calcul et nulle part ailleurs
ce qu'il faut c'est une vraie instruction
une vraie opération à faire : augmenter de 1 le contenu de la variable n, "physiquement"
par un "n prend la valeur" seule instruction qui peut modifier le contenu de cette variable.
et il y a un schmillblik de copier-collé raté dans la formule
qui de plus est peut-être bien désormais fausse (ça dépend où on met le "n prend la valeur n+1")
Variables n entiers naturels, u est un réel
Entré
initiation
u prend la valeur 4
n prend la valeur 1 + n
tant que u <60
| u prend la valeur 4×(1-0,95^n)/(1-0,95)
| Afficher u
Fin tanque
sortie
Afficher n
bon je laisse tomber tu ne comprends pas le français
Variables n entiers naturels, u est un réel
Entrée
initialisation
u prend la valeur 4
n prend la valeur 1 + n je n'ai JAMAIS dit de le mettre là celui là !!
de plus n n'est pas initialisé maintenant !! on est incapable de calculer 1+n, car la valeur de n est inconnue,
donc on ne sait pas quoi mettre dans n comme résultat de ce calcul là
tant que u <60
| u prend la valeur 4×(1-0,95^n)/(1-0,95)
| Afficher u
Fin tanque
sortie
Afficher n
après toutes les discussions et explications détaillée en français avec des accolades pour montrer précisément où il fallait ajouter ce qu'on devait ajouter et même l'écriture exacte de ce qu'il fallait ajouter, si tu ne comprend pas c'est sans espoir
relis ce qui a été dit
depuis la discussion de 17:40 qui disait déja tout, il était immédiat d'écrire proprement
Variables n entiers naturels, u est un réel
Entrée
initialisation
u prend la valeur 4
n prend la valeur 1
traitement :
tant que u <60
| n prend la valeur n+1
| u prend la valeur 4×(1-0,95^n)/(1-0,95)
| Afficher u
Fin tanque
sortie
Afficher n
(les mots clés en italique sont un peu optionnels et font un de ces effets ringard, mais bon, si on les mets autant les mettre tous y compris le mot "traitement")
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :