let w,h,my={},ws={};function init(){my.version='0.94';w=190;h=270;my.ansQ=false;my.clrs=['#000000','#330099','#ff9900','#cece88','#ccff33','#993399','#ff0000','#00ff00','#0000ff','#00ffff','#ffff00','#ff00ff','#006600'];my.txtclrs=['#330099','#ff9900','#cc3366','#ccff33','#993399','#00ffff','#00ff00','#0000ff','#00ffff','#000000','#ff00ff','#006600','#ffff00'];let s='';s+='
';s+='
' s+=wrap({cls:"noprint control",style:" margin: 0 0 30px 0; text-align:center; height:32px; "},wrap({tag:'btn',fn:'location.href='+"'../worksheets/index.php'"+';'},'Math Worksheets'),wrap({id:"ansBtn",tag:'btn',cls:"btn lo",fn:'toggleAns()'},'Answers'),'   ',wrap({id:"seed",tag:'inp',style:'width:65px;',lbl:'Num:'}),wrap({tag:'btn',fn:'seedRand()'},'Try Another'),'   ','print this pagePrint!') s+=wrap({style:"padding: 0 0 30px 0;"},'
Name:__________________
','
Date:__________________
','
Math is Fun Worksheet
from mathsisfun.com
') s+='
' s+=wrap({id:"ws",style:"text-align: center;"}) s+=wrap({id:"result",style:"text-align: center; font: 30px Verdana; z-index:100;"}) s+='
';docInsert(s);let seed=getQueryVariable('seed');if(seed){seedSet(seed);}else{seedSet(1000);} console.log("seed",seed,my.seedStt);ws.op=getQueryVariable('op');switch(ws.op){case 'add':ws.symbol="+";break;case 'sub':ws.symbol="−";break;case 'mult':ws.symbol="×";break;case 'div':ws.symbol="÷";break;default:ws.symbol="?";} ws.n=Math.min(100,getQueryDef('n',10));ws.amin=getQueryDef('amin',1);ws.amax=getQueryDef('amax',10);ws.bmin=getQueryDef('bmin',1);ws.bmax=getQueryDef('bmax',10);ws.carryQ=getQueryVariable('carry')!='n';ws.negAnsQ=getQueryVariable('negans')!='n';ws.olQ=getQueryVariable('ol')=='y';ws.swapQ=getQueryVariable('swap')=='y';ws.remQ=getQueryVariable('rem')=='y';console.log("ws",ws);doWS();} function getQueryDef(name,def){let a=getQueryVariable(name);if(a){return parseInt(a);} return def;} function seedSet(n){my.seedStt=parseInt(n);if(my.seedStt<=0)my.seedStt=1;document.getElementById('seed').value=my.seedStt;} function seedChg(){my.seedStt=(document.getElementById('seed').value)<<0;seedSet(my.seedStt);doWS();} function seedRand(){seedSet(Math.floor(Math.random()*9999)+1);doWS();} function doWS(){document.getElementById('result').innerHTML="";my.seed=my.seedStt;let dones=[];my.anss=[];my.tabs=[];let s='';for(let i=0;i';let a,b,c,id,okQ let tries=0;do{a=rpRandomInt(ws.amin,ws.amax);b=rpRandomInt(ws.bmin,ws.bmax);c=0;if(ws.swapQ){if(Math.random()<0.5){let t=a;a=b;b=t;}} switch(ws.op){case 'add':c=a+b;break;case 'sub':c=a-b;break;case 'mult':c=a*b;break;case 'div':c=b;b=a;a=b*c;break;default:} id=a+','+b;okQ=true;if(!ws.negAnsQ){if(c<0)okQ=false;} if(dones.indexOf(id)>=0)okQ=false;if(tries>20){while(dones.length>10){dones.shift();}}}while(!okQ&&tries++<100);dones.push(id);s+='
'+(i+1)+':'+'
';s+=longMultFmt(a,b,!my.ansQ,"us");s+='';} document.getElementById('ws').innerHTML=s;} function toggleAns(){if(ws.olQ)return;my.ansQ=!my.ansQ;toggleBtn("ansBtn",my.ansQ);doWS();} function toggleBtn(btn,onq){if(onq){document.getElementById(btn).classList.add("hi");document.getElementById(btn).classList.remove("lo");}else{document.getElementById(btn).classList.add("lo");document.getElementById(btn).classList.remove("hi");}} function longMultFmt(num1,num2,blankQ){let s="";let answer=num1*num2;let num1Len=num1.toString().length let num2Len=num2.toString().length let ansLen=answer.toString().length s+='
';let probcol=num2Len+2;if(probcol';s+=str_repeat(" ",(probcol-num2Len-2))+'× ' s+='' s+=num2 s+='' s+='
';let digits=num2Len let digit=1;while(digit<=digits){let currdigit=num2.toString().substr(digits-digit,1);let currans=currdigit*num1;let curranslength=currans.toString().length if(blankQ)currans=str_repeat(" ",curranslength);if(digit';}else{s+=str_repeat(" ",(probcol-curranslength-digit+1)) s+='' s+=currans;s+=str_repeat(" ",(digits-1)) s+='' s+='
';} digit+=1;} let anslength=answer.toString().length if(blankQ)answer=str_repeat(" ",anslength);s+=str_repeat(" ",(probcol-anslength))+answer;s+='
';return(s);} function str_repeat(s,len){return s.repeat(len)} function rpRandomInt(min,max){return Math.floor(random()*(max-min+1))+min;} function random(){let x=Math.sin(my.seed++)*10000;return x-Math.floor(x);} function getQueryVariable(variable){let query=window.location.search.substring(1);let vars=query.split("&");for(let i=0;i0){s+='