Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul vitesse moyenne avec javascript

4 réponses
Avatar
Gaet5
Bonjour,

Je me lance dans le javascript. Soyez indulgent :)

Je suis en train de préparer une fonction permettant de calculer une vitesse moyenne à partir des réponses d'un formulaire.

J'ai rédigé le formulaire permettant d'extraire les renseignements. Il me reste donc la fameuse fonction qui permet de calculer cette vitesse moyenne.

Dans mon code, "e;d"e; permet de récupérer la distance.
"e;h"e; les heures, "e;m"e; les minutes et "e;s"e; les secondes.

Il faudrait donc que cette fonction divise la distance "e;d"e; par le temps : "e;h"e; + "e;m"e; divisé par 60 + "e;s"e; divisé par 3600.

En gros v = d / (h+m+s)

v = vitesse moyenne en Km/h

Voici mon code sans la fonction que je recherche :

[code]<head>
<style type="e;text/css"e;>
body {
background-color: #90E010;
}
form {
font-size: 12px;
width: 300px;
margin-left:auto;
margin-right:auto;
background-image: url("e;http://i68.servimg.com/u/f68/19/38/41/03/wood-b10.jpg"e;);
background-repeat: repeat;
border: 1px solid black;
border-radius: 10px 10px 10px 10px;
box-shadow:4px 4px 4px gray,
-1px -1px 4px white;
}
fieldset{
margin-left:auto;
margin-right:auto;
text-align:center;
}
legend,p {
font-family: Monotype Corsiva;
text-align:center;
padding-left:20px;
padding-right:20px;
color: #531014;
font-size: 24px;
}
.left td{
text-align:right;
width:250px;
}
.left td+td {text-align:left}
</style>

<script type="e;text/javascript"e;>
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var nomTrail = form.NomTrail.value
var d = form.d.value
var h = form.h.value
var m = form.m.value
var s = form.s.value

var txt_message ="e;<br><div style="e;width:390px;height:70px;margin-left:30px;text-align:right;"e;><br><br><br><span style="e;font-size: 29px;font-family:Monotype Corsiva;color: #531014;"e;>"e; + NomTrail + "e;</span></div><br><br>"e;
+ "e;[b]Nom du trail : [/b]"e; + NomTrail + 'n'
+ "e;[b]Distance : [/b]"e; + d + 'n'
+ "e;[b]Heures : [/b]"e; + h + 'n'
+ "e;[b]Minutes [/b]"e; + m + 'n'
+ "e;[b]Secondes : [/b]"e; + s + 'n'
+ "e;[b]Vitesse moyenne : [/b]"e; + vitesseMoyenne + 'n';

// Insère le texte construit dans le champ caché "e;message"e; du formulaire
form.message.value = txt_message;
form.subject.value = "e;"e; + NomTrail ;
}

// ICI LA FONCTION PERMETTANT DE FAIRE "e;d"e; divisé par "e;h"e;,"e;m"e;,"e;s"e;

</script>
</head>

<body>

<form action="e;/post"e; method="e;post"e; name="e;post"e; enctype="e;multipart/form-data"e; onSubmit="e;envoiMessage(this)"e; >
<input type="e;hidden"e; name="e;lt"e; value="e;0"e; />
<input type="e;hidden"e; name="e;mode"e; value="e;newtopic"e; /> <!-- Un nouveau topic sera créé -->
<input type="e;hidden"e; name="e;topictype"e; value="e;0"e; checked="e;checked"e; /> <!-- Value 0: Sujet Normal (1 = Note / 2 = annonce) -->
<input type="e;hidden"e; name="e;message"e; value="e;"e; /> <!-- Contiendra le texte du message -->
<input type="e;hidden"e; name="e;f"e; value="e;2"e; /> <!-- ID du forum dans lequel le message sera posté -->
<input type="e;hidden"e; name="e;subject"e; id="e;titre"e; value="e;"e; /> <!-- titre du sujet -->


<fieldset><legend ><p>Calculez la vitesse moyenne</p> </legend>
<table class="e;left"e;>
<tr><td><label for="e;NomTrail"e;><center>Nom de la course :</center></label></td>
<td><input type="e;text"e; name="e;NomTrail"e; id="e;NomTrail"e; size="e;17"e; maxlength="e;30"e; placeholder="e;Apparaitra comme titre "e; /></td></tr>

<tr><td><label for="e;distance"e;>Distance :</label></td>
<td><input type="e;text"e; name="e;d"e; id="e;d"e; size="e;3"e; maxlength="e;5"e; placeholder="e;En km"e; /></td></tr>

<tr><td><label for="e;hour"e;>Temps de course :</label></td>
<td><input type="e;text"e; placeholder="e;heures"e; name="e;h"e; id="e;h"e; size="e;3"e; maxlength="e;2"e; /></td></tr>

