bonjour
bon je serais bref,
mon code est quasi fini, les erreurs restantes sont dues a la fonction thirdpage () et surtout l'algo qui permet de dire l'argent que chaque personne dois aux autres.
Le problème est que je ne sais pas d'ou vient l'erreur, j'ai l'impression que l'algo est juste mais pourtant je me tape des undefined dans la reponse :/
voici mon code:
en vous remerciant d'avanceCode HTML:<html> <head> <title>exercice finale</title> <script language="javascript" > var personnes; var addition; function secondpage() //page2 { personnes=parseFloat(document.formulaire1.personnes.value); //variable personnes =/= //construction de la page 2 var page2='<form name="formulaire2">'; page2+='<table style="border:2px solid green">'; page2+='<tr><td>'; for( var pers=0 ; pers < personnes ; pers++ ) { page2+='<p>' page2+='nom de la personne '+parseFloat(pers+1)+': '; page2+='<input type="text" name="nom" value="nom" size="20"><br> ' ; //champ de saisie nom de la personne page2+="argent qu'elle a donné: "; page2+='<input type="text" name="argent" value="argent" size="20"><br> '; //champ de saisie argent donné page2+='</p>' } page2+='<input type="button" value="continuer" onclick="thirdpage();"> ' ; //bouton continuer 2 page2+='</td></tr>'; page2+='</table>'; page2+='</form>'; document.getElementById("formu1").innerHTML=page2; //remplacement de la page 1 } function thirdpage() //page3 { addition=parseFloat(document.formulaire1.addition.value); //argent total donné au serveur var moyenne=addition/personnes; //ce que chaque personne est sensé payer var nom=new Array(); var argent=new Array(); var solde=new Array(); var total=0; for( var i=0;i<personnes;i++) //creation de matrice pour chaque personne { nom[i]=document.formulaire2.nom[i].value; //creation matrice prix par personne argent[i]=parseFloat(document.formulaire2.argent[i].value); solde[i]=argent[i]-moyenne; total += argent[i]; } nom[personnes]="Le serveur"; solde[personnes]=total-addition; //calcul du rendu de l'argent var textebilan=new Array(); // ! ! !! ! !! ! !! ! !! ! !! ! ERREUR dans le calcul de rendu for ( i=0;i<=personnes;i++) //serveur inclus { for (var j=0;j<=personnes;j++) //trouvera 0 au bout de la boucle si on prend le serveur en compte { if(solde[i]>0&&solde[j]<0) { if(solde[i]>-solde[j]) { textebilan[i]+="<b>"+nom[i]+"</b> doit <u>"-(solde[j])+" euro</u> à <b>"+ nom[j]+"</b><br>"; //[] check variables personnes a partir de 1 et i a partir de 0 ACHTUNG solde[i]+=solde[i]+solde[j]; // i et j inversé voir avec 2 et 20 solde[j]=0; } else { textebilan[i]+="<b>"+nom[j]+"</b> doit <u>"+(solde[i])+" euro</u> à <b>"+ nom[i]+"</b><br>"; solde[j]=solde[j]+solde[i]; solde[i]=0; } //alert("test"+textebilan[0]+""); } } } //construction de la page 3 var page3='<table style="border:2px solid red">'; page3+='<tr><td>'; //page3+='<b>le serveur</b> rend <u>'+solde[personnes]+'euro </u>'; for( var pers=0; pers<=personnes; pers++) { page3+='<p>'; //page3+='<b>le serveur</b> rend <u>'+textebilan[personnes]+'</u>'; //if (solde[j]!=0||solde[i]!=0) { page3+=''+textebilan[pers]+''; } //page3+='testnom='+nom[pers]+'<br>testargent : '+argent[pers]+'<br>solde:'+solde[pers]+'<br>textebilan:'+textebilan[pers]+'<br>'; page3+='</p>'; } // page3+='test addition de '+addition+'<br>test moyenne: '+moyenne+''; page3+='</td></tr>'; page3+='</table>'; document.getElementById("formu1").innerHTML=page3; } </script> </head> <body> <h1> Remise d'argent </h1> <!--page 1--> <p id="formu1"> <table style="border:2px solid blue"> <tr><td> <form name="formulaire1"> Nombre de personnes: <br> <input type="text" name="personnes" value="3" size="20"><br> <!--champ de saisie personnes--> Montant totale de l'adition:<br> <input type="text" name="addition" value="30" size="20"><br> <!--champ de saisie prix total--> <!--CHANGER LES CHAMPS INNITIALES--> <input type="button" value="continuer" onclick="secondpage();"> <!--boutton continuer 1---> </form> </td></tr> </table> </p> </body> </html>![]()
-----