Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

écrire un algorithme

Posté par
cameronelg
04-01-18 à 15:10

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

Posté par
fm_31
re : écrire un algorithme 04-01-18 à 15:46

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

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 15:46

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).

Posté par
cameronelg
re : écrire un algorithme 04-01-18 à 15:55

pour moi
M=100 prix du premier mètre creusé
S=100 prix total
N=1 nombre de mètre  

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 15:58

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 (!) ...

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 16:34

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


En se rappelant le tableau d'évolution de coût de forage :

\begin{tabular}{|c|c|c|} \hline Longueur & Prix du mètre foré & Coût du forage \\ (m) & (euros) & (euros) \\ \hline 0 & 0 & 0 \\ \hline 1 & 100 & 100 \\ \hline 2 & 140 & 240 \\ \hline 3 & 180 & 420 \\ \hline ... & ... & ... \\ \hline \end{tabular}

N'oubliez pas d'afficher le résultat comme l'a précisé fm_31.

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 16:41

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é.

Posté par
cameronelg
re : écrire un algorithme 04-01-18 à 16:51

merci sa m'aide beaucoup , mais pourquoi il est ecrit N<H

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 17:02

je suppose que la dernière ligne sera du type :


print("Cout du forage", ...)

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 17:16

petite question, les lignes M=100, S=100 et N=1 étaient-elles dans l'énoncé comme cela ?

Posté par
cameronelg
re : écrire un algorithme 04-01-18 à 17:27

non 'est moi qui en ai déduit  .

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 17:32

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.


Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 17:39

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...

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 17:48

@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.

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 17:52

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 = "))

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 17:58

On doit créer une boucle :


# longueur du forage atteinte ?
while N < H :

	# non : 
	S = ...
	# ...
	M = ...
	# ...
	N = ...

# oui : affichage du résultat


Pouvez-vous compléter ?

Posté par
cameronelg
re : écrire un algorithme 04-01-18 à 18:01

cette partie je pense avoir compris c'est celle ci qui me trouble :
while N<H
M= ..........
S=.............
N=..............

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 18:07

Qu'est-ce qui est troublant ?

Attention  une instruction while condition : se termine par un :

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 18:12

partir de S = 0 pose un problème si l'énoncé impose l'ordre des opérations dans la boucle

Citation :
cout initial et somme initiale pour N = 1 mètre
tant que je ne suis pas arrivé à la profondeur H (que N est < H)
je creuse 1 m de plus (la profondeur N augmente)
je calcule le prix de ce nouveau mètre (modification de M)
et je rajoute le prix de ce mètre là (puis modification de S)
et quand c'est fini le prix cumulé est ce que je vais faire payer.

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 18:24

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.

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 18:30

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)

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 18:30

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

Citation :
si l'énoncé impose l'ordre des opérations dans la boucle

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 18:41

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

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 18:48

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é.

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 19:11

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.

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 19:35

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 # il faut creuser un mètre de plus
# 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)

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 19:48

et bien cameronelg se  retrouve avec 2 solutions...

Posté par
mathafou Moderateur
re : écrire un algorithme 04-01-18 à 19:53

il n'a plus qu'à choisir celle qui correspond à son énoncé ...

Posté par
bbomaths
re : écrire un algorithme 04-01-18 à 19:56

et elle est la seule à le connaitre...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1567 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !