Country714
Messages postés1Date d'inscriptionmercredi 6 janvier 2016StatutMembreDernière intervention 6 janvier 2016
-
Modifié par jordane45 le 6/01/2016 à 17:02
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024
-
19 janv. 2016 à 15:46
Bonjour,
Je débute à Javascript et je n'arrive pas à afficher une fonction en HTML en utilisant .innerHTML... Je ne vois vraiment pas ce qui cloche....
JAVASCRIPT:
var somme = 0;
var nombre = 100;
var tableau = [];
//remplir un tableau de 100 cases et l'afficher grâce à .innerHTML
function remplissage(tableau,nombre){
for(i=0;i<nombre;i++){
tableau[i]=i;
}
document.getElementById("tableau2").innerHTML=tableau.join();
}
//Calculer la moyenne par une fonction et l'afficher
function moyenne(tableau){
for(i=0;i<tableau.length;i++){
somme+=tableau[i];
}
moyenne = somme/tableau.length;
return moyenne;
}
document.getElementById("moyenne2").innerHTML=moyenne(tableau);
//appel
remplissage(tableau,nombre);
afficher("Moyenne 0 à 100", moyenne(tableau));
Je pense que la réponse au non fonctionnement de votre code se trouve dans la rédaction de la fonction moyenne.
Dans une fonction, vous pouvez utiliser les paramètres qui sont placés entre parenthèses (ici tableau). Mais vous ne pouvez pas utiliser le nom de la fonction comme variable. La fonction devra être récrite comme suit :
function moyenne(tableau) {
var i = 0, moy = 0, somme = 0;
for (; i < tableau length; i++) {
somme += tableau[i];
}
moy = somme/tableau.length;
return moy;
}
Anomalies à corriger :
- toujours déclarer les variables locales avec var car les variables non déclarée deviennent globales, cela peut donner des effets inattendus en cas de réutilisation de ces noms de variables.
- ne jamais utiliser le nom de la fonction comme nom de variable locale. Le nom de la fonction peut être utilisé à l'intérieur d'une fonction récursive, mais dans ce cas il sera toujours accompagné des parenthèses ex. moyenne().
- les variables d'incrémentation (ici i) doivent aussi être déclarées, dans notre cas deux possibilités:
-- en début de fonction comme je viens de le faire,
-- dans la boucle for comme ceci : for (var i = 0; i<tableau.length; i++) {
Bon courage!.....
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024344 19 janv. 2016 à 15:46
Bonjour,
Je pense que la réponse au non fonctionnement de votre code se trouve dans la rédaction de la fonction moyenne.
Non.
Comme indiqué dans mon message précédent (du 6 Janvier) ... le premier souci vient d'une fonction appelée... inexistante !
Dans une fonction, vous pouvez utiliser les paramètres qui sont placés entre parenthèses (ici tableau). Mais vous ne pouvez pas utiliser le nom de la fonction comme variable.
Ah ??
Pourtant ça fonctionne très bien.... (même si je suis bien d'accord.. que c'est à éviter (surtout pour éviter de se mélanger les pinceaux..))
toujours déclarer les variables locales avec var car les variables non déclarée deviennent globales,
Il ne me semble pas (pour le côté global...)
Par contre, une chose est sûr... certains navigateurs (surtout IE pour ne pas le citer) n’apprécient pas.
Il est donc, en effet, fortement recommandé de déclarer ses variables avec le var.
Pour déclarer une variable "globale" il suffit de la déclarer en dehors de toute fonction.
par exemple :
var mavaribleglobale = "toto";
function test(){
alert(mavaribleglobale );
}
6 janv. 2016 à 17:09
Tu cherches à afficher la Moyenne ...... AVANT d'avoir fait le remplissage de ton tableau....