polyquiz(ator)

polynomials quiz

by Eshy Lavi

HTML

<body>
<p id="p1">
</p>

<input id="ans" value='-123'/>
<button id='b'>
check
</button>
</body>

JavaScript

var v=[];
var rounds=5;
var S=6;
var maxp=2;
var str_o='f(x) = ';
var vv;
var proceed=false;
var inp_x=Math.floor(Math.random()*20-10);
var answer=-12345;

/* 0x^2+1x+0 f(7)=7, error. */

function loopy(){
  v=[];
  for (var p=maxp;p>=0;p--){
    v.push(Math.round(S*(-0.5+Math.random())));
    vv=v[v.length-1];
    if (vv!=0){
      if (p==maxp){
        if (maxp==0){
            str_o=str_o+ v[v.length-1]+" ";
        } else if (maxp==1){
            if (v[v.length-1]==-1){
                str_o=str_o+ "-x";
            }
            else if (v[v.length-1]==1){
                str_o=str_o+ "x";
            }
            else str_o=str_o+ v[v.length-1]+"x";
        } else{
            str_o=str_o+ v[v.length-1]+"x^"+p+" ";
        }             
      }
      else {
        if (v[v.length-1]>=0){
          if (maxp!=1){
              str_o=str_o+ "+ ";
          }
          else {
              if (v[0]!=0)str_o=str_o+ "+ ";
          }                
        }
        else {
          str_o=str_o+ "- ";
        }
        if (p==0){               
          str_o=str_o+ Math.abs(v[v.length-1])+" ";     
        } else if (p==1){
          str_o=str_o+Math.abs(v[v.length-1])+"x ";
        } else {       
          str_o=str_o+Math.abs(v[v.length-1])+"x^"+p+" ";
        }//of else
      } //of else of p==maxp 
    } // of if not p==0 /* else alert('0');*/  
  }// of power     
  var sumva=0.00; 
  for (var z=0 ; z<=maxp;z++){
      sumva+=v[maxp-z]*Math.pow(inp_x,z);
  } 
  var zero=0.00;
  if (sumva.toFixed(2)==zero.toFixed(2)){
      str_o="f(x) = 0";
  }
    
  document.getElementById('p1').innerHTML=str_o+"<br>find f("+inp_x+")";  
  str_o="f(x) = ";
}//of loopy

var wrong=false;

function checkanswer(_x){
    var sumv=0.00; 
    for (var z=0 ; z<=maxp;z++){
        sumv+=v[maxp-z]*Math.pow(_x,z);
    }  
    answer=(1.00*answer);
    if (sumv.toFixed(2)==answer.toFixed(2)){
        alert('Good!');        
        proceed=true;
        if (!wrong)wins++;
     ...