Bonjour, je suis nouveau dans ce forum, il s'agit de mon premier post.
Je dois créer un formulaire qui va renvoyer la somme d'une suite.
EX:
début : 2
fin : 9
incrémentation : 3
devrais me renvoyer 2+5+8 = 15.
Pour cela, j'ai créer une fonction nommée sommedf(_debut).
Lorsque j'entre
début : 2
fin : 9
incrémentation : 3 ,
il m'affiche bien 15. Mais lorsque j'entre début: 2 fin: 10 incrémentation: 3, il me renvoi 0 alors qu'il devrait me renvoyer 15.
Pourquoi je n'obtient pas le résultat voulu? il fonctionne comme il faut pour tout les chiffre de fin sauf pour les chiffres de 10 à19, puis de 100 à 199, puis de 1000 à 1999...
Pourquoi il considère que pour par exemple debut(2) > fin(10) alors que ce n'est pas le cas ? Merci.
Voici mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| <form name="frm_somme" method="POST">
<div>
<label> Début: </label>
<input type="text" name="txt_jour" id="id_debut" size="20" class="input_1">
</div>
<div>
<label> Fin: </label>
<input type="text" name="txt_mois" id="id_fin" size="20" class="input_1">
</div>
<div>
<label> Incrémentation: </label>
<input type="text" name="txt_annee" id="id_inc" size="20" class="input_1">
</div>
<input type="button" name="btn_somme" value="Calculer" onclick="somme();" class="input_2">
<div>
<label> Somme : </label>
<p id="id_somme"> </p>
</div>
</form>
<script>
function somme()
{
let debut= document.getElementById('id_debut').value;
let fin= document.getElementById('id_fin').value;
let inc= document.getElementById('id_inc').value;
let nfin="";
alert (debut +"," +fin +"," +inc);
if (debut!=="" && fin!=="")
{
// alert ("OK");//
function sommedf(_debut)
{
if (_debut > fin)
{
return 0;
}
result=_debut*1 + sommedf(_debut*1 + inc*1);
console.log (result);
return result;
}
sommedf(debut);
x=(sommedf(debut));
document.getElementById('id_somme').innerHTML = x;
}
else
{
alert ("non");
}
}
</script> |
Partager