bonjour
j'ai beaucoup de mal a comprendre cet exercice :
je résume l'exercice du forage:
le prix du premier mètre creusé 100 E, le second 140 E chaque nouveau mètre creusé augmente le prix de 40 E.
je dois compléter en langage python afin qu'il affiche le prix total S d'un puits de H mètre lorsque l'on entre la valeur de H .
pour le moment j'ai fait cela :
M=100
S=100
N=1
H=int(input("H=*))
while N<H
M= ..........
S=.............
N=..............
voila c'est cela que je ne comprends pas , pouvez m'expliquer ?
merci
Bonjour ,
Sais- tu ce que représentent les variables M , S et N ?
Pour les traitements , il faut faire ce qui correspond à l'énoncé .
N'oublie pas l'affichage du résultat .
Cordialement
Bonjour,
on calcule le prix mètre par mètre (d'où une boucle) jusqu'à atteindre la profondeur désirée (entrée)
et on cumule le tout (dans S).
oui ça c'est le début du calcul
au bout de N = 1 mètre qui a couté uniquement M, le prix total de ce seul 1èr mètre est de S = 100
ensuite on continue à creuser (!) ...
Bonjour.
Vous n'êtes pas loin de la solution... Personnellement, je décrirais les variables M, S et N comme suit :
# coût du mètre foré
M = 100
# somme due
S = 0
# nombre de mètres forés
N = 0
l'algorithme proposé commence au premier mètre
donc les S = 100 et N = 1 de l'énoncé
on peut certes créer un autre algorithme avec des calculs et des boucles différentes
mais ce sera un autre algorithme
pas compléter celui de l'énoncé.
au vu des "..." dans les lignes à complèter, je dirais que oui, évidemment seul cameronelg pourra répondre.
cout initial et somme initiale pour N = 1 mètre
tant que je ne suis pas arrivé à la profondeur H
je creuse 1 m de plus (la profondeur N augmente)
et je rajoute le prix de ce mètre là
et quand c'est fini le prix cumulé est ce que je vais faire payer.
ah bon ...
on donne son énonce tel quel à la virgule près
puis on y ajoute ce qu'on a deja trouvé
en faisant bien la différence entre ce qui est dans l'énoncé et ce qu'on a déja fait
sinon (par exemple si ce qu'on a trouvé est faux, ou si on a interprété de travers) le plantage et réponses sans aucun rapport est assuré !!
je vous laisse.
bbomaths est très bien parti pour t'aider sur des bases saines...
@Mathafou, vous aviez raison dans un autre topic. Je dois reconnaitre que s'initier à un langage informatique en faisant du "reverse engineering" sur des programmes à trous n'est pas la meilleure méthode. La-dessus, nous sommes d'accord.
on reprend...
Pour moi, les premières lignes devraient être :
# cout du mètre foré
M = 100
# somme due
S = 0
# nombre de mètres forés
N = 0
# saisie
H = int(input(" Entrez la longueur du forage H = "))
On doit créer une boucle :
# longueur du forage atteinte ?
while N < H :
# non :
S = ...
# ...
M = ...
# ...
N = ...
# oui : affichage du résultat
cette partie je pense avoir compris c'est celle ci qui me trouble :
while N<H
M= ..........
S=.............
N=..............
partir de S = 0 pose un problème si l'énoncé impose l'ordre des opérations dans la boucle
Il faudrait avoir l'énoncé brut de coffrage... ou que proposez-vous comme solution ?
L'avantage de partir de S = 0 et d'inverser 2 lignes permet de rentrer un H nul.
ma solution :
# cout du mètre foré
M = 100
# somme due
S = 0
# nombre de mètres forés
N = 0
# saisie
H = int(input(" Entrez la longueur du forage H = "))
# longueur du forage atteinte ?
while N < H :
# non : mise a jour de la somme due
S = S + M
# cout du mètre foré suivant
M = M + 40
# mètre foré suivant
N = N + 1
# affichage du résultat
print("Cout du forage : ", S)
oui, mais H nul (ne rien creuser du tout) entraine que il n'y a aucune demande faite à l'entreprise de forage et donc aucun besoin d'un calcul pour dire qu'il n'y a rien à payer à une entreprise qu'on ne consulte même pas
mais comme tu dis et comme je dis
La touche 0 est à côté de la touche 1 sur le pavé numérique de nos claviers. Cela peut entrainer une erreur de frappe. Donc prévoir le cas H=0, volontaire ou non, n'est pas aussi saugrenu qu'il parait
certes, prévoir le cas où on demande -5 m au lieu 65 m aussi (parce que le - est la touche 6 sans "maj") etc
je n'ai jamais prétendu qu'il ne fallait pas traiter ce cas
mais que dans le cadre de cet algorithme avec ces trous là ce n'est pas d'actualité.
Bien, proposez votre solution à cameronelg qui aura ainsi 2 algorithmes possibles en fonction de l'énoncé que nous n'avons pas encore vu sous sa forme brute.
bein c'est juste en bouchant les trous qui restaient de son tout premier message...
# le premier mètre
# coût de ce mètre
M=100
# coût total pour l'instant
S=100
# profondeur pour l'instant
N=1
# profondeur demandée
H=int(input("H="))
while N
# cout de ce nouveau mètre
M= M+40
# ajouté à la somme à payer
S= S+M
# on a creusé 1 mètre de plus
N= N+1
print("Cout du forage : ", S)
(sans oublier les ":" en fin de ligne while et l'indentation obligatoire en Python car faisant partie intégrante de la syntaxe)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :