Javascript

Résolu/Fermé
saeba87 Messages postés 20 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 5 avril 2010 - 17 oct. 2009 à 18:25
saeba87 Messages postés 20 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 5 avril 2010 - 19 oct. 2009 à 00:08
Bonjour,


j'ai un petit script a faire sur JavaScript pour les cours du soirs ,mais j'ai un petit problème si vous voulez bien m'aider ce serait bien sympa.

c'est ce qu'il me met alors qu'il est censé me donner des chiffres . :<
les resultats sont :
Le Minimum se trouve en position 0 et vaut : undefined
Le Maximum se trouve en position 0 et vaut : undefined
La moyenne vaut : NaN

Les valeurs aléatoires étaient
0) undefined


voici le script:



<script>

var Nombres = new Array(i);
var min=0,max=0,somme=0,moyenne;

do{

var nb = parseInt(window.prompt("entrer des nombres positifs ou negatifs, taper 0 pour arreter","0"));


for(var i=0;i<Nombres.length;i++)
{
somme+=Nombres[i];

if(Nombres[i] < Nombres[min])
{
min=i;
}

if(Nombres[i] > Nombres[max])
{
max=i;
}
}
}while( nb !=0);
moyenne = somme/20;
moyenne = Math.round(moyenne*1000)/1000;

//on affiche les résultats
document.write("<h3>Les résultats sont</h3>");
document.write("Le Minimum se trouve en position "+min+" et vaut : "+Nombres[min]+"<BR>");
document.write("Le Maximum se trouve en position "+max+" et vaut : "+Nombres[max]+"<BR>");
document.write("La moyenne vaut : "+moyenne+"<BR>");
document.write("<h3>Les valeurs aléatoires étaient</h3>");
for(var i=0;i<Nombres.length;i++)
{
document.write(i+") " + Nombres[i] + "<BR>");
}

</script>



merci d'avance

aurevoir,

4 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
17 oct. 2009 à 19:25
Bonjour,

Je corrige ton script :
var Nombres = new Array();
var min=0,max=0,somme=0,moyenne;
var i=0;

do{
    var nb = parseInt(window.prompt("entrer des nombres positifs ou negatifs, taper 0 pour arreter","0"));
    if (nb != 0) Nombres[i] = nb;
    somme += nb;

    if (Nombres[i] < Nombres[min])
    {
        min = i;
    }

    if(Nombres[i] > Nombres[max])
    {
        max = i;
    }
    i++;
}while( nb != 0);

moyenne = somme/(Nombres.length);
moyenne = Math.round(moyenne*1000)/1000;
0
saeba87 Messages postés 20 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 5 avril 2010
17 oct. 2009 à 21:38
merci bien reivax962 ,

Mais je voulais aussi savoir qu'elle était la cause du undefined et du not a number comme ca j'aurais compris mon erreur ^^

merci d'avance

aurevoir
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
18 oct. 2009 à 22:23
Plusieurs erreurs, mais c'est surtout que tu n'affectes jamais la valeur de nb à Nombres[i].
Ensuite, ta boucle FOR n'a pas lieu d'être (puisque tu es déjà dans une boucle sur tous les nombres do...while), et tu utilises la variable "i" à des endroits où elle n'est pas définie (dans new Array).
0
saeba87 Messages postés 20 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 5 avril 2010
19 oct. 2009 à 00:08
Merci beaucoup pour l'aide apporter.
0