Problème d'accéder a des valeurs dans un tableau associatif
Résolu
wsara5454
Messages postés
72
Statut
Membre
-
wsara5454 Messages postés 72 Statut Membre -
wsara5454 Messages postés 72 Statut Membre -
Bonjour,
j'ai un petit problème dans la fonction "calculer_moyenne" qui calcule des valeurs dans un tableau associatif ,
lorsque j'appuie sur la bouton "moyenne" le programme n'affiche pas le résultat attendu
aidez moi svp :)
merci d'avance
j'ai un petit problème dans la fonction "calculer_moyenne" qui calcule des valeurs dans un tableau associatif ,
lorsque j'appuie sur la bouton "moyenne" le programme n'affiche pas le résultat attendu
aidez moi svp :)
merci d'avance
<html>
<head>
<style type="text/css">
ul { color: blue }
.couleurLi { color:black;font-style:italic;font-weight:bold; }
</style>
<script language="javascript">
function Etudiants(a,b,c)
{ this.Ncin=a;
this.NonPrenom=b;
this.TabNote=c;
this.TabMatiere=null;
this.afficher=function()
{
document.write("<ul>");
document.write("<li>");
document.write("<span class=couleurLi>");
document.write("Ncin: "+this.Ncin+"<br/>");
document.write("</span>");
document.write("</li>");
document.write("<li>");
document.write("<span class=couleurLi>");
document.write("Nom et Prenom: "+this.NonPrenom+"<br/>");
document.write("</span>");
document.write("</li>");
document.write("<li>");
document.write("<span class=couleurLi>");
document.write("TabNotes: <br/>");
document.write("<br/>");
document.write("<table border=1 cellspacing=0 bordercolor=#3BB9FF>");
document.write("<font color=#4E387E>");
document.write("<tr>");
for(i in this.TabNote)
{
document.write("<td><b>"+i+"</b></td>");
}
document.write("</tr>");
document.write("<tr>");
for(i in this.TabNote)
{
document.write("<td>"+this.TabNote[i]+"</td>");
}
document.write("</tr>");
document.write("</font>");
document.write("</table>");
document.write("<br/>");
document.write("<li>");
document.write("<span class=couleurLi>");
document.write("TabMatiere: <br/>");
document.write("<br/>");
document.write("<table border=1 cellspacing=0 bordercolor=#3BB9FF>");
document.write("<tr>");
for(i in this.TabMatiere)
{
document.write("<td><b>"+i+"</b></td>");
}
document.write("</tr>");
document.write("<tr>");
for(i in this.TabMatiere)
{
document.write("<td>"+this.TabMatiere[i]+"</td>");
}
document.write("</tr>");
document.write("</table>");
}
document.write("</span>");
document.write("</li>");
document.write("</ul>");
this.setTabM=function(v)
{
this.TabMatiere=v;
}
}
Etudiants.prototype.calculer_moyenne=function()
{
s=0;
x=0;
for(i in this.TabNote)
{
s=s+(this.TabNote[i]*this.TabMatiere[i]);
x=x+this.TabMatiere[i];
}
w=s/x;
return(w);
}
</script>
</head>
<body>
<script language="javascript">
tab1={Algorithme:"12",Web1:"13",Web2:"15"};
tab2={Algorithme:"2",Web1:"3",Web2:"5"};
e1=new Etudiants("12345678","Ali Ben Salah",tab1);
e1.setTabM(tab2);
e1.afficher();
</script>
<br>
<br>
<input type="button" value=" moyenne " onclick="alert(calculer_moyenne())">
</body>
</html>
A voir également:
- Problème d'accéder a des valeurs dans un tableau associatif
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif ci-dessous. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. il manque 5 valeurs dans le tableau ci-dessous. retrouvez-les dans votre tableau, puis reportez-les arrondies à l’entier le plus proche. - Guide
- Imprimer un tableau excel - Guide
2 réponses
Bonjour
1er problème : calculer_moyenne est une méthode, il faut l'appeler avec un objet :
2 ème problème : tes notes sont des chaînes. Quand tu ajoutes les coefficients, (x=x+this.TabMatiere[i]) tu les concatènes et tu obtiens 0235 au lieu de 10, ce qui se voit facilement en faisant un alert (s+" "+x); dans calculer_moyenne
Deux solutions, définir tes coefficients comme des nombres :
ou utiliser parseInt pour transformer les chaînes en nombres :
1er problème : calculer_moyenne est une méthode, il faut l'appeler avec un objet :
onclick="alert(e1.calculer_moyenne())
2 ème problème : tes notes sont des chaînes. Quand tu ajoutes les coefficients, (x=x+this.TabMatiere[i]) tu les concatènes et tu obtiens 0235 au lieu de 10, ce qui se voit facilement en faisant un alert (s+" "+x); dans calculer_moyenne
Deux solutions, définir tes coefficients comme des nombres :
tab2={Algorithme:2,Web1:3,Web2:5};
ou utiliser parseInt pour transformer les chaînes en nombres :
x=x+parseInt(this.TabMatiere[i]);