Annotation of doc/gutshtml/SessionOn2.html, revision 1.1

1.1     ! www         1: <html>
        !             2: <head>
        !             3: <meta name=Title
        !             4: content="Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)">
        !             5: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
        !             6: <link rel=Edit-Time-Data href="Session%20On2_files/editdata.mso">
        !             7: <title>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</title>
        !             8: <style><!--
        !             9: .MsoHeader
        !            10: 	{tab-stops:center 3.0in right 6.0in;
        !            11: 	font-size:10.0pt;
        !            12: 	font-family:"Times New Roman";}
        !            13: .H5
        !            14: 	{font-size:10.0pt;
        !            15: 	font-family:"Times New Roman";
        !            16: 	layout-grid-mode:line;
        !            17: 	font-weight:bold;}
        !            18: .Section1
        !            19: 	{page:Section1;}
        !            20: .Section2
        !            21: 	{page:Section2;}
        !            22: -->
        !            23: </style>
        !            24: </head>
        !            25: <body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
        !            26: <div class=Section1> 
        !            27:   <h2>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</h2>
        !            28:   <h3><a name="_Toc421867127">Tags</a></h3>
        !            29:   <ul type=disc>
        !            30:     <li><b>Response tags </b></li>
        !            31:   </ul>
        !            32:   <p>Arguments for all response tags </p>
        !            33:   <ul type=disc>
        !            34:     <ul type=circle>
        !            35:       <li><i>ID</i><span style='font-style:
        !            36:       normal'>, if this isn't set it will be set during the publication step. 
        !            37:         It is used to assign parameters names in a way that can be tracked if 
        !            38:         an instructor modifies things by hand. </span></li>
        !            39:       <li><i>name</i><span
        !            40:       style='font-style:normal'> optional, if set, it will be used by the resource 
        !            41:         assembly tool when one is modifying parameters. </span></li>
        !            42:     </ul>
        !            43:   </ul>
        !            44:   <p>Implemented response tags </p>
        !            45:   <ul type=disc>
        !            46:     <ul type=circle>
        !            47:       <li><b>&lt;responseparam&gt;</b><span
        !            48:       style='font-weight:normal'> if it appears it should be inside of a &lt;*response&gt; 
        !            49:         tag, defines an externally adjustable parameter for this question. Arguments: 
        !            50:         </span></li>
        !            51:       <ul type=square>
        !            52:         <li><i>default</i><span
        !            53:        style='font-style:normal'> required, specifies a default value for the 
        !            54:           parameter </span></li>
        !            55:         <li><i>name</i><span
        !            56:        style='font-style:normal'> required, specifies an internal name for the 
        !            57:           parameter </span></li>
        !            58:         <li><i>type</i><span
        !            59:        style='font-style:normal'> required specifies the type of parameter, one 
        !            60:           of &quot;tolerance&quot;, &quot;int&quot;, &quot;float&quot;, &quot;string&quot;, 
        !            61:           &quot;date&quot; (configuration of paramters is handled by lonparmset.pm 
        !            62:           and parameter.html) </span></li>
        !            63:         <li><i>description</i><span
        !            64:        style='font-style:normal'> a string describing the parameter, this is what 
        !            65:           is used to talk about a parameter outside of a problem </span></li>
        !            66:       </ul>
        !            67:       <li><b>&lt;parameter&gt;</b><span
        !            68:       style='font-weight:normal'> exactly the same as &lt;responseparam&gt; currently, 
        !            69:         but should not appear inside of a &lt;*response&gt; </span></li>
        !            70:       <li><b>&lt;numericalresponse&gt;</b><span
        !            71:       style='font-weight:normal'> implements a numerical answer, it needs an internal 
        !            72:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
        !            73:         response to go in. It checks all styles of numerical supported in CAPA. 
        !            74:         Possible args are: </span></li>
        !            75:       <ul type=square>
        !            76:         <li><i>answer</i><span
        !            77:        style='font-style:normal'> required, specifies the correct answer, may 
        !            78:           be either a perl list or scalar</span></li>
        !            79:         <li><i>units</i><span
        !            80:        style='font-style:normal'> optional, specifies unit of correct answer, 
        !            81:           CAPA style</span></li>
        !            82:       </ul>
        !            83:       <li><b>&lt;stringresponse&gt;</b><span
        !            84:       style='font-weight:normal'> implements a string answer, it needs an internal 
        !            85:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
        !            86:         response to go in. It can check the string for either case or order. </span></li>
        !            87:       <ul type=square>
        !            88:         <li><i>answer</i><span
        !            89:        style='font-style:normal'> required, specifies the correct answer, may 
        !            90:           be either a perl list or scalar</span></li>
        !            91:         <li><i>type</i><span
        !            92:        style='font-style:normal'> optional, CAPA style str args, cs/ci/mc </span></li>
        !            93:         <ul type=square>
        !            94:           <li>cs - case senesitive, order important</li>
        !            95:           <li>ci - case insenesitive, order important</li>
        !            96:           <li>mc - case insenesitive, order unimportant</li>
        !            97:         </ul>
        !            98:       </ul>
        !            99:       <li><b>&lt;essayresponse&gt;</b><span
        !           100:       style='font-weight:normal'> implements a ungraded large text response, it 
        !           101:         need an internal </span><b>&lt;textarea&gt;</b><span style='font-weight:
        !           102:       normal'> for the response to go in. </span></li>
        !           103:       <li><b>&lt;imageresponse&gt;</b><span
        !           104:       style='font-weight:normal'> implements a image click style image submission, 
        !           105:         uses the foil structure tags <a href="#foil">below</a>. Additional tags 
        !           106:         that should appear in a &lt;foil&gt; are: </span></li>
        !           107:       <ul type=square>
        !           108:         <li><b>&lt;image&gt;</b><span
        !           109:        style='font-weight:normal'> required, the contained text specifies a published 
        !           110:           graphical resource that is the image used, should only appear once per 
        !           111:           foil</span></li>
        !           112:         <li><b>&lt;rectangle&gt;</b><span
        !           113:        style='font-weight:normal'> required, the contained text specifies a rectangular 
        !           114:           area that is correct, should look like (1,2)-(3,4), at least 1 required</span></li>
        !           115:         <li><b>&lt;text&gt;</b><span
        !           116:        style='font-weight:normal'> required, the contained text is printed on 
        !           117:           top of the image.</span></li>
        !           118:       </ul>
        !           119:       <li><b>&lt;optionresponse&gt;</b><span
        !           120:       style='font-weight:normal'> implements a &quot;select from these choices&quot; 
        !           121:         style question, the choices are specified by the instructor, it uses the 
        !           122:         foil structure tags <a href="#foil">below</a> with this additional args: 
        !           123:         </span></li>
        !           124:       <ul type=square>
        !           125:         <li><b>&lt;foilgroup&gt;</b><span
        !           126:        style='font-weight:normal'> is required to have <i>options</i></span> which 
        !           127:           should be a perl list of possible options for the student. </li>
        !           128:       </ul>
        !           129:       <li><b>&lt;radiobuttonresponse&gt;</b><span
        !           130:       style='font-weight:normal'> implements a true / false style question with 
        !           131:         1 correct answer.it uses the foil structure tags <a href="#foil">below</a> 
        !           132:         but the <i>value</i></span> of a &lt;foil&gt;can only be &quot;true&quot; 
        !           133:         or &quot;false&quot; or &quot;unused&quot; </li>
        !           134:       <li><b>&lt;dataresponse&gt;</b><span
        !           135:       style='font-weight:normal'> implements a straight data storage entry idea, 
        !           136:         needs and interveing input tag like &lt;textline&gt; to work correctly.<br>
        !           137:         Arguments: </span></li>
        !           138:       <ul type=square>
        !           139:         <li><i>name</i><span
        !           140:        style='font-style:normal'> internal name for the value, it will have the 
        !           141:           part id and respose id added on to it </span></li>
        !           142:         <li><i>type</i><span
        !           143:        style='font-style:normal'> type of data stored in this response field, 
        !           144:           should be one of the types supported by parameter.html </span></li>
        !           145:         <li><i>display</i><span
        !           146:        style='font-style:normal'> a string that will be used to describe the field 
        !           147:           when interfacing with humans </span></li>
        !           148:       </ul>
        !           149:     </ul>
        !           150:   </ul>
        !           151:   <p> <span style='font-size:10.0pt;
        !           152: font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !           153:     </span></span> <b>&lt;externalresponse&gt;</b><span style='font-weight:
        !           154: normal'> implements the ability to have an external program grade a response, 
        !           155:     expects either a &lt;textline&gt; or &lt;textfield&gt; inside the tag. </span></p>
        !           156:   <p>Arguments: </p>
        !           157:   <ul type=disc>
        !           158:     <ul type=circle>
        !           159:       <ul type=square>
        !           160:         <li><i>url</i><span
        !           161:        style='font-style:normal'> the url to submit the answer and form to, does 
        !           162:           not need to be a LON-CAPA machine. </span></li>
        !           163:         <li><i>answer</i><span
        !           164:        style='font-style:normal'> a string or scalar variable that can encode 
        !           165:           something that should encode the correct answer, in some cases this 
        !           166:           may be nothing. </span></li>
        !           167:         <li><i>form</i><span
        !           168:        style='font-style:normal'> a hash variable name that will be submitted 
        !           169:           to the remote site as a HTTP form. </span></li>
        !           170:       </ul>
        !           171:     </ul>
        !           172:   </ul>
        !           173:   <p>The response of the remote server needs to be in XML as follows. </p>
        !           174:   <pre>&nbsp;&lt;loncapagrade&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;awardetail&gt; CORRECT&nbsp;&nbsp;&nbsp;&nbsp; &lt;/awardetail&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message&gt; A message to be shown to the students&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt; &lt;/loncapagrade&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
        !           175:   <ul type=disc>
        !           176:     <ul type=circle>
        !           177:       <ul type=square>
        !           178:         <li><b>&lt;loncapagrade&gt;</b><span
        !           179:        style='font-weight:normal'> no arguments but must surround the response. 
        !           180:           </span></li>
        !           181:         <li><b>&lt;awardetail&gt;</b><span
        !           182:        style='font-weight:normal'> required inner tag, the response inside must 
        !           183:           be one of the detailed responses that appears in the data storage documentation 
        !           184:           (CVS:loncapa/doce/homework/datastorage) </span></li>
        !           185:         <li><b>&lt;message&gt;</b><span
        !           186:        style='font-weight:normal'> optional message to have shown to the student 
        !           187:           </span></li>
        !           188:       </ul>
        !           189:     </ul>
        !           190:   </ul>
        !           191:   <ul type=disc>
        !           192:     <li><a name=foil><b>Foil Structure Tags</b></a><b> </b></li>
        !           193:   </ul>
        !           194:   <p>All tags that implement a foil structure have an optional arg of <i>max</i><span style='font-style:normal'> 
        !           195:     that controls the maximum number of total foils to show. </span></p>
        !           196:   <ul type=disc>
        !           197:     <ul type=circle>
        !           198:       <li><b>&lt;foilgroup&gt;</b><span
        !           199:       style='font-weight:normal'> required, must be the tag that surrounds all 
        !           200:         foil definitions </span></li>
        !           201:       <li><b>&lt;foil&gt;</b><span
        !           202:       style='font-weight:normal'> required, all data inside is a possible foil 
        !           203:         </span></li>
        !           204:       <li><b>&lt;conceptgroup&gt;</b><span
        !           205:       style='font-weight:normal'> optional, surrounds a collection of &lt;foil&gt;, 
        !           206:         when a problem is displayed only one of the contained &lt;foil&gt;is selected 
        !           207:         for display. It receives one required argument <i>concept</i></span>. 
        !           208:       </li>
        !           209:     </ul>
        !           210:     <li><b>Hint structure </b></li>
        !           211:   </ul>
        !           212:   <p>All of these tags must appear inside a <b>&lt;*response&gt;</b><span
        !           213: style='font-weight:normal'> tag. </span></p>
        !           214:   <ul type=disc>
        !           215:     <ul type=circle>
        !           216:       <li><b>&lt;hintgroup&gt;</b><span
        !           217:       style='font-weight:normal'> Tag that surrounds all of a hint. </span></li>
        !           218:       <li><b>&lt;hintpart&gt;</b><span
        !           219:       style='font-weight:normal'> required, Tag to implement conditional hints. 
        !           220:         It has a required argument <i>on</i></span>. When a &lt;*hint&gt; tag 
        !           221:         named the same as the value the on attribute evaluates to be correct the 
        !           222:         &lt;hintpart&gt; will show. If no other &lt;hintpart&gt; are to show then 
        !           223:         all hintparts with a <i>on</i><span style='font-style:normal'> of &quot;default&quot; 
        !           224:         will show </span></li>
        !           225:       <li><b>&lt;numericalhint&gt;</b><span
        !           226:       style='font-weight:normal'> has all the arguments that &lt;numericalresponse&gt;, 
        !           227:         does and the required attribute <i>name</i></span> which should be set 
        !           228:         to the value of which &lt;hintpart&gt; will be shown. </li>
        !           229:     </ul>
        !           230:     <li><b>Input Tags </b></li>
        !           231:   </ul>
        !           232:   <p>This group of tags implement a mechanism for getting data for students, they 
        !           233:     will usually be used by a &lt;*response&gt;. </p>
        !           234:   <ul type=disc>
        !           235:     <ul type=circle>
        !           236:       <li><b>&lt;textarea&gt;</b><span
        !           237:       style='font-weight:normal'> creates a Large text input box, If data appears 
        !           238:         between the start and end tags, the data will appear i the textarea if 
        !           239:         the student has not yet made a submission. Additionally it takes two arguments 
        !           240:         <i>rows</i></span> and <i>cols</i><span
        !           241:       style='font-style:normal'> which control the height and width of the area 
        !           242:         respectively. It defaults to 10 and 80. </span></li>
        !           243:       <li><b>&lt;textline&gt;</b><span
        !           244:       style='font-weight:normal'> creates a single line of input element, it accepts 
        !           245:         1 argument <i>size</i></span> which controls the width on the textline, 
        !           246:         it defaults to 20. </li>
        !           247:     </ul>
        !           248:     <li><b>Output Tags </b></li>
        !           249:   </ul>
        !           250:   <p>This group of tags generate useful pieces of output. </p>
        !           251:   <ul type=disc>
        !           252:     <ul type=circle>
        !           253:       <li><b>&lt;standalone&gt;</b><span
        !           254:       style='font-weight:normal'> everything in between the start and end tag 
        !           255:         is shown only on the web, and only if the resource is not part of a course. 
        !           256:         </span></li>
        !           257:       <li><b>&lt;displayduedate&gt;</b><span
        !           258:       style='font-weight:normal'> this will insert the current duedate if one 
        !           259:         is set into the document. It is generated to be inside a table of 1x1 
        !           260:         elements </span></li>
        !           261:       <li><b>&lt;displaytitle&gt;</b><span
        !           262:       style='font-weight:normal'> this will insert the title of the problem from 
        !           263:         the metadata of the problem </span></li>
        !           264:       <li><b>&lt;window&gt;</b><span
        !           265:       style='font-weight:normal'> the text in between is put in a popup javascript 
        !           266:         window </span></li>
        !           267:       <li><b>&lt;m&gt;</b><span
        !           268:       style='font-weight:normal'> the inside text is LaTeX, and is converted to 
        !           269:         HTML (or MathML) on the fly, if the argument <i>eval</i></span> is set 
        !           270:         to &quot;on&quot; the intervening text will have a perl var expansion 
        !           271:         done to it before being converted. </li>
        !           272:       <li><b>&lt;randomlabel&gt;</b><span
        !           273:       style='font-weight:normal'> shows a specified image with images or text 
        !           274:         labels randomly assigned to a set of specific locations, those locations 
        !           275:         may also have values assigned to them. There is a hash generated conating 
        !           276:         the mapping of labels to locations, labels to values, and locations to 
        !           277:         values. Example: </span></li>
        !           278:     </ul>
        !           279:   </ul>
        !           280:   <pre>&nbsp; &lt;randomlabel bgimg=&quot;URL&quot; width=&quot;12&quot; height=&quot;45&quot; texwidth=&quot;50&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupOne&quot; type=&quot;image&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;123&quot; y=&quot;456&quot; value=&quot;10&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;321&quot; y=&quot;654&quot; value=&quot;20&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;213&quot; y=&quot;546&quot; value=&quot;13&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-1&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-2&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-3&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupTwo&quot; type=&quot;text&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;12&quot; y=&quot;45&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;32&quot; y=&quot;65&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;21&quot; y=&quot;54&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-1&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-2&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-3&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp; &lt;/randomlabel&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
        !           281:   <p>Arguments: </p>
        !           282:   <ul type=disc>
        !           283:     <ul type=circle>
        !           284:       <ul type=square>
        !           285:         <li><i>bgimg</i><span
        !           286:        style='font-style:normal'> either a fully qualified URL for an external 
        !           287:           image, or a loncapa resource, it supports relative references (../images/apicture.gif), 
        !           288:           the image must either be a GIF or JPEG </span></li>
        !           289:         <li><i>width</i><span
        !           290:        style='font-style:normal'> the width of the image in pixels </span></li>
        !           291:         <li><i>height</i><span
        !           292:        style='font-style:normal'> the height of the image in pixels </span></li>
        !           293:         <li><i>texwidth</i><span
        !           294:        style='font-style:normal'> the width of the image in millimeters </span></li>
        !           295:       </ul>
        !           296:     </ul>
        !           297:   </ul>
        !           298:   <p>Internal tags: </p>
        !           299:   <ul type=disc>
        !           300:     <ul type=circle>
        !           301:       <ul type=square>
        !           302:         <li><b>&lt;labelgroup&gt;</b><span
        !           303:        style='font-weight:normal'> 1 required, multiple allowed. Declares a group 
        !           304:           of locations and labels associated with them. <br>
        !           305:           Arguments: </span></li>
        !           306:         <ul type=square>
        !           307:           <li><i>name</i><span
        !           308:         style='font-style:normal'> this is the name of the group, a hash with 
        !           309:             this name will be generated holding the mappings for later use in 
        !           310:             the problem. For each location a value will be set for which label 
        !           311:             is there, (EX. $hash{'1'}=&quot;TEXT-2&quot;). For locations with 
        !           312:             values the hash will contain 2 items, a location to value mapping 
        !           313:             ($hash{'value_1'}=10), and a label to value mapping ($hash{'labelvalue_2'}=10). 
        !           314:             For all image style of labels there will also be a label description 
        !           315:             to label URL mapping ($hash{'image_2'}=IMG-URL). Also the entry 'numlocations 
        !           316:             will be set to the total number of locations that exist. (Note that 
        !           317:             locations and labels start counting from 1.) </span></li>
        !           318:           <li><i>type</i><span
        !           319:         style='font-style:normal'> the type of labels in this group, either 'image' 
        !           320:             or 'text' </span></li>
        !           321:         </ul>
        !           322:         <li><b>&lt;location&gt;</b><span
        !           323:        style='font-weight:normal'> declares a location on the image that a label 
        !           324:           should appear at <br>
        !           325:           Arguments: </span></li>
        !           326:         <ul type=square>
        !           327:           <li><i>x</i><span
        !           328:         style='font-style:normal'> the x value of the location in pixels </span></li>
        !           329:           <li><i>y</i><span
        !           330:         style='font-style:normal'> the y value of the location in pixels </span></li>
        !           331:           <li><i>value</i><span
        !           332:         style='font-style:normal'> a scalar value to associate at this location 
        !           333:             (optional) </span></li>
        !           334:         </ul>
        !           335:         <li><b>&lt;label&gt;</b><span
        !           336:        style='font-weight:normal'> declaration of a label, if this is a text type 
        !           337:           labelgroup the internal text should be the text of the label (HTML is 
        !           338:           not currently supported), if this is an image type of label the internal 
        !           339:           text must be a LON-CAPA resource specification, and the description 
        !           340:           filed must be set. <br>
        !           341:           Arguments: </span></li>
        !           342:         <ul type=square>
        !           343:           <li><i>description</i><span
        !           344:         style='font-style:normal'> a required field for image labels, it will 
        !           345:             be used when setting values in the hash. </span></li>
        !           346:         </ul>
        !           347:       </ul>
        !           348:     </ul>
        !           349:     <li><b>Scripting </b></li>
        !           350:   </ul>
        !           351:   <p>These tags allow the document to behave programatically </p>
        !           352:   <ul type=disc>
        !           353:     <ul type=circle>
        !           354:       <li><b>&lt;display&gt;</b><span
        !           355:       style='font-weight:normal'> the intervening perl script is evaluated in 
        !           356:         the safe space and the return value of the script replaces the entire 
        !           357:         tag </span></li>
        !           358:       <li><b>&lt;import&gt;</b><span
        !           359:       style='font-weight:normal'> causes the parse to read in the file named in 
        !           360:         the body of the tag and parse it as if the entire text of the file had 
        !           361:         existed at location of the tag </span></li>
        !           362:       <li><b>&lt;parserlib&gt;</b><span
        !           363:       style='font-weight:normal'> the enclosed filename contains definitions for 
        !           364:         new tags </span></li>
        !           365:       <li><b>&lt;script&gt;</b><span
        !           366:       style='font-weight:normal'> if the argument <i>type</i></span> is set to 
        !           367:         &quot;loncapa/perl&quot; the enclosed data is a perl script which is evaluated 
        !           368:         inside the perl Safe space. The return value of the script is ignored. 
        !           369:       </li>
        !           370:       <li><b>&lt;scriptlib&gt;</b><span
        !           371:       style='font-weight:normal'> the enclosed filename contains perl code to 
        !           372:         run in the safe space </span></li>
        !           373:       <li><b>&lt;block&gt;</b><span
        !           374:       style='font-weight:normal'> has a required argument <i>condition</i></span> 
        !           375:         that is evaluated, it the condition is true everything inside the tag 
        !           376:         is evaluated, if it is false everything inside the block tag is skipped 
        !           377:       </li>
        !           378:       <li><b>&lt;notsolved&gt;</b><span
        !           379:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           380:         problem is &quot;solved&quot; </span></li>
        !           381:       <li><b>&lt;postanswerdate&gt;</b><span
        !           382:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           383:         problem is before the answer date </span></li>
        !           384:       <li><b>&lt;preduedate&gt;</b><span
        !           385:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           386:         problem is after the due date </span></li>
        !           387:       <li><b>&lt;randomlist&gt;</b><span
        !           388:       style='font-weight:normal'> the enclosed tags are parsed in a stable random 
        !           389:         order, optional argument <i>show</i></span> restricts the number of tags 
        !           390:         indie that are actually parsed the no more than <i>show</i><span
        !           391:       style='font-style:normal'>. </span></li>
        !           392:       <li><b>&lt;solved&gt;</b><span
        !           393:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           394:         problem is &quot;not solved&quot; </span></li>
        !           395:       <li><b>&lt;while&gt;</b><span
        !           396:       style='font-weight:normal'> implements a while loop, required argument <i>condition</i></span> 
        !           397:         is a perl scriptlet that when evaluated results in a true or false value, 
        !           398:         on true the entirety of the text between the whiles is parsed. The condition 
        !           399:         is tested again, etc. If false it goes to the next node in the parse. 
        !           400:       </li>
        !           401:     </ul>
        !           402:     <li><b>Structure Tags </b></li>
        !           403:   </ul>
        !           404:   <p>These tags give the problem a structure and take care of the recording of 
        !           405:     data and giving the student messages. </p>
        !           406:   <ul type=disc>
        !           407:     <ul type=circle>
        !           408:       <li><b>&lt;problem&gt;</b><span
        !           409:       style='font-weight:normal'> must be the first tag in the file, this tag 
        !           410:         sets up the header of the webpage and generates the submit buttons, it 
        !           411:         also handles due dates properly </span></li>
        !           412:       <li><b>&lt;part&gt;</b><span
        !           413:       style='font-weight:normal'> must be below &lt;problem&gt; if it is going 
        !           414:         to be used. It does many of the same tasks as &lt;problem&gt; but allows 
        !           415:         multiple separate problems to exist in a single file. </span></li>
        !           416:       <li><b>&lt;startouttext&gt;&lt;endouttext&gt;</b><span
        !           417:       style='font-weight:normal'> these tags are somewhat special, they must have 
        !           418:         no internal text and occur in pairs. Their use is to mark up the problem 
        !           419:         so the web editor knows what sections should be edited in a plain text 
        !           420:         block on the web. </span></li>
        !           421:     </ul>
        !           422:   </ul>
        !           423:   <h3><a name="_Toc421867128">&lt;script&gt; Functions</a></h3>
        !           424:   <p>A list of functions that have been written that are available in the Safe 
        !           425:     space scripting environment inside a problem. </p>
        !           426:   <ul type=disc>
        !           427:     <li>sin(x), cos(x), tan(x)</li>
        !           428:     <li>asin(x), acos(x), atan(x), atan2(y,x)</li>
        !           429:     <li>log(x), log10(x)</li>
        !           430:     <li>exp(), pow(x,y), sqrt(x)</li>
        !           431:     <li>abs(x), sgn(x)</li>
        !           432:     <li>erf(x), erfc(x)</li>
        !           433:     <li>ceil(x), floor(x)</li>
        !           434:     <li>min(...), max(...)</li>
        !           435:     <li>factorial(n)</li>
        !           436:     <li>N%M</li>
        !           437:     <li>sinh(x), cosh(x), tanh(x)</li>
        !           438:     <li>asinh(x), acosh(x), atanh(x)</li>
        !           439:     <li>roundto(x,n)</li>
        !           440:     <li>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) or web(a,b,c)</li>
        !           441:     <li>html(&quot;a&quot;) or html(a)</li>
        !           442:     <li>j0(x), j1(x), jn(n,x), jv(y,x)</li>
        !           443:     <li>y0(x), y1(x), yn(n,x), yv(y,x)</li>
        !           444:     <li>random</li>
        !           445:     <li>choose</li>
        !           446:     <li>tex(&quot;a&quot;,&quot;b&quot;) or tex(a,b)</li>
        !           447:     <li>var_in_tex(a)</li>
        !           448:     <li>to_string(x), to_string(x,y)</li>
        !           449:     <li>class(), section()</li>
        !           450:     <li>name(), student_number()</li>
        !           451:     <li>open_date(), due_date(), answer_date()</li>
        !           452:     <li>sub_string()</li>
        !           453:     <li>array_moments(array)</li>
        !           454:     <li>format(x,y),prettyprint(x,y)</li>
        !           455:     <li>map(...)</li>
        !           456:     <li>caparesponse_check</li>
        !           457:     <li>caparesponse_check_list</li>
        !           458:   </ul>
        !           459:   <h3><a name="_Toc421867129">Detailed descriptions of each function and comparison 
        !           460:     with CAPA</a></h3>
        !           461:   <table border=1 cellpadding=0>
        !           462:     <tr> 
        !           463:       <td width=131 valign=top class="Normal"> <p><b>CAPA Functions</b></p></td>
        !           464:       <td width=134 valign=top class="Normal"> <p><b>LON-CAPA</b></p></td>
        !           465:       <td width=147 valign=top class="Normal"> <p><b>Descriptions</b></p></td>
        !           466:       <td width=101 valign=top class="Normal"> <p><b>Differences (if any)</b></p></td>
        !           467:     </tr>
        !           468:     <tr> 
        !           469:       <td width=131 valign=top class="Normal"> <p>sin(x), cos(x), tan(x)</p></td>
        !           470:       <td width=134 valign=top class="Normal"> <p>&amp;sin($x), &amp;cos($x), 
        !           471:           &amp;tan($x)</p></td>
        !           472:       <td width=147 valign=top class="Normal"> <p>Trigonometric functions where 
        !           473:           x is in radians. $x can be a pure number, i.e., you can call &amp;sin(3.1415)</p></td>
        !           474:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           475:     </tr>
        !           476:     <tr> 
        !           477:       <td width=131 valign=top class="Normal"> <p>asin(x), acos(x), atan(x), atan2(y,x)</p></td>
        !           478:       <td width=134 valign=top class="Normal"> <p>&amp;asin($x), &amp;acos($x), 
        !           479:           &amp;atan($x), &amp;atan2($y,$x)</p></td>
        !           480:       <td width=147 valign=top class="Normal"> <p>Inverse trigonometric functions. 
        !           481:           Return value is in radians. For asin and acos the value of x must be 
        !           482:           between -1 and 1. The atan2 returns a value between -pi and pi the sign 
        !           483:           of which is determined by y. $x and $y can be pure numbers</p></td>
        !           484:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           485:     </tr>
        !           486:     <tr> 
        !           487:       <td width=131 valign=top class="Normal"> <p>log(x), log10(x)</p></td>
        !           488:       <td width=134 valign=top class="Normal"> <p>&amp;log($x), &amp;log10($x)</p></td>
        !           489:       <td width=147 valign=top class="Normal"> <p>Natural and base-10 logarithm. 
        !           490:           $x can be a pure number</p></td>
        !           491:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           492:     </tr>
        !           493:     <tr> 
        !           494:       <td width=131 valign=top class="Normal"> <p>exp(x), pow(x,y), sqrt(x)</p></td>
        !           495:       <td width=134 valign=top class="Normal"> <p>&amp;exp($x), &amp;pow($x,$y), 
        !           496:           &amp;sqrt($x)</p></td>
        !           497:       <td width=147 valign=top class="Normal"> <p>Exponential, power and square 
        !           498:           root, i.e.,e<sup>x</sup>, x<sup>y</sup> and /x. $x and $y can be pure 
        !           499:           numbers</p></td>
        !           500:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           501:     </tr>
        !           502:     <tr> 
        !           503:       <td width=131 valign=top class="Normal"> <p>abs(x), sgn(x)</p></td>
        !           504:       <td width=134 valign=top class="Normal"> <p>&amp;abs($x), &amp;sgn($x)</p></td>
        !           505:       <td width=147 valign=top class="Normal"> <p>Abs takes the absolute value 
        !           506:           of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For 
        !           507:           x&gt;0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x&lt;0, sgn(x) = -1. 
        !           508:           $x can be a pure number</p></td>
        !           509:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           510:     </tr>
        !           511:     <tr> 
        !           512:       <td width=131 valign=top class="Normal"> <p>erf(x), erfc(x)</p></td>
        !           513:       <td width=134 valign=top class="Normal"> <p>&amp;erf($x), &amp;erfc($x)</p></td>
        !           514:       <td width=147 valign=top class="Normal"> <p>Error function.&nbsp; erf = 
        !           515:           2/sqrt(pi) integral (0,x) e<sup>t-sq</sup> and <i>erfx(x)</i><span style='font-style:normal'> 
        !           516:           = 1.0 - </span><i>erf(x)</i><span
        !           517:   style='font-style:normal'>.&nbsp; $x can be a pure number</span></p></td>
        !           518:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           519:     </tr>
        !           520:     <tr> 
        !           521:       <td width=131 valign=top class="Normal"> <p>ceil(x), floor(x)</p></td>
        !           522:       <td width=134 valign=top class="Normal"> <p>&amp;ceil($x), &amp;floor($x)</p></td>
        !           523:       <td width=147 valign=top class="Normal"> <p>Ceil function returns an integer 
        !           524:           rounded up whereas floor function returns and integer rounded down. 
        !           525:           If x is an integer than it returns the value of the integer. $x can 
        !           526:           be a pure number</p></td>
        !           527:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           528:     </tr>
        !           529:     <tr> 
        !           530:       <td width=131 valign=top class="Normal"> <p>min(...), max(...)</p></td>
        !           531:       <td width=134 valign=top class="Normal"> <p>&amp;min(...), &amp;max(...)</p></td>
        !           532:       <td width=147 valign=top class="Normal"> <p>Returns the minimum/ maximum 
        !           533:           value of a list of arguments if the arguments are numbers. If the arguments 
        !           534:           are strings then it returns a string sorted according to the ASCII codes</p></td>
        !           535:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           536:     </tr>
        !           537:     <tr> 
        !           538:       <td width=131 valign=top class="Normal"> <p>factorial(n)</p></td>
        !           539:       <td width=134 valign=top class="Normal"> <p>&amp;factorial($n)</p></td>
        !           540:       <td width=147 valign=top class="Normal"> <p>Argument (n) must be an integer 
        !           541:           else it will round down. The largest value for n is 170. $n can be a 
        !           542:           pure number</p></td>
        !           543:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           544:     </tr>
        !           545:     <tr> 
        !           546:       <td width=131 valign=top class="Normal"> <p>N%M</p></td>
        !           547:       <td width=134 valign=top class="Normal"> <p>$N%$M</p></td>
        !           548:       <td width=147 valign=top class="Normal"> <p>N and M are integers and returns 
        !           549:           the remainder (in integer) of N/M. $N and $M can be pure numbers</p></td>
        !           550:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           551:     </tr>
        !           552:     <tr> 
        !           553:       <td width=131 valign=top class="Normal"> <p>sinh(x), cosh(x), tanh(x)</p></td>
        !           554:       <td width=134 valign=top class="Normal"> <p>&amp;sinh($x), &amp;cosh($x), 
        !           555:           &amp;tanh($x)</p></td>
        !           556:       <td width=147 valign=top class="Normal"> <p>Hyperbolic functions. $x can 
        !           557:           be a pure number</p></td>
        !           558:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           559:     </tr>
        !           560:     <tr> 
        !           561:       <td width=131 valign=top class="Normal"> <p>asinh(x), acosh(x), atanh(x)</p></td>
        !           562:       <td width=134 valign=top class="Normal"> <p>&amp;asinh($x), &amp;acosh($x), 
        !           563:           &amp;atanh($x)</p></td>
        !           564:       <td width=147 valign=top class="Normal"> <p>Inverse hyperbolic functions. 
        !           565:           $x can be a pure number</p></td>
        !           566:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           567:     </tr>
        !           568:     <tr> 
        !           569:       <td width=131 valign=top class="Normal"> <p>/DIS($x,&quot;nn&quot;)</p></td>
        !           570:       <td width=134 valign=top class="Normal"> <p>&amp;format($x,&quot;nn&quot;)</p></td>
        !           571:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
        !           572:           nn is nF or nE and n is an integer.</p></td>
        !           573:       <td width=101 valign=top class="Normal"> <p>&nbsp;The difference is obvious.</p></td>
        !           574:     </tr>
        !           575:     <tr> 
        !           576:       <td width=131 valign=top class="Normal"> <p>Not in CAPA</p></td>
        !           577:       <td width=134 valign=top class="Normal"> <p>&amp;prettyprint($x,&quot;nn&quot;)</p></td>
        !           578:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
        !           579:           nn is nF or nE and n is an integer. In E mode it will attempt to generate 
        !           580:           a pretty x10^3 rather than a E3 following the number</p></td>
        !           581:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           582:     </tr>
        !           583:     <tr> 
        !           584:       <td width=131 valign=top class="Normal"> <p>roundto(x,n)</p></td>
        !           585:       <td width=134 valign=top class="Normal"> <p>&amp;roundto($x,$n)</p></td>
        !           586:       <td width=147 valign=top class="Normal"> <p>Rounds a real number to n decimal 
        !           587:           points. $x and $n can be pure numbers</p></td>
        !           588:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           589:     </tr>
        !           590:     <tr> 
        !           591:       <td width=131 valign=top class="Normal"> <p>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
        !           592:           or web(a,b,c)</p></td>
        !           593:       <td width=134 valign=top class="Normal"> <p>&amp;web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
        !           594:           or &amp;web($a,$b,$c)</p></td>
        !           595:       <td width=147 valign=top class="Normal"> <p>Returns either a, b or c depending 
        !           596:           on the output medium. a is for plain ASCII, b for tex output and c for 
        !           597:           html output</p></td>
        !           598:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           599:     </tr>
        !           600:     <tr> 
        !           601:       <td width=131 valign=top class="Normal"> <p>html(&quot;a&quot;) or html(a)</p></td>
        !           602:       <td width=134 valign=top class="Normal"> <p>&amp;html(&quot;a&quot;) or 
        !           603:           &amp;html($a)</p></td>
        !           604:       <td width=147 valign=top class="Normal"> <p>Output only if the output mode 
        !           605:           chosen is in html format</p></td>
        !           606:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           607:     </tr>
        !           608:     <tr> 
        !           609:       <td width=131 valign=top class="Normal"> <p>jn(m,x)</p></td>
        !           610:       <td width=134 valign=top class="Normal"> <p>&amp;j0($x), &amp;j1($x), &amp;jn($m,$x), 
        !           611:           &amp;jv($y,$x)</p></td>
        !           612:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the first 
        !           613:           kind with orders 0, 1 and m respectively. For jn(m,x), m must be an 
        !           614:           integer whereas for jv(y,x), y is real. $x can be a pure number. $m 
        !           615:           must be an integer and can be a pure integer number. $y can be a pure 
        !           616:           real number</p></td>
        !           617:       <td width=101 valign=top class="Normal"> <p>In CAPA, j0, j1 and jn are contained 
        !           618:           in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x) 
        !           619:           is new to LON-CAPA.</p></td>
        !           620:     </tr>
        !           621:     <tr> 
        !           622:       <td width=131 valign=top class="Normal"> <p>yn(m,x)</p></td>
        !           623:       <td width=134 valign=top class="Normal"> <p>&amp;y0($x), &amp;y1($x), &amp;yn($m,$x), 
        !           624:           &amp;yv($y,$x)</p></td>
        !           625:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the second 
        !           626:           kind with orders 0, 1 and m respectively. For yn(m,x), m must be an 
        !           627:           integer whereas for yv(y,x), y is real. $x can be a pure number. $m 
        !           628:           must be an integer and can be a pure integer number. $y can be a pure 
        !           629:           real number</p></td>
        !           630:       <td width=101 valign=top class="Normal"> <p>In CAPA, y0, y1 and yn are contained 
        !           631:           in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x) 
        !           632:           is new to LON-CAPA.</p></td>
        !           633:     </tr>
        !           634:     <tr> 
        !           635:       <td width=131 valign=top class="Normal"> <p>random(l,u,d)</p></td>
        !           636:       <td width=134 valign=top class="Normal"> <p>&amp;random($l,$u,$d)</p></td>
        !           637:       <td width=147 valign=top class="Normal"> <p>Returns a uniformly distributed 
        !           638:           random number between the lower bound, l and upper bound, u in steps 
        !           639:           of d. $l, $u and $d can be pure numbers</p></td>
        !           640:       <td width=101 valign=top class="Normal"> <p>In CAPA, all the 3 arguments 
        !           641:           must be of the same type. However, now you can mix the type</p></td>
        !           642:     </tr>
        !           643:     <tr> 
        !           644:       <td width=131 valign=top class="Normal"> <p>choose(i,...)</p></td>
        !           645:       <td width=134 valign=top class="Normal"> <p>&amp;choose($i,...)</p></td>
        !           646:       <td width=147 valign=top class="Normal"> <p>Choose the ith item from the 
        !           647:           argument list. i must be an integer greater than 0 and the value of 
        !           648:           i should not exceed the number of items. $i can be a pure integer</p></td>
        !           649:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           650:     </tr>
        !           651:     <tr> 
        !           652:       <td width=131 valign=top class="Normal"> <p>/MAP(seed;w,x,y,z;a,b,c,d)</p></td>
        !           653:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;map($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
        !           654:           or <br>
        !           655:           Option 2 - &amp;map($seed,\@mappedArray,[$a,$b,$c,$d]) <br>
        !           656:           Option 3 - @mappedArray = &amp;map($seed,[$a,$b,$c,$d]) <br>
        !           657:           Option 4 - ($w,$x,$y,$z) = &amp;map($seed,\@a) <br>
        !           658:           where $a='A'<br>
        !           659:           $b='B'<br>
        !           660:           $c='B'<br>
        !           661:           $d='B'<br>
        !           662:           $w, $x, $y, and $z are variables</p></td>
        !           663:       <td width=147 valign=top class="Normal"> <p>Assigns to the variables $w, 
        !           664:           $x, $y and $z the values of the $a, $b, $c and $c (A, B, C and D). The 
        !           665:           precise value for $w .. depends on the seed. (Option 1 of calling map). 
        !           666:           In option 2, the values of $a, $b .. are mapped into the array, @mappedArray. 
        !           667:           The two options illustrate the different grouping. Options 3 and 4 give 
        !           668:           a consistent way (with other functions) of mapping the items. For each 
        !           669:           option, the group can be passed as an array, for example, [$a,$b,$c,$d] 
        !           670:           =&gt; \@a.</p></td>
        !           671:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
        !           672:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
        !           673:           is done by using [] brackets or using an array @a. Note the backslash 
        !           674:           (\) before the arguments in the second and third groups.</p></td>
        !           675:     </tr>
        !           676:     <tr> 
        !           677:       <td width=131 valign=top class="Normal"> <p>rmap(seed;a,b,c,d;w,x,y,z)</p></td>
        !           678:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;rmap($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
        !           679:           or <br>
        !           680:           Option 2 - &amp;rmap($seed,\@rmappedArray,[$a,$b,$c,$d]) <br>
        !           681:           Option 3 - @rmapped_array = &amp;rmap($seed,[$a,$b,$c,$d]) <br>
        !           682:           Option 4 - ($w,$x,$y,$z) = &amp;rmap($seed,\@a) <br>
        !           683:           where $a='A'<br>
        !           684:           $b='B'<br>
        !           685:           $c='B'<br>
        !           686:           $d='B'<br>
        !           687:           $w, $x, $y, and $z are variables</p></td>
        !           688:       <td width=147 valign=top class="Normal"> <p>The rmap functions does the 
        !           689:           reverse action of map if the same seed is used in calling map and rmap. 
        !           690:         </p></td>
        !           691:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
        !           692:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
        !           693:           is done by using [] brackets (with create an unamed vector reference) 
        !           694:           or using an array @a. Note the backslash (\) before the arguments in 
        !           695:           the second and third groups (Which cause Perl to send to variable locations 
        !           696:           rather than the variable values, similar to a C pointer).</p></td>
        !           697:     </tr>
        !           698:     <tr> 
        !           699:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           700:       <td width=134 valign=top class="Normal"> <p>$a=&amp;xmlparse($string) </p></td>
        !           701:       <td width=147 valign=top class="Normal"> <p>Runs the internal parser over 
        !           702:           the argument parsing for display. <b>Warning</b><span style='font-weight:normal'> 
        !           703:           This will result in different strings in different targets. Don't use 
        !           704:           the results of this function as an answer.</span></p></td>
        !           705:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           706:     </tr>
        !           707:     <tr> 
        !           708:       <td width=131 valign=top class="Normal"> <p>tex(a,b), tex(&quot;a&quot;,&quot;b&quot;)</p></td>
        !           709:       <td width=134 valign=top class="Normal"> <p>&amp;tex($a,$b), &amp;tex(&quot;a&quot;,&quot;b&quot;)</p></td>
        !           710:       <td width=147 valign=top class="Normal"> <p>Returns a if the output mode 
        !           711:           is in tex otherwise returns b</p></td>
        !           712:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           713:     </tr>
        !           714:     <tr> 
        !           715:       <td width=131 valign=top class="Normal"> <p>var_in_tex(a)</p></td>
        !           716:       <td width=134 valign=top class="Normal"> <p>&amp;var_in_tex($a)</p></td>
        !           717:       <td width=147 valign=top class="Normal"> <p>Equivalent to tex(&quot;a&quot;,&quot;&quot;)</p></td>
        !           718:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           719:     </tr>
        !           720:     <tr> 
        !           721:       <td width=131 valign=top class="Normal"> <p>to_string(x), to_string(x,y)</p></td>
        !           722:       <td width=134 valign=top class="Normal"> <p>&amp;to_string($x), &amp;to_string($x,$y)</p></td>
        !           723:       <td width=147 valign=top class="Normal"> <p>If x is an integer, returns 
        !           724:           a string. If x is real than the output is a string with format given 
        !           725:           by y. For example, if x = 12.3456, &amp;to_string(x,&quot;.3F&quot;) 
        !           726:           = 12.345 and &amp;to_string(x,&quot;.3E&quot;) = 1.234E+01.</p></td>
        !           727:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           728:     </tr>
        !           729:     <tr> 
        !           730:       <td width=131 valign=top class="Normal"> <p>capa_id(), class(), section(), 
        !           731:           set(), problem()</p></td>
        !           732:       <td width=134 valign=top class="Normal"> <p>&amp;class(), &amp;section()</p></td>
        !           733:       <td width=147 valign=top class="Normal"> <p>Returns null string, class descriptive 
        !           734:           name, section number, set number and null string.</p></td>
        !           735:       <td width=101 valign=top class="Normal"> <p>capa_id(), set() and problem() 
        !           736:           are no longer used. Currently, they return a null value.</p></td>
        !           737:     </tr>
        !           738:     <tr> 
        !           739:       <td width=131 valign=top class="Normal"> <p>name(), student_number()</p></td>
        !           740:       <td width=134 valign=top class="Normal"> <p>&amp;name(), &amp;student_number()</p></td>
        !           741:       <td width=147 valign=top class="Normal"> <p>Return the full name in the 
        !           742:           following format: lastname, firstname initial. Student_number returns 
        !           743:           the student 9-alphanumeric string. If undefined, the functions return 
        !           744:           null.</p></td>
        !           745:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           746:     </tr>
        !           747:     <tr> 
        !           748:       <td width=131 valign=top class="Normal"> <p>open_date(), due_date(), answer_date()</p></td>
        !           749:       <td width=134 valign=top class="Normal"> <p>&amp;open_date(), &amp;due_date(), 
        !           750:           &amp;answer_date()</p></td>
        !           751:       <td width=147 valign=top class="Normal"> <p>Problem open date, due date 
        !           752:           and answer date. The time is also included in 24-hr format.</p></td>
        !           753:       <td width=101 valign=top class="Normal"> <p>Output format for time is changed 
        !           754:           slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59 
        !           755:           is displayed as 11:59 pm.</p></td>
        !           756:     </tr>
        !           757:     <tr> 
        !           758:       <td width=131 valign=top class="Normal"> <p>get_seed(), set_seed()</p></td>
        !           759:       <td width=134 valign=top class="Normal"> <p>Not implemented</p></td>
        !           760:       <td width=147 valign=top class="Normal"> <p>Get and set the random seed.</p></td>
        !           761:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           762:     </tr>
        !           763:     <tr> 
        !           764:       <td width=131 valign=top class="Normal"> <p>sub_string(a,b,c)</p></td>
        !           765:       <td width=134 valign=top class="Normal"> <p>&amp;sub_string($a,$b,$c) <br>
        !           766:           perl&nbsp; substr function. However, note the differences</p></td>
        !           767:       <td width=147 valign=top class="Normal"> <p>Retrieve a portion of string 
        !           768:           a starting from b and length c. For example,&nbsp; $a = &quot;Welcome 
        !           769:           to LON-CAPA&quot;; $result=&amp;sub_string($a,4,4); then $result is 
        !           770:           &quot;come&quot;</p></td>
        !           771:       <td width=101 valign=top class="Normal"> <p>Perl intrinsic function, substr(string,b,c) 
        !           772:           starts counting from 0 (as opposed to 1). In the example to the left, 
        !           773:           substr($a,4,4) returns &quot;ome &quot;.</p></td>
        !           774:     </tr>
        !           775:     <tr> 
        !           776:       <td width=131 valign=top class="Normal"> <p>array[xx]</p></td>
        !           777:       <td width=134 valign=top class="Normal"> <p>@arrayname <br>
        !           778:           Array is intrinsic in perl. To access a specific element use $arrayname[$n] 
        !           779:           where $n is the $n+1 element since the array count starts from 0</p></td>
        !           780:       <td width=147 valign=top class="Normal"> <p>&quot;xx&quot; can be a variable 
        !           781:           or a calculation.</p></td>
        !           782:       <td width=101 valign=top class="Normal"> <p>In LON-CAPA, an array is defined 
        !           783:           by @arrayname. It is not necessary to specify the dimension of the array.&nbsp;</p></td>
        !           784:     </tr>
        !           785:     <tr> 
        !           786:       <td width=131 valign=top class="Normal"> <p>array_moments(B,A)</p></td>
        !           787:       <td width=134 valign=top class="Normal"> <p>@B=&amp;array_moments(@A)</p></td>
        !           788:       <td width=147 valign=top class="Normal"> <p>Evaluates the moments of an 
        !           789:           array A and place the result in array B[i] where i = 0 to 4. The contents 
        !           790:           of B are as follows: B[0] = number of elements, B[1] = mean, B[2] = 
        !           791:           variance, B[3] = skewness and B[4] = kurtosis.</p></td>
        !           792:       <td width=101 valign=top class="Normal"> <p>In CAPA, the moments are passed 
        !           793:           as an array in the first argument whereas in LON-CAPA, the array containing 
        !           794:           the moments are set equal to the function.</p></td>
        !           795:     </tr>
        !           796:     <tr> 
        !           797:       <td width=131 valign=top class="Normal"> <p>array_max(Name), array_min(Name)</p></td>
        !           798:       <td width=134 valign=top class="Normal"> <p>&amp;min(@Name), &amp;max(@Name)</p></td>
        !           799:       <td width=147 valign=top class="Normal"> <p>In LON-CAPA to find the maximum 
        !           800:           value of an array, use &amp;max(@arrayname)&nbsp; and to find the minimum 
        !           801:           value of an array, use &amp;min(@arrayname)</p></td>
        !           802:       <td width=101 valign=top class="Normal"> <p>Combined with the min and max 
        !           803:           functions defined earlier.</p></td>
        !           804:     </tr>
        !           805:     <tr> 
        !           806:       <td width=131 valign=top class="Normal"> <p>init_array(Name)</p></td>
        !           807:       <td width=134 valign=top class="Normal"> <p>undef @name</p></td>
        !           808:       <td width=147 valign=top class="Normal"> <p>To destroy the contents of an 
        !           809:           array, use</p></td>
        !           810:       <td width=101 valign=top class="Normal"> <p>Use perl intrinsic undef function.</p></td>
        !           811:     </tr>
        !           812:     <tr> 
        !           813:       <td width=131 valign=top class="Normal"> <p>random_normal (return_array,item_cnt,seed,av,std_dev)</p></td>
        !           814:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_normal 
        !           815:           ($item_cnt,$seed,$av,$std_dev)</p></td>
        !           816:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           817:           of normal distribution of average $av and standard deviation $std_dev. 
        !           818:           The distribution is generated from seed $seed</p></td>
        !           819:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           820:           as the first argument whereas in LON-CAPA the results are set equal 
        !           821:           to the function.</p></td>
        !           822:     </tr>
        !           823:     <tr> 
        !           824:       <td width=131 valign=top class="Normal"> <p>random_beta (return_array,item_cnt,seed,aa,bb)</p></td>
        !           825:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_beta 
        !           826:           ($item_cnt,$seed,$aa,$bb) <br>
        !           827:           NOTE: Both $aa and $bb MUST be greater than 1.0E-37.</p></td>
        !           828:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           829:           of beta distribution. The density of beta is: X^($aa-1) *(1-X)^($bb-1) 
        !           830:           /B($aa,$bb) for 0&lt;X&lt;1.</p></td>
        !           831:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           832:           as the first argument whereas in LON-CAPA the results are set equal 
        !           833:           to the function.</p></td>
        !           834:     </tr>
        !           835:     <tr> 
        !           836:       <td width=131 valign=top class="Normal"> <p>random_gamma (return_array,item_cnt,seed,a,r)</p></td>
        !           837:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_gamma 
        !           838:           ($item_cnt,$seed,$a,$r) <br>
        !           839:           NOTE: Both $a and $r MUST be positive.</p></td>
        !           840:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           841:           of gamma distribution. The density of gamma is: ($a**$r)/gamma($r) * 
        !           842:           X**($r-1) * exp(-$a*X).</p></td>
        !           843:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           844:           as the first argument whereas in LON-CAPA the results are set equal 
        !           845:           to the function.</p></td>
        !           846:     </tr>
        !           847:     <tr> 
        !           848:       <td width=131 valign=top class="Normal"> <p>random_exponential (return_array,item_cnt,seed,av)</p></td>
        !           849:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_exponential 
        !           850:           ($item_cnt,$seed,$av) <br>
        !           851:           NOTE: $av MUST be non-negative.</p></td>
        !           852:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           853:           of exponential distribution. </p></td>
        !           854:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           855:           as the first argument whereas in LON-CAPA the results are set equal 
        !           856:           to the function.</p></td>
        !           857:     </tr>
        !           858:     <tr> 
        !           859:       <td width=131 valign=top class="Normal"> <p>random_poisson (return_array,item_cnt,seed,mu)</p></td>
        !           860:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_poisson 
        !           861:           ($item_cnt,$seed,$mu) <br>
        !           862:           NOTE: $mu MUST be non-negative.</p></td>
        !           863:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           864:           of poisson distribution. </p></td>
        !           865:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           866:           as the first argument whereas in LON-CAPA the results are set equal 
        !           867:           to the function.</p></td>
        !           868:     </tr>
        !           869:     <tr> 
        !           870:       <td width=131 valign=top class="Normal"> <p>random_chi (return_array,item_cnt,seed,df)</p></td>
        !           871:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_chi 
        !           872:           ($item_cnt,$seed,$df) <br>
        !           873:           NOTE: $df MUST be positive.</p></td>
        !           874:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           875:           of chi_square distribution with $df degrees of freedom. </p></td>
        !           876:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           877:           as the first argument whereas in LON-CAPA the results are set equal 
        !           878:           to the function.</p></td>
        !           879:     </tr>
        !           880:     <tr> 
        !           881:       <td width=131 valign=top class="Normal"> <p>random_noncentral_chi (return_array,item_cnt,seed,df,nonc)</p></td>
        !           882:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_chi 
        !           883:           ($item_cnt,$seed,$df,$nonc) <br>
        !           884:           NOTE: $df MUST be at least 1 and $nonc MUST be non-negative.</p></td>
        !           885:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           886:           of noncentral_chi_square distribution with $df degrees of freedom and 
        !           887:           noncentrality parameter $nonc. </p></td>
        !           888:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !           889:           as the first argument whereas in LON-CAPA the results are set equal 
        !           890:           to the function.</p></td>
        !           891:     </tr>
        !           892:     <tr> 
        !           893:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           894:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_f 
        !           895:           ($item_cnt,$seed,$dfn,$dfd) <br>
        !           896:           NOTE: Both $dfn and $dfd MUST be positive.</p></td>
        !           897:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           898:           of F (variance ratio) distribution with degrees of freedom $dfn (numerator) 
        !           899:           and $dfd (denominator). </p></td>
        !           900:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           901:     </tr>
        !           902:     <tr> 
        !           903:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           904:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_f 
        !           905:           ($item_cnt,$seed,$dfn,$dfd,$nonc) <br>
        !           906:           NOTE: $dfn must be at least 1, $dfd MUST be positive, and $nonc must 
        !           907:           be non-negative.</p></td>
        !           908:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           909:           of noncentral F (variance ratio) distribution with degrees of freedom 
        !           910:           $dfn (numerator) and $dfd (denominator). $nonc is the noncentrality 
        !           911:           parameter. </p></td>
        !           912:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           913:     </tr>
        !           914:     <tr> 
        !           915:       <td width=131 valign=top class="Normal"> <p>NOT DOCUMENTED IN CAPA</p></td>
        !           916:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multivariate_normal 
        !           917:           ($item_cnt,$seed,\@mean,\@covar) <br>
        !           918:           NOTE: @mean should be of length p array of real numbers. @covar should 
        !           919:           be a length p array of references to length p arrays of real numbers 
        !           920:           (i.e. a p by p matrix.</p></td>
        !           921:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           922:           of multivariate_normal distribution with mean vector @mean and variance-covariance 
        !           923:           matrix. </p></td>
        !           924:       <td width=101 valign=top class="Normal"> <p>Note the backslash before the 
        !           925:           @mean and @covar arrays.</p></td>
        !           926:     </tr>
        !           927:     <tr> 
        !           928:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           929:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multinomial 
        !           930:           ($item_cnt,$seed,@p) <br>
        !           931:           NOTE: $item_cnt is rounded with int() and the result must be non-negative. 
        !           932:           The number of elements in @p must be at least 2.</p></td>
        !           933:       <td width=147 valign=top class="Normal"> <p>Returns single observation from 
        !           934:           multinomial distribution with $item_cnt events classified into as many 
        !           935:           categories as the length of @p. The probability of an event being classified 
        !           936:           into category i is given by ith element of @p. The observation is an 
        !           937:           array with length equal to @p, so when called in a scalar context it 
        !           938:           returns the length of @p. The sum of the elements of the obervation 
        !           939:           is equal to $item_cnt.</p></td>
        !           940:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           941:     </tr>
        !           942:     <tr> 
        !           943:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           944:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_permutation 
        !           945:           ($item_cnt,@array) </p></td>
        !           946:       <td width=147 valign=top class="Normal"> <p>Returns @array randomly permuted.</p></td>
        !           947:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           948:     </tr>
        !           949:     <tr> 
        !           950:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           951:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform 
        !           952:           ($item_cnt,$seed,$low,$high) <br>
        !           953:           NOTE: $low must be less than or equal to $high.</p></td>
        !           954:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           955:           from a uniform distribution. </p></td>
        !           956:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           957:     </tr>
        !           958:     <tr> 
        !           959:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           960:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform_integer 
        !           961:           ($item_cnt,$seed,$low,$high) <br>
        !           962:           NOTE: $low and $high are both passed through int(). $low must be less 
        !           963:           than or equal to $high.</p></td>
        !           964:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           965:           from a uniform distribution in integers. </p></td>
        !           966:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           967:     </tr>
        !           968:     <tr> 
        !           969:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           970:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_binomial 
        !           971:           ($item_cnt,$seed,$nt,$p) <br>
        !           972:           NOTE: $nt is rounded using int() and the result must be non-negative. 
        !           973:           $p must be between 0 and 1 inclusive.</p></td>
        !           974:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !           975:           from the binomial distribution with $nt trials and the probabilty of 
        !           976:           an event in each trial is $p. </p></td>
        !           977:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           978:     </tr>
        !           979:     <tr> 
        !           980:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !           981:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_negative_binomial 
        !           982:           ($item_cnt,$seed,$ne,$p) <br>
        !           983:           NOTE: $ne is rounded using int() and the result must be positive. $p 
        !           984:           must be between 0 and 1 exclusive.</p></td>
        !           985:       <td width=147 valign=top class="Normal"> <p>Generate an array of $item_cnt 
        !           986:           outcomes generated from negative binomial distribution with $ne events 
        !           987:           and the probabilty of an event in each trial is $p. </p></td>
        !           988:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !           989:     </tr>
        !           990:   </table>
        !           991:   <h3><a name="_Toc421867130">&lt;script&gt; Variables</a></h3>
        !           992:   <ul type=disc>
        !           993:     <li>$external::target - set to the current target the xml parser is parsing 
        !           994:       for </li>
        !           995:     <li>$external::part - set to the <i>id</i><span style='font-style:normal'> 
        !           996:       of the current problem &lt;part&gt;; zero if there are no &lt;part&gt; </span></li>
        !           997:     <li>$external::gradestatus - set to the value of the current resource.partid.solved 
        !           998:       value </li>
        !           999:     <li>$external::datestatus - set to the current status of the clock either 
        !          1000:       CLOSED, CAN_ANSWER, CANNOT_ANSWER, SHOW_ANSWER, or UNCHECKEDOUT </li>
        !          1001:     <li>$external::randomseed - set to the number that was used to seed the random 
        !          1002:       number generator </li>
        !          1003:     <li>$pi - set to PI </li>
        !          1004:     <li>$rad2deg - converts radians to degrees </li>
        !          1005:     <li>$deg2rad - converts degrees to radians </li>
        !          1006:   </ul>
        !          1007:   <h3><a name="_Toc421867131">Form internals</a> </h3>
        !          1008:   <p>Form elements used for homework editing/response </p>
        !          1009:   <p>the form is named lonhomework </p>
        !          1010:   <h3><a name="_Toc421867132">Viewing a problem (either CSTR or RES space)</a></h3>
        !          1011:   <ul type=disc>
        !          1012:     <li>grade_target, grade_username, grade_domain, grade_symb - the vaules take 
        !          1013:       precedence over the the normal ENV settings of these, use &amp;Apache::lonxml::whichuser() 
        !          1014:       to get back the correct vaues of the items </li>
        !          1015:     <li>HWVAL_response:number - the name of the input elements for each response. 
        !          1016:       The response is the response's ID, and the :number part exists only for 
        !          1017:       response with multiple foils, and is a unique number in order of the submission 
        !          1018:     </li>
        !          1019:     <li>changerandseed - the 'Change' button, only exists right after the Change 
        !          1020:       button is clicked </li>
        !          1021:     <li>problemmode - in CSTR, it is either 'View','Edit','EditXML' or 'Analyze' 
        !          1022:       depending on the desired view </li>
        !          1023:     <li>rndseed - the currently requested random seed </li>
        !          1024:     <li>showallfoils - if it exists, and we are in CSTR space, the problem should 
        !          1025:       ignore &lt;conceptgroup&gt; and the response's max setting and show all 
        !          1026:       possible foils </li>
        !          1027:     <li>submit - the name of the Submit button </li>
        !          1028:     <li>submitted - a hidden form parameter that can be used to tell if the student 
        !          1029:       has submitted answers or not, if it is set, there should be answers to grade. 
        !          1030:     </li>
        !          1031:   </ul>
        !          1032:   <h3><a name="_Toc421867133">Editing a problem (Edit mode)</a></h3>
        !          1033:   <p>tagdepth referes to the current value of the xmlparsers tagdepth couter ($Apache::lonxml::currentdepth)</p>
        !          1034:   <p>Note: the file edit.pm has many helper functions for creating the standard 
        !          1035:     elements for editing a tag and it's attributes, all of those functions follow 
        !          1036:     these conventions </p>
        !          1037:   <ul type=disc>
        !          1038:     <li>tagdepth_argname - I.E. 1_3.max, a parameter editing value, max is the 
        !          1039:       name of the parameter and it is for the third tag inside the first tag </li>
        !          1040:     <li>delete_tagdepth - if set to yes, delete tag tagdepth and all tags inside 
        !          1041:       of it </li>
        !          1042:     <li>homework_edit_tagdepth - used by both &amp;Apache::edit::editline and 
        !          1043:       &amp;Apache::edit::editfield for the &lt;textarea&gt; and &lt;input&gt; 
        !          1044:       form elements they create </li>
        !          1045:     <li>insert_tagdepth - used to request an tag insert, it is set to the id number 
        !          1046:       of the requested tag in the %Apache::lonxml::insertlist </li>
        !          1047:   </ul>
        !          1048:   <ul type=disc>
        !          1049:     <li> &nbsp; </li>
        !          1050:   </ul>
        !          1051:   <h3><a name="_Toc421867134">Symbs</a></h3>
        !          1052:   <p>To identify a specific instance of a resource, LON-CAPA uses symbols or Òsymbs.Ó 
        !          1053:     These identifiers are built from the URL of the map, the resource number of 
        !          1054:     the resource in the map, and the URL of the resource itself. The latter is 
        !          1055:     somewhat redundant, but might help if maps change.</p>
        !          1056:   <p>An example is</p>
        !          1057:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;msu/korte/parts/part1.sequence___19___msu/korte/tests/part12.problem</span></p>
        !          1058:   <p class=MsoHeader>The respective map entry is</p>
        !          1059:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;resource 
        !          1060:     id=&quot;19&quot; src=&quot;/res/msu/korte/tests/part12.problem&quot;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1061:     </span></p>
        !          1062:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp; title=&quot;Problem 
        !          1063:     2&quot;&gt;</span></p>
        !          1064:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;/resource&gt;</span></p>
        !          1065:   <p class=MsoHeader>Symbs are used by the random number generator, as well as 
        !          1066:     to store and restore data specific to a certain instance of for example a 
        !          1067:     problem.</p>
        !          1068:   <h3><a name="_Toc421867135">Store / Restore</a></h3>
        !          1069:   <p><span style='color:black'>2 important functions in lonnet.pm are </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore()</span><span
        !          1070: style='color:black'> and </span><span style='font-family:"Courier New";
        !          1071: color:black'>&amp;Apache::lonnet:restore()</span><span style='color:black'> (and 
        !          1072:     </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::store()</span><span
        !          1073: style='color:black'>, which is is the non-critical message twin of </span><span
        !          1074: style='font-family:"Courier New";color:black'>cstore</span><span
        !          1075: style='color:black'>). These functions are for handlers to store a perl hash to 
        !          1076:     a userÕs permanent data space in an easy manner, and to retrieve it again 
        !          1077:     on another call. It is expected that a handler would use this once at the 
        !          1078:     beginning to retrieve data, and then again once at the end to send only the 
        !          1079:     new data back. </span></p>
        !          1080:   <p><span style='color:black'>The data is stored in the userÕs data directory 
        !          1081:     on the userÕs homeserver under the ID of the course.</span></p>
        !          1082:   <p><span style='color:black'>The hash that is returned by </span><span
        !          1083: style='font-family:"Courier New";color:black'>restore</span><span
        !          1084: style='color:black'> will have all of the previous value for all of the elements 
        !          1085:     of the hash. </span></p>
        !          1086:   <p><span style='color:black'>Example: </span></p>
        !          1087:   <p><span style='font-family:"Courier New";color:black'>#creating a hash</span></p>
        !          1088:   <p><span style='font-family:"Courier New";color:black'>my %hash;</span></p>
        !          1089:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='bar';</span></p>
        !          1090:   <p><span style='font-family:"Courier New";color:black'>#storing it</span></p>
        !          1091:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
        !          1092:   <p><span style='font-family:"Courier New";color:black'>#changing a value </span></p>
        !          1093:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='notbar';</span></p>
        !          1094:   <p><span style='font-family:"Courier New";color:black'>#adding a new value</span></p>
        !          1095:   <p><span style='font-family:"Courier New";color:black'>$hash{'bar'}='foo';</span></p>
        !          1096:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
        !          1097:   <p><span style='font-family:"Courier New";color:black'>#retrieving the hash</span></p>
        !          1098:   <p><span style='font-family:"Courier New";color:black'>my %history=&amp;Apache::lonnet::restore();</span></p>
        !          1099:   <p><span style='font-family:"Courier New";color:black'>#print the hash</span></p>
        !          1100:   <p><span style='font-family:"Courier New";color:black'>foreach my $key (sort(keys(%history))) 
        !          1101:     {</span></p>
        !          1102:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; print(&quot;\%history{$key} 
        !          1103:     = $history{$key}&quot;);</span></p>
        !          1104:   <p><span style='font-family:"Courier New";color:black'>}</span></p>
        !          1105:   <p><span style='color:black'>Will print out: </span></p>
        !          1106:   <p><span style='font-family:"Courier New";color:black'>%history{1:foo} = bar</span></p>
        !          1107:   <p><span style='font-family:"Courier New";color:black'>%history{1:keys} = foo:timestamp</span></p>
        !          1108:   <p><span style='font-family:"Courier New";color:black'>%history{1:timestamp} 
        !          1109:     = 990455579</span></p>
        !          1110:   <p><span style='font-family:"Courier New";color:black'>%history{2:bar} = foo</span></p>
        !          1111:   <p><span style='font-family:"Courier New";color:black'>%history{2:foo} = notbar</span></p>
        !          1112:   <p><span style='font-family:"Courier New";color:black'>%history{2:keys} = foo:bar:timestamp</span></p>
        !          1113:   <p><span style='font-family:"Courier New";color:black'>%history{2:timestamp} 
        !          1114:     = 990455580</span></p>
        !          1115:   <p><span style='font-family:"Courier New";color:black'>%history{bar} = foo</span></p>
        !          1116:   <p><span style='font-family:"Courier New";color:black'>%history{foo} = notbar</span></p>
        !          1117:   <p><span style='font-family:"Courier New";color:black'>%history{timestamp} = 
        !          1118:     990455580</span></p>
        !          1119:   <p><span style='font-family:"Courier New";color:black'>%history{version} = 2</span></p>
        !          1120:   <p><span style='color:black'>Note that the special hash entries <i>keys</i></span><span style='color:black'>, 
        !          1121:     <i>version</i></span><span
        !          1122: style='color:black'> and <i>timestamp</i></span><span style='color:black'> were 
        !          1123:     added to the hash. <i>version</i></span><span style='color:black'> will be 
        !          1124:     equal to the total number of versions of the data that have been stored. The 
        !          1125:     <i>timestamp</i></span><span
        !          1126: style='color:black'> attribute will be the UNIX time the hash was stored. <i>keys</i></span><span
        !          1127: style='color:black'> is available in every historical section to list which keys 
        !          1128:     were added or changed at a specific historical revision of a hash. </span></p>
        !          1129:   <p><span style='color:black'><b>Warning</b></span><span
        !          1130: style='color:black'> do not store the hash that restore returns directly. This 
        !          1131:     will cause a mess since it will restore the historical keys as if the were 
        !          1132:     new keys. I.E. </span><span style='font-family:"Courier New";color:black'>1:foo</span><span
        !          1133: style='color:black'> will become </span><span style='font-family:"Courier New";
        !          1134: color:black'>1:1:foo</span><span style='color:black'> etc. </span></p>
        !          1135:   <p><span style='color:black'><b>Calling convention: </b></span></p>
        !          1136:   <p><span style='font-size:8.0pt;font-family:"Courier New";
        !          1137: color:black'>&nbsp; my %record=&amp;Apache::lonnet::restore($symb,$courseid,$domain,$uname,$home);</span></p>
        !          1138:   <p><span style='font-size:8.0pt;font-family:"Courier New";
        !          1139: color:black'>&nbsp; &amp;Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$uname,$home);</span></p>
        !          1140:   <p><span style='color:black'><b>Arguments (only %newrecord is required the rest 
        !          1141:     are somewhat optional, read the details): </b></span></p>
        !          1142:   <p> <span style='font-family:Symbol;
        !          1143: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1144:     </span></span> <span style='color:black'><i>$symb</i></span><span
        !          1145: style='color:black'> - a string containing the internal name of the specific instance 
        !          1146:     of a resource. Usually this value can be gotten from </span><span
        !          1147: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::symbread($filename)</span><span
        !          1148: style='color:black'>. If the argument is blank, it will attempt to use </span><span
        !          1149: style='font-family:"Courier New";color:black'>symbread()</span><span
        !          1150: style='color:black'> for it. If the result is ambiguous store/restore will fail. 
        !          1151:     </span></p>
        !          1152:   <p> <span style='font-family:Symbol;
        !          1153: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1154:     </span></span> <span style='color:black'><i>$courseid</i></span><span
        !          1155: style='color:black'> - the internal name for a course, usually found in </span><span
        !          1156: style='font-family:"Courier New";color:black'>$ENV{'request.course.id'}</span><span
        !          1157: style='color:black'> which is what will be looked at if no value is passed to 
        !          1158:     the functions. </span></p>
        !          1159:   <p> <span style='font-family:Symbol;
        !          1160: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1161:     </span></span> <span style='color:black'><i>$domain</i></span><span
        !          1162: style='color:black'> - the domain that the user belongs to, usually found in </span><span
        !          1163: style='font-family:"Courier New";color:black'>$ENV{'user.domain'}</span><span
        !          1164: style='color:black'> which is what will be looked at if no value is passed to 
        !          1165:     the functions. </span></p>
        !          1166:   <p> <span style='font-family:Symbol;
        !          1167: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1168:     </span></span> <span style='color:black'><i>$uname</i></span><span
        !          1169: style='color:black'> - the login name for the user, usually found in </span><span
        !          1170: style='font-family:"Courier New";color:black'>$ENV{'user.name'}</span><span
        !          1171: style='color:black'> which is what will be looked at if no value is passed to 
        !          1172:     the functions. </span></p>
        !          1173:   <p> <span style='font-family:Symbol;
        !          1174: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1175:     </span></span> <span style='color:black'><i>$home</i></span><span
        !          1176: style='color:black'> - the homeserver for the user, usually found in </span><span
        !          1177: style='font-family:"Courier New";color:black'>$ENV{'user.home'}</span><span
        !          1178: style='color:black'> but can be easily gotten from a domain and name through </span><span
        !          1179: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::homeserver($uname,$domain)</span><span
        !          1180: style='color:black'>. If no value is passed to store/restore the value in %ENV 
        !          1181:     will be used. </span></p>
        !          1182:   <p> <span style='font-family:Symbol;
        !          1183: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1184:     </span></span> <span style='color:black'><i>%newrecord</i></span><span
        !          1185: style='color:black'> - the hash to store being passed by reference </span></p>
        !          1186:   <p><span style='color:black'><b>Return values: </b></span></p>
        !          1187:   <p> <span style='font-family:Symbol;
        !          1188: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1189:     </span></span> <span style='color:black'><i>an empty string</i></span><span
        !          1190: style='color:black'> - the function was unable to determine exactly where to store 
        !          1191:     or restore from. At least one of the &quot;optional&quot; arguments was unable 
        !          1192:     to be determined. </span></p>
        !          1193:   <p> <span style='font-family:Symbol;
        !          1194: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1195:     </span></span> <span style='color:black'><i>a hash</i></span><span
        !          1196: style='color:black'> - restore successfully read a old hash for this specific 
        !          1197:     user / resource instance. </span></p>
        !          1198:   <p> <span style='font-family:Symbol;
        !          1199: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1200:     </span></span> <span style='color:black'><i>no_such_host</i></span><span
        !          1201: style='color:black'> - the <i>$home</i></span><span style='color:black'> specfied 
        !          1202:     desn't exist in the network. </span></p>
        !          1203:   <p> <span style='font-family:Symbol;
        !          1204: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1205:     </span></span> <span style='color:black'><i>con_delayed</i></span><span
        !          1206: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
        !          1207:     at this time. The store will be delayed until it is again available. </span></p>
        !          1208:   <p> <span style='font-family:Symbol;
        !          1209: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1210:     </span></span> <span style='color:black'><i>con_failed</i></span><span
        !          1211: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
        !          1212:     at this time and store was unable to delay the store until a later time. The 
        !          1213:     store failed. </span></p>
        !          1214:   <p> <span style='font-family:Symbol;
        !          1215: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1216:     </span></span> <span style='color:black'><i>ok</i></span><span
        !          1217: style='color:black'> - the store completed succesfully </span></p>
        !          1218:   <p> <span style='font-family:Symbol;
        !          1219: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1220:     </span></span> <span style='color:black'><i>error:</i></span><span
        !          1221: style='color:black'> - remote server failied to store or restore the reason follows 
        !          1222:     the </span><span style='font-family:"Courier New";color:black'>:</span><span
        !          1223: style='color:black'> </span></p>
        !          1224:   <h3><a name="_Toc421867136">Mandatory Homework Data</a></h3>
        !          1225:   <pre>&nbsp;</pre>
        !          1226:   <pre><span
        !          1227: style='font-size:9.0pt'>&lt;Provided by &amp;EXT() and set external to the resource, required&gt;</span></pre>
        !          1228:   <pre><span
        !          1229: style='font-size:9.0pt'>resource.partid.opendate&nbsp;&nbsp; #unix time of when the local machine should let the</span></pre>
        !          1230:   <pre><span
        !          1231: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #student in</span></pre>
        !          1232:   <pre><span
        !          1233: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1234:   <pre><span
        !          1235: style='font-size:9.0pt'>resource.partid.duedate&nbsp;&nbsp;&nbsp; #unix time of when the local machine should stop</span></pre>
        !          1236:   <pre><span
        !          1237: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #accepting answers</span></pre>
        !          1238:   <pre><span
        !          1239: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1240:   <pre><span
        !          1241: style='font-size:9.0pt'>resource.partid.answerdate #unix time of when the local machine should</span></pre>
        !          1242:   <pre><span
        !          1243: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #provide the correct answer to the student</span></pre>
        !          1244:   <pre><span
        !          1245: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1246:   <pre><span
        !          1247: style='font-size:9.0pt'>resource.partid.weight&nbsp;&nbsp;&nbsp;&nbsp; # points the problem is worth</span></pre>
        !          1248:   <pre><span
        !          1249: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1250:   <pre><span
        !          1251: style='font-size:9.0pt'>resource.partid.maxtries&nbsp;&nbsp; # maximum number of attempts the student can have</span></pre>
        !          1252:   <pre><span
        !          1253: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1254:   <pre><span
        !          1255: style='font-size:9.0pt'>resource.partid.type&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;# type of problem homework can be:</span></pre>
        !          1256:   <pre><span
        !          1257: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # homework - randomized, graded, stored with </span></pre>
        !          1258:   <pre><span
        !          1259: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feeback</span></pre>
        !          1260:   <pre><span
        !          1261: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # exam - randomized, graded, stored with </span></pre>
        !          1262:   <pre><span
        !          1263: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, minimal feedback</span></pre>
        !          1264:   <pre><span
        !          1265: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # form - unrandomized, ungraded, stored with </span></pre>
        !          1266:   <pre><span
        !          1267: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specified user, full feedback</span></pre>
        !          1268:   <pre><span
        !          1269: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # survey - unrandomized, ungraded, stored with </span></pre>
        !          1270:   <pre><span
        !          1271: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feedback</span></pre>
        !          1272:   <pre><span
        !          1273: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1274:   <pre><span
        !          1275: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1276:   <pre><span
        !          1277: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1278:   <pre><span
        !          1279: style='font-size:9.0pt'>&lt;numerical/formula/response needed: (has a default if nonexistant)&gt;</span></pre>
        !          1280:   <pre><span
        !          1281: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1282:   <pre><span
        !          1283: style='font-size:9.0pt'>resource.partid.responseid.tol&nbsp;&nbsp; # lots of possibilities here</span></pre>
        !          1284:   <pre><span
        !          1285: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # percentage, range (inclusive and exclusive),</span></pre>
        !          1286:   <pre><span
        !          1287: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; # variable name, etc</span></pre>
        !          1288:   <pre><span
        !          1289: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%</span></pre>
        !          1290:   <pre><span
        !          1291: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5</span></pre>
        !          1292:   <pre><span
        !          1293: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # .05+</span></pre>
        !          1294:   <pre><span
        !          1295: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%+</span></pre>
        !          1296:   <pre><span
        !          1297: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5+,.005</span></pre>
        !          1298:   <pre><span
        !          1299: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1300:   <pre><span
        !          1301: style='font-size:9.0pt'>resource.partid.responseid.sig&nbsp; # one or two comma sepearted integers,&nbsp;&nbsp;&nbsp; </span></pre>
        !          1302:   <pre><span
        !          1303: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# specifying the number of significatn figures</span></pre>
        !          1304:   <pre><span
        !          1305: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # a student must use</span></pre>
        !          1306:   <pre><span
        !          1307: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1308:   <pre><span
        !          1309: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1310:   <pre><span
        !          1311: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1312:   <pre><span
        !          1313: style='font-size:9.0pt'>&lt;Problem sets using cstore (required):&gt;</span></pre>
        !          1314:   <pre><span
        !          1315: style='font-size:9.0pt'>resource.partid.solved # if not set, problem yet to be viewed</span></pre>
        !          1316:   <pre><span
        !          1317: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_attempted == incorrect and attempted</span></pre>
        !          1318:   <pre><span
        !          1319: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_student == correct by student work</span></pre>
        !          1320:   <pre><span
        !          1321: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_override == correct, instructor override</span></pre>
        !          1322:   <pre><span
        !          1323: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_by_override == incorrect, instructor override</span></pre>
        !          1324:   <pre><span
        !          1325: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # excused == excused, problem no longer counts for student</span></pre>
        !          1326:   <pre><span
        !          1327: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # '' (empty) == not attempted</span></pre>
        !          1328:   <pre><span
        !          1329: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ungraded_attempted == an ungraded answer has been</span></pre>
        !          1330:   <pre><span
        !          1331: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumbitted and stored</span></pre>
        !          1332:   <pre><span
        !          1333: style='font-size:9.0pt'>resource.partid.tries&nbsp; # positive integer of number of unsuccessful attempts</span></pre>
        !          1334:   <pre><span
        !          1335: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # made, malformed answers don't count if feedback is</span></pre>
        !          1336:   <pre><span
        !          1337: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # on</span></pre>
        !          1338:   <pre><span
        !          1339: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1340:   <pre><span
        !          1341: style='font-size:9.0pt'>resource.partid.awarded # float between 0 and 1, percentage of</span></pre>
        !          1342:   <pre><span
        !          1343: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# resource.weight that the stundent earned.</span></pre>
        !          1344:   <pre><span
        !          1345: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1346:   <pre><span
        !          1347: style='font-size:9.0pt'>resource.partid.award # final detailed award that was applied to the entire</span></pre>
        !          1348:   <pre><span
        !          1349: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # part of the question, check awarddetail below for</span></pre>
        !          1350:   <pre><span
        !          1351: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # possibilities</span></pre>
        !          1352:   <pre><span
        !          1353: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1354:   <pre><span
        !          1355: style='font-size:9.0pt'>resource.partid.previous # boolean, is this submission a previous submission</span></pre>
        !          1356:   <pre><span
        !          1357: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1358:   <pre><span
        !          1359: style='font-size:9.0pt'>resource.partid.responseid.submissons</span></pre>
        !          1360:   <pre><span
        !          1361: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the student submitted string for the part.response</span></pre>
        !          1362:   <pre><span
        !          1363: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1364:   <pre><span
        !          1365: style='font-size:9.0pt'>resource.partid.responseid.awarddetail</span></pre>
        !          1366:   <pre><span
        !          1367: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list of all of the results of grading the submissions</span></pre>
        !          1368:   <pre><span
        !          1369: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # in detailed form of the specific failure</span></pre>
        !          1370:   <pre><span
        !          1371: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #Possible values:</span></pre>
        !          1372:   <pre><span
        !          1373: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # EXACT_ANS, APPROX_ANS : student is correct</span></pre>
        !          1374:   <pre><span
        !          1375: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_RESPONSE : student submitted no response</span></pre>
        !          1376:   <pre><span
        !          1377: style='font-size:9.0pt'>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# MISSING_ANSWER : student submitted some but not</span></pre>
        !          1378:   <pre><span
        !          1379: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all parts of a response</span></pre>
        !          1380:   <pre><span
        !          1381: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # WANTED_NUMERIC : expected a numeric answer and</span></pre>
        !          1382:   <pre><span
        !          1383: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; didn't get one</span></pre>
        !          1384:   <pre><span
        !          1385: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # SIG_FAIL : incorrect number of Significant Figures</span></pre>
        !          1386:   <pre><span
        !          1387: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_FAIL : incorrect unit</span></pre>
        !          1388:   <pre><span
        !          1389: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_NOTNEEDED : Submitted a unit when one shouldn't</span></pre>
        !          1390:   <pre><span
        !          1391: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_UNIT : needed a unit but none was submitted</span></pre>
        !          1392:   <pre><span
        !          1393: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # BAD_FORMULA : syntax error in submitted formula</span></pre>
        !          1394:   <pre><span
        !          1395: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # INCORRECT : answer was wrong</span></pre>
        !          1396:   <pre><span
        !          1397: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # SUBMITTED : submission wasn't graded</span></pre>
        !          1398:   <pre><span
        !          1399: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ERROR : unable to get a grade</span></pre>
        !          1400:   <pre><span
        !          1401: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1402:   <pre><span
        !          1403: style='font-size:9.0pt'>resource.partid.responseid.message (optional) (not yet supported)</span></pre>
        !          1404:   <pre><span
        !          1405: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; # a message that should be shown to the student</span></pre>
        !          1406:   <pre><span
        !          1407: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          1408:   <pre><span
        !          1409: style='font-size:9.0pt'>resource.partid.bonustries (optional) (not yet supported)</span></pre>
        !          1410:   <pre><span
        !          1411: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # if set, added to the maxtries parameter for student </span></pre>
        !          1412:   <pre><span
        !          1413: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# total number of tries overall</span></pre>
        !          1414:   <pre>&nbsp;</pre>
        !          1415:   <h3><a name="_Toc421867137">Sample Problems</a></h3>
        !          1416:   <p class=H5><span style='layout-grid-mode:
        !          1417: both'>A Simple Problem</span></p>
        !          1418:   <p style='
        !          1419: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
        !          1420:   <p style='
        !          1421: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1422:     &lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
        !          1423:   <p style='
        !          1424: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$length=&amp;random(10,99,.1);</span></p>
        !          1425:   <p style='
        !          1426: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$width=&amp;random(1,10,.01);</span></p>
        !          1427:   <p style='
        !          1428: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>@area=($length*($width*10));</span></p>
        !          1429:   <p style='
        !          1430: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1431:     &lt;/script&gt;</span></p>
        !          1432:   <p style='
        !          1433: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>What 
        !          1434:     is the area of a box $length mm in length and </span></p>
        !          1435:   <p style='
        !          1436: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&amp;format($width,&quot;2E&quot;) 
        !          1437:     cm in width.</span></p>
        !          1438:   <p style='
        !          1439: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1440:     &lt;numericalresponse id=&quot;11&quot; answer=&quot;@area&quot; units=&quot;mm^2&quot;&gt;</span></p>
        !          1441:   <p style='
        !          1442: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1443:     &lt;textline&gt;&lt;/textline&gt;</span></p>
        !          1444:   <p style='
        !          1445: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1446:     &lt;responseparam name=&quot;tol&quot; type=&quot;tolerance&quot; default=&quot;5%&quot;&gt;&lt;/responseparam&gt;</span></p>
        !          1447:   <p style='
        !          1448: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1449:     &lt;/numericalresponse&gt;</span></p>
        !          1450:   <p style='
        !          1451: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
        !          1452:   <p class=H5><span
        !          1453: style='layout-grid-mode:both'>A More Complex Problem</span></p>
        !          1454:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
        !          1455:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;displayduedate 
        !          1456:     /&gt;</span></p>
        !          1457:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;p&gt;&lt;displaytitle 
        !          1458:     /&gt;&lt;/p&gt;</span></p>
        !          1459:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
        !          1460:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF=&quot;&lt;b&gt; 
        !          1461:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          1462:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF1=&quot;&lt;b&gt; 
        !          1463:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          1464:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF2=&quot;&lt;b&gt; 
        !          1465:     F&lt;sub&gt;2&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          1466:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$mF=&quot;|&lt;b&gt;F&lt;/b&gt;|&quot;;</span></p>
        !          1467:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag=&quot;|&lt;b&gt;F&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          1468:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F2mag=&quot;|&lt;b&gt;F&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          1469:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag=&quot;|&lt;b&gt; 
        !          1470:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          1471:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq2mag=&quot;|&lt;b&gt; 
        !          1472:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          1473:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q1=&quot;Q&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
        !          1474:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q2=&quot;Q&lt;sub&gt;2&lt;/sub&gt;&quot;;</span></p>
        !          1475:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau=&quot;&lt;font 
        !          1476:     face=symbol&gt;t&lt;/font&gt;&quot;;</span></p>
        !          1477:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau1=&quot;&lt;font 
        !          1478:     face=symbol&gt;&lt;b&gt;t&lt;/b&gt;&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
        !          1479:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $val=&amp;random(1,4,1);</span></p>
        !          1480:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $tp=&amp;choose($val,&quot;her&quot;,&quot;her&quot;,&quot;his&quot;,&quot;his&quot;);</span></p>
        !          1481:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $sd=&amp;choose($val,&quot;daughter&quot;,&quot;niece&quot;,&quot;nephew&quot;,&quot;son&quot;);</span></p>
        !          1482:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/script&gt;</span></p>
        !          1483:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;startouttext 
        !          1484:     /&gt;</span></p>
        !          1485:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag and $trq2mag 
        !          1486:     are the magnitudes of the torques produced repectively by </span></p>
        !          1487:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>forces $vF1 and $vF2 
        !          1488:     with respect the pivot P. The magnitudes of $vF1 is </span></p>
        !          1489:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag and that of 
        !          1490:     $vF2 is $F2mag. $Q1 and $Q2 are the locations </span></p>
        !          1491:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>on a rigid body where 
        !          1492:     $vF1 and $vF2 act.&nbsp; </span></p>
        !          1493:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;endouttext /&gt;</span></p>
        !          1494:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;optionresponse 
        !          1495:     max=&quot;600&quot;&gt;</span></p>
        !          1496:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1497:     &lt;foilgroup options=&quot;('Correct','Incorrect','Can not tell')&quot;&gt;</span></p>
        !          1498:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1499:     &lt;conceptgroup concept=&quot;Effect of the moment-arm on the torque&quot;&gt;</span></p>
        !          1500:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1501:     &lt;foil name=&quot;1a&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1502:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1503:     For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag</span></p>
        !          1504:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1505:     &lt;/foil&gt;</span></p>
        !          1506:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1507:     &lt;foil name=&quot;1b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1508:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1509:     For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag</span></p>
        !          1510:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1511:     &lt;/foil&gt;</span></p>
        !          1512:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1513:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foil 
        !          1514:     name=&quot;1c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1515:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1516:     For $F1mag larger than $F2mag , $trq1mag can be less&nbsp; than $trq2mag</span></p>
        !          1517:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1518:     &lt;/foil&gt;</span></p>
        !          1519:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1520:     &lt;foil name=&quot;1d&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1521:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1522:     For $F1mag smaller than $F2mag , $trq1mag can be larger&nbsp; than $trq2mag</span></p>
        !          1523:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1524:     &lt;/foil&gt;</span></p>
        !          1525:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1526:     &lt;/conceptgroup&gt; </span></p>
        !          1527:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1528:     &lt;conceptgroup concept=&quot;For a given pivot, relation of force vector 
        !          1529:     to torque.&quot;&gt;</span></p>
        !          1530:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1531:     &lt;foil name=&quot;2a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1532:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1533:     The moment-arm of $vF is the shortest distance from P to the line along $vF 
        !          1534:     .</span></p>
        !          1535:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1536:     &lt;/foil&gt;</span></p>
        !          1537:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1538:     &lt;foil name=&quot;2b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1539:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1540:     The moment-arm of $vF is the shortest distance from P to $vF vector.</span></p>
        !          1541:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1542:     &lt;/foil&gt;</span></p>
        !          1543:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1544:     &lt;foil name=&quot;2c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1545:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1546:     The moment-arm of $vF is not the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
        !          1547:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1548:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
        !          1549:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1550:     &lt;foil name=&quot;2d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1551:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1552:     The moment-arm of $vF is the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
        !          1553:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1554:     &lt;/foil&gt; </span></p>
        !          1555:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1556:     &lt;/conceptgroup&gt;</span></p>
        !          1557:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1558:     &lt;conceptgroup concept=&quot;Torque is force x moment-arm.&quot;&gt;</span></p>
        !          1559:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1560:     &lt;foil name=&quot;3a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1561:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1562:     $trq1mag equals to the product of the moment-arm and $F1mag .</span></p>
        !          1563:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1564:     &lt;/foil&gt;</span></p>
        !          1565:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1566:     &lt;foil name=&quot;3b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1567:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1568:     $trq1mag equals to $F1mag times the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
        !          1569:     to P.</span></p>
        !          1570:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1571:     &lt;/foil&gt;</span></p>
        !          1572:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1573:     &lt;foil name=&quot;3c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1574:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1575:     $trq1mag is not equal to the product of $F1mag and the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
        !          1576:     to P.</span></p>
        !          1577:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1578:     &lt;/foil&gt;</span></p>
        !          1579:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1580:     &lt;foil name=&quot;3d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1581:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1582:     $trq1mag is not equal to the product of the moment-arm and $F1mag .</span></p>
        !          1583:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1584:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
        !          1585:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1586:     &lt;/conceptgroup&gt;</span></p>
        !          1587:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1588:     &lt;conceptgroup concept=&quot;Pivot point is required to calculate torque&quot;&gt;</span></p>
        !          1589:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1590:     &lt;foil name=&quot;4a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1591:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1592:     $tau1 vector depends on the location of P.</span></p>
        !          1593:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1594:     &lt;/foil&gt;</span></p>
        !          1595:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1596:     &lt;foil name=&quot;4b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1597:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1598:     $tau1 vector does not depend on the location of P.</span></p>
        !          1599:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1600:     &lt;/foil&gt;</span></p>
        !          1601:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1602:     &lt;foil name=&quot;4c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1603:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1604:     $tau1 vector has no meaning unless a pivot is selected.</span></p>
        !          1605:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1606:     &lt;/foil&gt;</span></p>
        !          1607:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1608:     &lt;foil name=&quot;4d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1609:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1610:     $tau1 vector can be determined without selecting P. </span></p>
        !          1611:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1612:     &lt;/foil&gt;</span></p>
        !          1613:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1614:     &lt;/conceptgroup&gt; </span></p>
        !          1615:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1616:     &lt;conceptgroup concept=&quot;torque from 2 forces acting along same line&quot;&gt;</span></p>
        !          1617:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1618:     &lt;foil name=&quot;5a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          1619:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1620:     Two equal forces, acting on a body along the same line but at different positions, 
        !          1621:     produce equal torques with respect to a given pivot.&quot;</span></p>
        !          1622:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1623:     &lt;/foil&gt;</span></p>
        !          1624:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1625:     &lt;foil name=&quot;5b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1626:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1627:     Two equal forces, along the same line, produce equal torques with respect 
        !          1628:     to a given pivot only if they act at the same point on a body.&quot;</span></p>
        !          1629:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1630:     &lt;/foil&gt;</span></p>
        !          1631:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1632:     &lt;foil name=&quot;5c&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          1633:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1634:     Two equal forces acting on a body along the same line but at different positions, 
        !          1635:     produce equal torques for only one pivot.&quot;</span></p>
        !          1636:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1637:     &lt;/foil&gt;</span></p>
        !          1638:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1639:     &lt;/conceptgroup&gt;</span></p>
        !          1640:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1641:     &lt;foil name=&quot;6&quot; value=&quot;unused&quot;&gt;</span></p>
        !          1642:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1643:     This foil will never display since it is unused.</span></p>
        !          1644:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1645:     &lt;/foil&gt;</span></p>
        !          1646:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1647:     &lt;/foilgroup&gt;</span></p>
        !          1648:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1649:     &lt;notsolved&gt;</span></p>
        !          1650:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1651:     &lt;hintgroup&gt;</span></p>
        !          1652:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>Think the definition 
        !          1653:     of the torque. The force and the moment-arm respect to the pivot.&nbsp; </span></p>
        !          1654:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1655:     &lt;/hintgroup&gt;</span></p>
        !          1656:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          1657:     &nbsp;&nbsp;&lt;/notsolved&gt;</span></p>
        !          1658:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/optionresponse&gt;</span></p>
        !          1659:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
        !          1660:   <h3>&nbsp; </h3>
        !          1661:   <p> <img border=0 width=432 height=370
        !          1662: src="Session%20On2_files/image003.png" v:shapes="_x0000_i1025"> </p>
        !          1663:   <p><span style='font-size:14.0pt'><b>Fig. 3.1.1</b></span><span
        !          1664: style='font-size:14.0pt'> Ð Internal Structure of Homework Handler</span></p>
        !          1665: </div>
        !          1666: <br
        !          1667: clear=ALL style='page-break-before:always;'>
        !          1668: <div class=Section2> </div>
        !          1669: </body>
        !          1670: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>