Salut à tous. Dans mon DM, il y'a un algorithme avec une boucle "pour".
"Une entreprise de forage creuse des puits dans le désert afin d'atteindre la nappe d'eau phréatique.Cette entreprise facture le première mètre creusé 100 euros, le second mètre 140 euros et ainsi de suite en augmentant le prix de chaque nouveau mètre creusé de 40 euros."
"1) Déterminer le prix M du troisième mètre creusé et en déduire que le prix total S d'un puits de trois mètres de profondeur est de 420 euros."
2)L'algorithme ci-dessous permet de calculer le prix total du forage en fonction de la profondeur. Compléter cet algorithme :
Variables ...Sont des entiers
Initialisation M prend la valeur ...
S prend la valeur ...
Lire N
Traitement : Pour I allant de 1 à ...faire
M prend la valeur ...
S prend la valeur...
Fin pour
Sortie : ...
Ce que je n'arrive pas dans cet algorithme, c'est de savoir ce que je dois mètre à M et S au départ. Pour M, je mets le prix de départ d'un seul mètre ou autre chose ? Et pour S, je mets le prix total de deux mètres (vu qu'on fait cela pour calculer le troisième) ? Ou autre ? Je suis paumé ^^'
Bonjour,
Tu as la réponse dans la question 1.
Essaie de comprendre ce que fais cet algorithme, et donc pourquoi il faut rentrer ces valeurs là en particulier pour que l'algorithme donne le bon résultat.
Je pense avoir compris.
Au début je fais M prend la valeur 140
S prend la valeur 240
Pour I allant de 1 à N faire
M prend la valeur M+40
S prend la valeur S+180
Fin pour
Sortie : Afficher S (je mets aussi afficher M ?) Ce serait ça ?
Et pour N la répétition serait de une fois non ?
Oui. La profondeur est coupée en mètre, que l'on peur déterminer.
A chaque mètre ajouté, on rajoute 40€ dans le prix du mètre carré par rapport au précédent.
Le prix total est donc changeant pour le nombre de mètres que tu veux creuser. N correspond à ce nombre.
On ajoute 40€ au prix du mètre carré à chaque mètre creusé supplémentaire.
Et on rajoute ce surplus dans le prix total.
A partir de là, peux-tu réussir à remplir l'algorithme ?
Bah en lisant ce que tu m'écris, je me dis que ce que j'avais testé n'a pas l'air mauvais :
Enfaite cet exemple n'est pas général, il est fait dans l'exemple ou il faudrait aller jusqu'à 3 mètres seulement.
Au début je fais M prend la valeur 140
S prend la valeur 240
Pour I allant de 1 à N faire
M prend la valeur M+40
S prend la valeur S+180
Fin pour
Sortie : Afficher S
OU alors, à la fin il faudrait faire "S prend la valeur S+M+40" ? (Ce serait mieux pour un exemple général).
MAIS en faite c'est aussi ça le problème, je ne sais pas si la question c'est juste pour 3 mètres ou bien si il faut un exemple générale.
Il faut un exemple général et ton algorithme est totalement faux...
Déjà je ne comprends pas pourquoi M et S n'auraient pas la même valeur de départ.
Et on très bien demander à ton algorithme quel est le prix pour un seul mètre creusé.
Le tien répondrait 360€...
Au début je fais M prend la valeur 140
S prend la valeur 140
Pour I allant de 1 à N faire
M prend la valeur M+40
S prend la valeur S+M+40
Fin pour
Et là normalement c'est bon ? Il commence tout les deux (M et S) à 140 et S prend la valeur S+M+40.
Version encore corrigée : il commence tous les deux à 100 et pas à 140 !
Au début je fais M prend la valeur 100
S prend la valeur 100
Pour I allant de 1 à N faire
M prend la valeur M+40
S prend la valeur S+M+40
Fin pour
Et là normalement c'est bon ? Il commence tout les deux (M et S) à 100 et S prend la valeur S+M+40.
Donc si je demande à l'algorithme n=0, je me retrouve à payer 100€ pour rien.
Et pourquoi rajouter 40€ en plus de M, qui les contient déjà ?
Au début je fais M prend la valeur 0
S prend la valeur 0
Pour I allant de 1 à N faire
M prend la valeur 100+40 (là je ne suis pas sur, il y'a 100 car la somme commence à 100 avant d'augmenter de 40...)
S prend la valeur S+M (mais là ça ne fait pas bizarre de mettre ça ? Pour moi la différence entre S et M c'est que M à chaque réitération ne gagne que 40 alors que S gagne la dernière somme (disons 140)+les 40 d'augmentation (c'est un exemple là))
Fin pour
J'actualise le sujet en donnant mon dernier essai que je pense prêt du résultat final :
M, S, N sont des entiers
M prend la valeur 100
S prend la valeur 100
Lire N
Pour I allant de 1 à N (dans cet exemple N=3) faire
M prend la valeur M+2X40
S prend la valeur NXS+NX40
Fin pour
Afficher S
Je sais que ce n'est pas ça, mais je pense que c'est pas loin, j'ai vraiment besoin d'aide, merci d'avance.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :