ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

Listing  JavaScript de division polynomiale selon les puissances croissantes
     »
JavaScript : Listes et chaînes de caractères

<SCRIPT LANGUAGE=JavaScript>
function div_croiss()
{
var a=new Array(),b=new Array(),q=new Array(),LA=new Array(),LB=new Array()
dega="";degb="";p="5";Quot="";Rest=""
for(i=0;i<=30;i++){a[i]=0;q[i]=0;b[i]=0}
// ---------- initialisation pour éviter les erreurs NaN
dgr="ordonnée par degrés croissants"
LA=[-1,0,0,0,0,1];LB=[1,2]
LA=prompt("Entrez la liste des coefficients de A séparés par une virgule"+"\n"+dgr+" :",LA)
LA=LA.split(",");dega=LA.length-1;
for(i=0;i<=dega;i++){ai=LA.slice(i,i+1);a[i]=eval(ai.toString())}

LB=prompt("Entrez la liste des coefficients de B séparés par une virgule"+"\n"+dgr+" :",LB)
LB=LB.split(",");degb=LB.length-1
for(i=0;i<=degb;i++){bi=LB.slice(i,i+1);b[i]=eval(bi.toString())}
bb=b[0];if(bb==0){alert("b0 ne doit pas être nul !");return}
for(i=0;i<=degb;i++){b[i]=b[i]/bb}

p=eval(prompt("Entrez le degré désiré du quotient :",p));
dega=max(dega,p+degb);
 // -----------afin de pouvoir calculer les soustractions si d°A s'avère < d°B
for(k=0;k<=p;k++)
{
if(a[k]!=0)
{
q[k]=a[k]/bb;
if(Quot==""){Quot=frac(q[k])} else {Quot=Quot+" , "+frac(q[k])} 
//---------------- liste des quotients
for(i=1;i<=dega-k;i++){a[k+i]=a[k+i]-a[k]*b[i]}
a[k]=0;
}
else if(Quot==""){Quot=" 0"} else {Quot=Quot+" , 0 "}
}
i=0;
while(i<=dega)
{
alert
if(Rest==""){Rest=frac(a[i])} else {Rest=Rest+" , "+frac(a[i])}
//-------------------  liste des restes
i++
}
alert("Quotient (par d° croissants)= "+Quot+"\n"+"Reste (par d° croissants) = "+Rest)
}
// fin div_croiss

function max(a,b) 
// ----------------------------------------------------
{
if(a<=b){return b} else {return a}
}
function frac(x) 
//---------------------recherche fractionnaires (fraction continue) ----------------
{
with (Math)
{
b0=0;b1=1;a0=1;a1=floor(x);
if(a1==x){return x.toString()}
else
{
en=x-floor(x);err=1;
while(err>1E-13)
{
q=floor(1/en);en=1/en-q;
a=q*a1+a0;b=q*b1+b0;
asb=a/b;err=abs(x-asb);
a0=a1;b0=b1;a1=a;b1=b;
} // fin while()
return a.toString()+"/"+b.toString()
}
// fin else
}
// fin with Math
}
// fin frac()

function listing()  // ---------------- visualiser le listing du programme
{open ("listing_div_croiss.html","")}
</SCRIPT>

JavaScript sur ChronoMath : »


© Serge Mehl - www.chronomath.com