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 décroissantes
    »
JavaScript : Listes et chaînes de caractères

<SCRIPT LANGUAGE=JavaScript>
function div_eucli()
{
var a=new Array(),b=new Array(),q=new Array(),LA=new Array(),LB=new Array()
dega="";degb="";Quot="";Rest="";j=0;flag=0
LA=[1,2,-1,-2];LB=[1,0,1]
dgr="ordonnée par degrés décroissants"
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[dega-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[degb-i]=eval(bi.toString())}
bb=b[degb];for(i=0;i<=degb;i++){b[i]=b[i]/bb}
if(dega<degb){alert("Ce cas est trivial, A = BQ + R, Q = 0, R = A");return}
while(dega-degb>=0)
{
k=dega-degb;
if(a[dega]!=0)
{
flag=1;
q[k]=a[dega]/bb;if(Quot==""){Quot=" "+frac(q[k])} else {Quot=Quot+" , "+frac(q[k])}
//---------- liste des quotients
for(i=k;i<=dega-1;i++){a[i]=a[i]-a[dega]*b[i-k]}
for(i=k;i<=dega-1;i++){a[i]=a[i]-a[dega]*b[i-k]}
a[dega]=0;
}
else if(Quot==""){Quot=" 0"}else{Quot=Quot+" , 0 "}
dega=dega-1

if(flag==1) //------------------------------------------------------ restes partiels (utiles pour PGCD)
{
flag=0;Rest="";
for(i=dega;i>=0;i--)
{
if(i>0){Rest=Rest+frac(a[i]).toString()+" , "} else {Rest=Rest+frac(a[i]).toString()}
}
j++;alert("Reste "+j+" partiel par d° décroissants = "+Rest)
}
//-------------------------------------------------------------------fin restes partiels
}
// fin while

Rest="";for(i=dega;i>=0;i--)
//---------------- liste des restes
{
if(i>0){Rest=Rest+frac(a[i]).toString()+" , "} else {Rest=Rest+frac(a[i]).toString()}
}
alert("Quotient (par d° décroissants)= "+Quot+"\n"+"Reste final (par d° décroissants) = "+Rest)
}
// fin div_eucl

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_decroiss.html","")}
</SCRIPT>

JavaScript sur ChronoMath : »


© Serge Mehl - www.chronomath.com