{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "Timothy Constant\nEric Sla ck\nMike Adams\n\nSection 201 \n\nSolids of Revolution Maplet" } {MPLTEXT 1 0 1 "\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1439 "This Mapl et lets the user practice setting up solids of revolution problems by \+ three different methods. The program asks random questions from a pre determined list when the user pushes the \"Ask Question\" button. The n the user can press the \"Plot\" button to see the function(s) graphe d. Next the user enters what he thinks is the correct integral (by ty ping the integrand in one box and the limits of integration in a secon d box). Pressing the \"Check Answer\" button shows the integral in a \+ MathML window and compares it to the correct one. This will say wheth er the bounds or integral are wrong. It also checks if the answer is \+ correct. Should the user become stumped, he may press the \"Show Answ er\" button and have the Maplet display the correct integral in a seco nd MathML window. He may also go to another question by pressing the \+ \"Ask Question\" button again. \n\nProgramming note: In order to deter mine if the user's integral is correct we first look at the upper and \+ lower bounds. If these match the correct bounds we compare the value \+ of the user's integral to the correct integral's value. If these are \+ equal we assume that the user typed in the correct integral. However, it is possible that the user entered an incorrect integral that just \+ happened to have the same value as the correct integral. We tried com paring the user's integrand to the correct integrand, but this produce d a problem when using the washer method. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 348 "The best solution we could com e up with was to evaluate both integrals and compare the results, thou gh this creates the possibility of a false positive. To do this the u ser must not only come up with an integral that has an equal value, bu t also come up with the correct bounds. The probability of a user doi ng this on accident is extremely low.\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "with(Maplets): with(Maplets[Tools]): with(Maplets[Elements]): with(Ra ndomTools):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "StartEngine( );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "randomize();" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 967 "VolOfRev:=Maplet(onstartup= RunWindow(MAIN),\n Window[MAIN]('title'=\"Volumes of Revolution\",\n \+ [ [ Button(\"Ask Question\", Evaluate('function'=\"ask\")),\n \+ \" \",\n Button(\"Plot It\", Evaluate('pt1' = 'plot([C[1],C [2]], x=C[3], thickness=10)') ),\n \" \",\n Button(\"Q uit\",Shutdown())\n ],\n [ Plotter['pt1'](plot(undefined, x= 0..1, 0..1))\n ],\n [ TextBox['question']('width'=40, height =2, 'editable'='false')\n ],\n [ \"Integrand:\",TextField['f unction']('width'=20),\n \" Range:\",TextField['range']('wi dth'=10)\n ],\n [ Button(\"Check User Answer:\", Evaluate('f unction'=\"check\")),\n Button(\"Show Correct Answer:\",Evaluat e('function'=\"giveup\"))\n ],\n [ [ [\"User Integral\"],\n \+ MathMLViewer[MMU](height=75)\n ],\n [ [\"Correc t Integral\"],\n MathMLViewer[MMC](height=75)\n ]\n \+ ],\n [ TextField['reply']('width'=40,'editable'='false')\n \+ ]\n ]\n )\n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1602 "as k:=proc()\nglobal C,integ,eq2,eq3,eq4,eq7,d;\nlocal a,b,rand5,rand7,i; \nrand5:=rand(1..5);\nrand7:=rand(1..3);\na:=rand5();\nb:=rand7();\nd: =rand7();\nSet('pt1'=plot(undefined, x=0..1, 0..1));\nSet('function'= \"\");\nSet('range'=\"\");\nSet('MMU'= MathML[Export](\"\"));\nSet('MM C'= MathML[Export](\"\"));\nSet('reply'=\"\");\n\nif(d=1) then\n C[1] :=Generate(choose(\{(a*x^3),(a*x^2)\}));\n C[2]:=[[0,0],[b,0],[b,subs (x=b,C[1])]];\n C[3]:=0..b;\n integ:=Pi*C[1]^2;\n eq3:=convert(C[1] ,string);\n Set('question'=cat(\"Find the integral used to determine \+ the volume obtained when the area enclosed by y=0, y=\",\n eq3, \+ \" and x=\", b, \" is rotated about the x axis. Use the disk method.\" \n ));\nend if;\n\nif(d=2) then\n C:=Generate(choose(\{[x^2,x^(1/ 2),0..1], [x^3,4*x,0..2],\n [x/4,x^(1/3),0..8], [x^2,2*x, 0..2], [x^3,x^2,0..1]\}));\n integ:=Pi*(C[2]^2-C[1]^2);\n eq3:=conve rt(C[1],string);\n eq4:=convert(C[2],string);\n Set('question'=cat( \"Find the integral used to determine the volume obtained when the are a enclosed by y=\",\n eq4, \" and y=\", eq3, \" is rotated about the x axis. Use the washer method.\"\n ));\nend if;\n\nif(d=3) th en\n C:=Generate(choose(\{[x^2,x^(1/2),0..1], [x^3,4*x,0..2],\n \+ [x/4,x^(1/3),0..8], [x^2,2*x,0..2], [x^3,x^2,0..1]\}));\n int eg:=2*Pi*x*(C[2]-C[1]);\n eq3:=convert(C[1],string);\n eq4:=convert( C[2],string);\n Set('question'=cat(\"Find the integral used to determ ine the volume obtained when the area enclosed by y=\",\n eq4, \+ \" and y=\", eq3, \" is rotated about the y axis. Use the shell method .\"\n ));\nend if;\neq2:=Int(integ,x=C[3]);\neq7:=value(eq2);\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 546 "check:=proc()\ng lobal C, integ;\nlocal eq9,eq10,eq11,eq12;\neq9:=Get(thismaplet,'funct ion'::'anything'):\neq10:=Get(thismaplet,'range'::'range'):\neq11:=int (eq9,x=eq10):\neq12:=Int(eq9,x=eq10);\nSet('MMU'= MathML[Export](eq12= eq11));\nif (lhs(eq10)<>lhs(C[3])) then\n Set('reply'=\"Lower bound i ncorrect. Try again.\")\nelif (rhs(eq10)<>rhs(C[3])) then\n Set('repl y'=\"Upper bound incorrect. Try again.\")\nelif(simplify(eq9-integ)<>0 ) then\n Set('reply'=\"Integrand incorrect. Try again.\")\nelse\n Se t('reply'=\"Correct! Try another question.\")\nend if;\nend proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "giveup:=proc()\nSet('MMC'= M athML[Export](eq2=eq7));\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "Display(VolOfRev);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }