rendered paste bodyfunction validData(Xo, nbDec){ var erreur = 0; if (!isDataValid(Xo)) erreur = 1; if (!isDataValid(nbDec)) erreur = 2; else if(nbDec < 0) erreur = 3; return erreur;}function isDataValid(data){ if (isNaN(data)) return false; else return true;}function dispatchErreur(erreur){ var msg; msg = ""; switch(erreur){ case 1: msg = "Xo doit etre un chiffre"; break; case 2: msg = "NbDecimales doit etre un chiffre"; break; case 3: msg = "NbDecimales doit etre positif"; break; } document.getElementById('nr_res').value = msg;}function calc(){ var fct = document.getElementById('nr_slct').value; //alert(fct); if (fct == "1" || fct == "2" || fct == "3" || fct == "4" || fct == "5"){ var Xo, nbDec, erreur; Xo = parseFloat(document.getElementById('nr_x0').value); nbDec = parseInt(document.getElementById('nr_dec').value); //alert(Xo+"\n"+nbDec); erreur = validData(Xo, nbDec); if (erreur == 0) calcNewRaph(Xo,nbDec,fct); else dispatchErreur(erreur); } else{ document.getElementById('nr_res').value = "Erreur dans le choix de la fonction"; return false; }}function calcNewRaph(Xn,nbDec,fct){ var ok = false; var fXn, fpXn, XnSuiv; fXn = fpXn = XnSuiv = 0; while(!ok){ fXn = selectFct(fct,Xn,0); fpXn = selectFct(fct,Xn,1); XnSuiv = calcXnSuiv(Xn,fXn,fpXn); ok = isOk(Xn,XnSuiv,nbDec); //alert(XnSuiv); Xn = XnSuiv; } document.getElementById('nr_res').value = XnSuiv.toFixed(nbDec);}function selectFct(fct, Xn, type){ switch(fct){ case "1" : return calcFct1(Xn,type); break; case "2" : return calcFct2(Xn,type); break; case "3" : return calcFct3(Xn,type); break; case "4" : return calcFct4(Xn,type); break; case "5" : return calcFct5(Xn,type); break; default: document.getElementById('nr_res').value = "Aucune fonction choisie"; } }function calcXnSuiv(Xn, fXn, fpXn){ return (Xn - (fXn/fpXn));}function calcFct1(Xn,type){ if (type == 0) return Math.pow(Xn,3) - Math.pow(Xn,2) + 1; else return 3*Math.pow(Xn,2) - 2*Xn;}function calcFct2(Xn,type){ if (type == 0) return Math.pow(Xn,4) - 3*Math.pow(Xn,2) + 75*Xn - 10000; else return 4*Math.pow(Xn,3) - 6*Xn + 75;}function calcFct3(Xn, type){ if(type == 0) return Math.pow(Xn,3) - 3*Xn + 1; else return 3*Math.pow(Xn,2) - 3;}function calcFct4(Xn, type){ if(type == 0) return Math.pow(Xn, 2) - 7; else return 2*Xn;}function calcFct5(Xn, type){ if(type == 0) return Xn - Math.cos(Xn); else return 1 + Math.sin(Xn);}function isOk(Xn,XnSuiv,nbDec){ if (round2(Xn,nbDec) == round2(XnSuiv,nbDec)) return true;}function round2(nb, dec) { nb *= Math.pow(10,dec); nb = Math.round(nb); nb *= Math.pow(10,-dec); return nb;}