<tr><td><label for="e;minute"e;>Minutes :</label></td>
<td><input type="e;text"e; placeholder="e;minutes"e; name="e;m"e; id="e;m"e; size="e;3"e; maxlength="e;2"e; /></td></tr>

<tr><td><label for="e;second"e;>Secondes :</label></td>
<td><input type="e;text"e; placeholder="e;secondes"e; name="e;s"e; id="e;s"e; size="e;3"e; maxlength="e;2"e; /></td></tr>
</table>

<br />
<input type="e;submit"e; name="e;post"e; value="e;Calculer !"e; />
<br />
</fieldset>

</form>

</body>[/code]

Pouvez vous m'aider ?

Merci

4 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 07/02/2016 11:43, Gaet5 a écrit :
[...]

Dans mon code, "e;d"e; permet de récupérer la distance.
"e;h"e; les heures, "e;m"e; les minutes et "e;s"e; les secondes.



Je ne sais pas avec quoi tu accèdes aux groupes de news,
probablement un navigateur web sur un serveur chez Giganews,
mais tous tes guillemets « " » se trouvent remplacés par la
séquence guillemet + e + point-virgule « "e; ».

Du coup c'est assez difficile à lire, alors j'ai traduit ce
qui était indispensable :

Dans mon code, "d" permet de récupérer la distance.
"h" les heures, "m" les minutes et "s" les secondes.

Il faudrait donc que cette fonction divise la distance "d" par le temps :
"h" + "m" divisé par 60 + "s" divisé par 3600.

En gros v = d / (h+m+s)

v = vitesse moyenne en Km/h



À priori, si la distance est bien exprimée en km, il te
suffit d'écrire :
v = d / (h + m/60 + s/3600)

Ceci est correct si les valeurs d, h, m et s sont déjà des nombres
et non des chaînes de caractères. Tu peux t'en assurer en écrivant
d'abord :
d = +d; h = +h; m = +m; s = +s;

Ou bien tu peux écrire directement :
v = (+d) / ((+h) + (+m)/60 + (+s)/3600)

Il y a sûrement des raccourcis possibles, mais parfois le plus simple
est le mieux.

Cordialement,
--
Olivier Miakinen
Avatar
SAM
Le 08/02/16 12:33, Olivier Miakinen a écrit :

À priori, si la distance est bien exprimée en km, il te
suffit d'écrire :
v = d / (h + m/60 + s/3600)

Ceci est correct si les valeurs d, h, m et s sont déjà des nombres
et non des chaînes de caractères. Tu peux t'en assurer en écrivant
d'abord :
d = +d; h = +h; m = +m; s = +s;

Ou bien tu peux écrire directement :
v = (+d) / ((+h) + (+m)/60 + (+s)/3600)

Il y a sûrement des raccourcis possibles, mais parfois le plus simple
est le mieux.



Il me semble que dès qu'on fait intervenir une multiplication, une
division ou une soustraction, le JS "sait" qu'on lui demande de calculer
même si un des chosemachins semble n'être pas un nombre

Le nécessaire et suffisant devient donc :
var v = d / (h*1 + m/60 + s/3600);
où h, m et s peuvent être directement les valeurs des champs de texte

verif :
alert('280'/('2'*1+'10'/60 + '30'/3600))


Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Avatar
Olivier Miakinen
Le 25/02/2016 18:27, SAM m'a répondu :

Ô joie ! Stéphane, ça me fait très plaisir de te revoir ici après
(il me semble) plusieurs mois d'absence. J'espère qu'il ne t'est
rien arrivé de fâcheux depuis tout ce temps.

[...]

À priori, si la distance est bien exprimée en km, il te
suffit d'écrire :
v = d / (h + m/60 + s/3600)

[...]
v = (+d) / ((+h) + (+m)/60 + (+s)/3600)



Il me semble que dès qu'on fait intervenir une multiplication, une
division ou une soustraction, le JS "sait" qu'on lui demande de calculer
même si un des chosemachins semble n'être pas un nombre

Le nécessaire et suffisant devient donc :
var v = d / (h*1 + m/60 + s/3600);
où h, m et s peuvent être directement les valeurs des champs de texte

verif :
alert('280'/('2'*1+'10'/60 + '30'/3600))



Excellent. Et encore merci !

--
Olivier Miakinen
Avatar
SAM
Le 29/02/16 00:01, Olivier Miakinen a écrit :
Le 25/02/2016 18:27, SAM m'a répondu :

Ô joie ! Stéphane, ça me fait très plaisir de te revoir ici après
(il me semble) plusieurs mois d'absence. J'espère qu'il ne t'est
rien arrivé de fâcheux depuis tout ce temps.



La baisse de fréquence générale sur les NGs me les a fait un peu abandonner.
J'évite aussi les sujets qui ne sont pas du JavaScript mais des
particularismes de "biblis".
Et puis ... j'utilise + la tablette que l'ordi.
(pas de NG et surtout pas pratique pour tapoter du texte)



Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8