When you finish with this tool the file you need will be in the text box at the bottom. Copy and paste it in any text editor window and save by any name with the suffix '.js'. In the fourth line of the accompaning sample.html change SRC="your.js" to the name you chose above. A short distance under that you will find '<TEXTAREA NAME="result" ROWS="14" COLS="50" WRAP="virtual" >Put any instructions here</TEXTAREA>', enter your instructions and information about the assignment there. Save sample.html to any name you want. You can make any number of problems in the shipping version. Also at the end of sample.html you will find: <input type=hidden name='ok_url' value='http://yours.com/results.htm'> Change the value to the location of a 'ThankYou' page.
Normally you would use a email cgi here. Something like: http://your.com/cgi-bin/form.pl. If you do not have one available from your ISP (and you probably do) there are plenty available for free on the web. The one I use is at http://www.cgi101.com/scripts/generiform.txt. (Save it as form.pl). If you use another you may have to edit sample.html to remove certain hidden fields and add others specified by the cgi author. (Contact me if you need help.) You can avoid all this if you use a mailto cgi action which has the form mailto:youremailaddress. The 'mailto:' action is clearly the easiest way to go as the browser (client) handles the mail but it does depend upon the user correctly configuring their browser and for that reason a server side mail cgi is preferable if possible. Enter the action without any " or ' and if you want to use mailto enter "mailto:" without the quotes and exactly as shown.If you desire we will supply configure and host your cgi for $1/student*semester*test. Write for more information.
You can permanently include your email address by editing sample.html again. At the bottom change <input type=text name='send_to' value=''> to <input type=hidden name='send_to' value='youremailaddress'> And adjust the note to the student at the beginning of the About file to reflect this change.
If you enter: 'What does the sum of [x] plus [y] equal?' The problem will look like 'What does the sum of 2.1 plus 3.4 equal?' Where 2.1 and 3.4 change as determined below. You can have up to 26 single letter variables (a b...x y z) each enclosed by [ ].
If you have an image to go with the problem enter its address here: The image must be in square format and will be scaled to 288x288 pixels. Leave blank if there is no image.
Use equMakTA to construct your solution and paste it below: Follow each answer with a "---" (without the quotes) in the same order the answers were sought in the question. Important: Enter the answer followed by a return, then enter---. If there is only one answer do not hit return again. No matter how many answer there are do not use return after the last ---. It is important that you always use return to navigate in this and the following field as this is how the application keeps track of how many answers there are for you to complete in this section.
Problem Solutions:
When you finish setting all the variables select to author a new problem or to complete the test construction. You are working on problem number
var ch=Math.PI/180 var a=new Array() var c=new Array() var d=new Array() var x var y var g=0 var grade=new Array() var gradeOA=0 var II=0 var JJ=0 var nump=//qqq1 msg=open("ins.html","msg","width=320,height=320,toolbar=yes,directories=no,menubar=yes,scrollbars=yes") msg.document.close() function pins(obj,obj2){ if(obj2!="0"){ JJ=eval(parseFloat(obj2)-1) //alert(JJ) //obj.prob[JJ].checked=false d[II]=obj2 //alert(d[II]) for(i=0;i"+"\r" } function computemp(obj) { var sd = obj.result.value.split("\r") var ss = sd[sd.length-1] obj.memory.value =eval(parseFloat(obj.memory.value)+parseFloat(ss)) obj.result.value+="\r"+"mem+"+"\r" } function computemr(obj) { obj.temp.value=obj.result.value obj.result.value+= obj.memory.value } function computesq(obj) { obj.temp.value=obj.result.value var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.result.value += "\r"+"sqrt"+"\r"+eval(Math.pow(parseFloat(ss),.5)) } function computesi(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"sin"+"\r"+eval(Math.sin(ss*ch)) } function computeas(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"asin"+"\r"+eval(Math.asin(ss)/ch) } function computeco(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"cos"+"\r"+eval(Math.cos(ss*ch)) } function git(obj,obj2) { obj2=parseFloat(obj2) var b=new Array() switch(obj2){ //qqq5 default: alert("not authored") break; } } function computeac(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value +="\r"+"acos"+"\r"+eval(Math.acos(ss)/ch) } function computeta(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"tan"+"\r"+eval(Math.tan(ss*ch)) } function computeat(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"atan"+"\r"+eval(Math.atan(ss)/ch) } function computeex(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"exp"+"\r"+eval(Math.exp(parseFloat(ss))) } function computelo(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"ln"+"\r"+eval(Math.log(parseFloat(ss))) } function computelog(obj) { var sd = obj.result.value.split("\r") var ss = eval(sd[sd.length-1]) obj.temp.value=obj.result.value obj.result.value += "\r"+"log"+"\r"+eval(.434294482*Math.log(parseFloat(ss))) } function computepi(obj) { obj.temp.value=obj.result.value obj.result.value += eval(Math.PI) } function computecl(obj) { obj.result.value = obj.temp.value } function computemc(obj) { obj.result.value += "\r" } function compute0(obj) { obj.temp.value=obj.result.value obj.result.value += 0 } function compute1(obj) { obj.temp.value=obj.result.value obj.result.value += 1 } function computen2(obj) { obj.temp.value=obj.result.value obj.result.value += 2 } function computen3(obj) { obj.temp.value=obj.result.value obj.result.value += 3 } function compute4(obj) { obj.temp.value=obj.result.value obj.result.value += 4 } function compute5(obj) { obj.temp.value=obj.result.value obj.result.value += 5 } function compute6(obj) { obj.temp.value=obj.result.value obj.result.value += 6 } function compute7(obj) { obj.temp.value=obj.result.value obj.result.value += 7 } function compute8(obj) { obj.temp.value=obj.result.value obj.result.value += 8 } function compute9(obj) { obj.temp.value=obj.result.value obj.result.value += 9 } function computeper(obj) { obj.temp.value=obj.result.value obj.result.value += "." } function computee(obj) { obj.temp.value=obj.result.value obj.result.value += "e" } function computeleft(obj) { obj.temp.value=obj.result.value obj.result.value += "(" } function computeright(obj) { obj.temp.value=obj.result.value obj.result.value += ")" } function computeplu(obj) { obj.temp.value=obj.result.value obj.result.value += "+" } function computemin(obj) { obj.temp.value=obj.result.value obj.result.value += "-" } function computemul(obj) { obj.temp.value=obj.result.value obj.result.value += "*" } function computediv(obj) { obj.temp.value=obj.result.value obj.result.value += "/" } function computeInsert(obj){ document.forms[0].temp.value=document.forms[0].result.value var ins=prompt("What is your comment?","enter here") document.forms[0].result.value+="\r"+"--------"+"\r"+ins+"\r"+"--------"+"\r" } function computecall(obj){ if(confirm("Are you sure you want to clear the whole record?\nIt is 'undoable' using the clear key if you change your mind.")){ obj.temp.value=obj.result.value obj.result.value=" " } }