bonjour est ce quelqu'un pourrait m'aider pour cet exercice :
Voici le sujet :
D'après un arrêté du 4 juin 2009, une marge d'erreur doit être déduite de la vitesse enregistrée sur un radar.Sont déduits, lors d'un contrôle de vitesse :
- 5 km.h-1 pour un radar à poste fixe jusqu'à 100 km.h-1
- 5% de la vitesse au delà.
Questions :
a) Ecrire un algorithme qui affiche la vitesse retenue après avoir saisi en entrée la vitesse enregistrée pas le radar
b) Améliorer l'algorithme précédent de façon à ce qu'il indique s'il y a infraction ou non au code de la route après avoir saisi la vitesse maximale autorisée.
voici mes recherches :
A) from math import*
vitesse = x
if x>=100:
x=5-x
else:
x= x-("1/20")-x
print(x)
meme si cette exercice a déjà été posté par quelqu'un le mien n'est pas le meme car il faut utiliser edupython. Voila pourquoi je me suis permise de faire un nouveau post !
Bonjour,
après avoir saisi en entrée la vitesse
cela n'apparait nulle part dans ce que tu as écrit
EduPython c'est du Python dans lequel on a ajouté des "gadgets" pour simplifier la vie (et prendre éventuellement de mauvaises habitudes) !
ton expression x-("1/20")-x ne rime à rien
ni mathématiquement ni dans le langage Python (qui à cet égard est totalement identique à EduPython) ni dans aucun autre langage.
faudrait peut-être savoir comment mathématiquement on écrit une diminution de 5% !!
et puis quel que soit le langage utilisé tu penses que retrancher 5km/h de la vitesse x c'est calculer 5 km/h moins x ??
et relire l'énoncé !!
ces 5 là on le retranche dans quel cas ??
j'ai modifié mon algorithme:
if V>100
V= 0.95*V
else:
V=V-5
if V<Vmax
print("OK pas d'infraction")
else:
print("vous êtes en infraction de")
print(V-Vmax)
print("km")
OK, mais il manque toujours l'entrée de V
(un truc avec input, voir la doc)
et même aussi l'entrée de Vmax
int(input("Entrer V")
if V>100
V= 0.95*V
else:
V=V-5
int(input("Entrer Vmax")
if V<Vmax
print("OK pas d'infraction")
else:
print("vous êtes en infraction de")
print(V-Vmax)
print("km")
est-ce correct ou pas ?
par contre je ne comprends pas parce que quand je veux exécuter le programme edupython me dit qu'il y a une erreur dans la ligne :
else:
mais laquelle?
tu as une erreur sur les if, au moins l'indentation et ifV en un seul mot ça ne va pas
et vérifier les histoires de ':'
il ne me semble pas cohérent d'en mettre sur le else et pas sur le if (à vérifier dans la doc, je ne l'ai pas sous la main car pas chez moi)
en tout ca s'il ne comprend pas le 1er if, ça lui fait dire que le else qui suit est incongru (un else sans if ??)
nota ta capture d'écran n'est pas lisible, mais c'est quoi ces "LF" ??
bonjour j'ai trouvé la réponse de la question A.
v_radar = int(input("entrer la vitesse : "))
if v_radar <= 100 :
v_retenue = v_radar - 5
else:
v_retenue = v_radar * 95 / 100
print(v_retenue)
Mais j'ai vraiment besoin d'aide pour la question B...
Pouvez vous m'expliquez cette question voilà mon début si vous pouvez me dire ce qu'il manque :
v_max = int(input("entrer la vitesse :"))
if v_max <=100 :
v_retenue = infraction
print("infraction_code")
Ok pour la question a)
question b) : ça ne rime pas à grand chose ...
v_retenue c'est à partir de v_radar pas de v_max !
la solution c'est de reprendre exactement ce que tu as fait dans le programme précédent et de le complèter par :
une demande de v_max
la comparaison de v_max avec v_retenue
("100" n'a plus rien à faire là dedans et v_retenue c'est le programme d'avant sans en changer une virgule)
et selon le résultat de ce test :
sortir un message en clair : "infraction au code de la route" et pas un truc qui ressemble à des noms de variables avec des "_"
je suis désolée mais je n'y arrive pas...
je ne dois pas changer cet algorithme
v_radar = int(input("entrer la vitesse : "))
if v_radar <= 100 :
v_retenue = v_radar - 5
else:
v_retenue = v_radar * 95 / 100
print(v_retenue)
ça c'est le début du nouvel algorithme ...
la vitesse max on la connait c'est 100 non ?
non on ne la connait pas c'est une nouvelle entrée du programme, en plus de la vitesse mesurée (radar). (lire l'énoncé !!)
il y aura deux "input" :
la vitesse mesurée
et la vitesse max
100 c'est la règle pour modifier la vitesse mesurée, quelle que soit la vitesse autorisée
la vitesse max c'est 30, 50, 70, 80, 90, 110, 130 etc km/h selon les endroits .
ça n'a rien à voir avec la règle de calcul de la vitesse retenue
exemple
le radar mesure une vitesse de 90 km/h
comme c'est inférieur à 100 la vitesse retenue est 90-5 = 85 km/h
or on est sur une portion limitée à 110 km/h
donc 85 < 110, c'est bon
si avec exactement la même mesure de 90km/h (donc la vitesse retenue toujours = 85km/h) on était sur une portion limitée à 80km/h
85 > 80, il y a infraction.
le programme complet sera donc :
v_radar = int(input("entrer la vitesse : "))
if v_radar <= 100 :
v_retenue = v_radar - 5
else:
v_retenue = v_radar * 95 / 100
v_max = int(input(...
if ...
v_max=int(input(”entrer la vitesse maximale autorisée: "))
If v_max>=100
v_retenue = v_max- 5
Est ce que pour le moment c'est bon ?
NON
tu n'as toujours pas compris le code de la route
v_max=int(input(”entrer la vitesse maximale autorisée: "))
If v_retenue > vmax :
// infraction
else:
// OK
et v_retenue c'est ce qu'on a calculé avant (par le 1er programme) en fonction de la vitesse mesurée par le radar.
donc ce nouveau morceau là il est à ajouter après le 1er.
c'est à dire ce que je t'ai écrit :
v_radar = int(input("entrer la vitesse : "))
if v_radar <= 100 :
v_retenue = v_radar - 5
else:
v_retenue = v_radar * 95 / 100
v_max = int(input(«”entrer la vitesse maximale autorisée"))
If v_retenue>v_max:
Print (infraction)
else:
Print(pas d'infraction)
Est-ce possible comme ca ?
avec les bonnes indentations et une écriture correcte des Print, oui
et c'est ce qu'on demandait
pour savoir combien de points on retire ou si carrément le permis est retiré, il faut connaitre de combien on dépasse
en cas d'infraction le dépassement de la vitesse autorisée est v_retenue - v_max, afficher cette valeur.
tu dois déja surtout corriger les erreurs d'écriture signalées !
ensuite tu peux améliorer en écrivant par exemple en cas d'infraction des messages du genre :
infraction : vous dépassez la vitesse autorisée de ... km/h
ou bien
infraction ; la vitesse retenue est de ...km/h pour une vitesse autorisée de ...km/h
au lieu de juste "infraction et basta"
(ça te fera travailler un peu sur les bonnes façons d'écrire des Print et la différence entre texte et variables dans ces Print)
v_radar = int(input("entrer la vitesse : "))
if v_radar <= 100 :
v_retenue = v_radar - 5
else:
v_retenue = v_radar * 95 / 100
v_max = int(input(”entrer la vitesse maximale autorisée"))
If v_retenue>v_max:
Print (infraction_vitesse_dépassée)
else:
Print(pas_d'infraction_vitesse_respectée)
voilà j'ai améliorée les lignes print,je trouve ça pas mal ainsi...
il y a juste une chose que je ne comprends pas c'est pourquoi j'ai des lignes fausses...
Pouvez-vous me dire pourquoi ?
j'allais répondre :
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :