Javascript

Résolu
saeba87 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
saeba87 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup pour l'aide apporter.
0