aimmath-commit Mailing List for AiM Assessment in Mathematics (Page 4)
Brought to you by:
gustav_delius,
npstrick
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(73) |
Aug
(96) |
Sep
(240) |
Oct
(34) |
Nov
(12) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(31) |
Feb
(6) |
Mar
(17) |
Apr
(6) |
May
(5) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(19) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
(14) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Greg G. <gr...@us...> - 2004-04-25 17:40:22
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19020 Modified Files: Diff.mpl Log Message: Added in earlier test as well since in at least one complicated trig example the new test doesn't work, though the old one does. - GG Index: Diff.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Diff.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Diff.mpl 14 Nov 2003 19:55:51 -0000 1.4 --- Diff.mpl 25 Apr 2004 15:45:37 -0000 1.5 *************** *** 169,173 **** # sometimes an extra simplify is needed ... maybe an eval needed elsewhere? ! if traperror(simplify(simplify(ans - rightans,symbolic),symbolic)) = 0 then mark := 1; else --- 169,174 ---- # sometimes an extra simplify is needed ... maybe an eval needed elsewhere? ! if traperror(simplify(simplify(ans - rightans,assume=positive))) = 0 or ! traperror(simplify(simplify(ans - rightans,symbolic),symbolic)) = 0 then mark := 1; else |
From: Greg G. <gr...@us...> - 2004-04-15 08:53:40
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27793 Modified Files: SafeParse.mpl Log Message: Moved the "Evaluation error" check after the `aim/SafeParse/Check` check ... where it should be! - GG Index: SafeParse.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/SafeParse.mpl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SafeParse.mpl 14 Apr 2004 18:38:52 -0000 1.7 --- SafeParse.mpl 15 Apr 2004 08:53:27 -0000 1.8 *************** *** 563,590 **** RETURN(eval(report)); fi; ! else ! try ! ep := eval(p); ! catch: ! report['Status'] := "Evaluation error"; ! report['ErrorMessage'] := lasterr; ! return eval(report); ! end try; ! if (c = `aim/SafeParse/CodeTable`['NAME']) then ! q := convert(p,string); ! if (q = l) then ! report['Status'] := "Parse error"; ! report['ErrorMessage'] := m; ! RETURN(eval(report)); ! fi; ! fi; fi; ! report['Status'] := "OK"; - `aim/SafeParse/Check`(b,report); ! report['Names'] := {report['Names']}; report['Functions'] := indets([p],function); --- 563,589 ---- RETURN(eval(report)); fi; ! elif (c = `aim/SafeParse/CodeTable`['NAME']) then ! q := convert(p,string); ! if (q = l) then ! report['Status'] := "Parse error"; ! report['ErrorMessage'] := m; ! RETURN(eval(report)); ! fi; fi; ! report['Status'] := "OK"; `aim/SafeParse/Check`(b,report); ! try ! if (report['Status'] = "OK") then ! ep := eval(p); ! fi; ! catch: ! report['Status'] := "Evaluation error"; ! report['ErrorMessage'] := lasterr; ! return eval(report); ! end try; + report['Names'] := {report['Names']}; report['Functions'] := indets([p],function); |
From: Greg G. <gr...@us...> - 2004-04-14 18:49:17
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4637 Modified Files: TextQuestion.mpl Log Message: Make use of the new possibility of a parse report 'Status' of "Evaluation Error" in `aim/TextQuestion/BasicValidation`, which ran into error if an expression parsed ok but could not be evaluated. This function now completes cleanly in this case and gives a meaningful error message to the student ... they might not understand it, but that's another story. - GG Index: TextQuestion.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/TextQuestion.mpl,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** TextQuestion.mpl 12 Jan 2004 06:15:55 -0000 1.12 --- TextQuestion.mpl 14 Apr 2004 18:49:08 -0000 1.13 *************** *** 510,514 **** parsereport := `aim/SafeParse`(rawans); status := parsereport['Status']; - val := parsereport['Value']; if (status = "Parse error") then --- 510,513 ---- *************** *** 534,537 **** --- 533,549 ---- t['Hint']); fi; + elif (status = "Evaluation error") then + attempt['ValidationNote'] := __("evaluation error"); + t := `aim/ParseReport`(rawans); + attempt['ValidationMessage'] := + cat(t['MarkedString'], + "\n<br/>\n", + "Your answer while syntactically correct Maple cannot be evaluated, ", + "and evokes the following error:\n", + "<blockquote><font color=red>\n", + parsereport['ErrorMessage'], + "</font></blockquote>\n", + "You might try asking your friendly quiz administrator for a ", + "further explanation."); elif (status = "Assignment") then attempt['ValidationNote'] := __("assignment"); *************** *** 582,585 **** --- 594,598 ---- try + val := parsereport['Value']; ans := timelimit(tlimit,eval(val)); catch "time expired": |
From: Greg G. <gr...@us...> - 2004-04-14 18:39:02
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3031 Modified Files: SafeParse.mpl Log Message: Introduced "Evaluation error" as a possible parse report 'Status' for `aim/SafeParse` to cover the case where Maple is able to parse an expression but not evaluate it, e.g. [2, 3][4, 5] parses ok, but when Maple tries to evaluate it runs into an indexing error. - GG Index: SafeParse.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/SafeParse.mpl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SafeParse.mpl 14 Feb 2004 17:58:38 -0000 1.6 --- SafeParse.mpl 14 Apr 2004 18:38:52 -0000 1.7 *************** *** 538,542 **** "", proc(S::string) ! local s,p,q,l,m,a,b,c,err,report; report := --- 538,542 ---- "", proc(S::string) ! local s,p,q,l,m,a,b,c,ep,report; report := *************** *** 563,572 **** RETURN(eval(report)); fi; ! elif (c = `aim/SafeParse/CodeTable`['NAME']) then ! q := convert(p,string); ! if (q = l) then ! report['Status'] := "Parse error"; ! report['ErrorMessage'] := m; ! RETURN(eval(report)); fi; fi; --- 563,581 ---- RETURN(eval(report)); fi; ! else ! try ! ep := eval(p); ! catch: ! report['Status'] := "Evaluation error"; ! report['ErrorMessage'] := lasterr; ! return eval(report); ! end try; ! if (c = `aim/SafeParse/CodeTable`['NAME']) then ! q := convert(p,string); ! if (q = l) then ! report['Status'] := "Parse error"; ! report['ErrorMessage'] := m; ! RETURN(eval(report)); ! fi; fi; fi; |
From: Greg G. <gr...@us...> - 2004-04-13 09:09:16
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8959 Modified Files: ManualConfig.dist Log Message: Fixed a mistake in a comment. - GG Index: ManualConfig.dist =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ManualConfig.dist,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ManualConfig.dist 11 Apr 2004 07:08:13 -0000 1.4 --- ManualConfig.dist 13 Apr 2004 08:55:16 -0000 1.5 *************** *** 129,133 **** # certainly incorrect in the southern hemisphere. It is recommended # that you adjust manually for this here. The default value of the ! # Summer Time specification is [ [1, 4], [5, 10] ] which means from # the 1st Sunday of the 4th month (April) to the 5th (or last) Sunday # in the 10th month (October). [ [0, 0], [0, 0] ] is special and means --- 129,133 ---- # certainly incorrect in the southern hemisphere. It is recommended # that you adjust manually for this here. The default value of the ! # Summer Time specification is [ [4, 1], [10, 5] ] which means from # the 1st Sunday of the 4th month (April) to the 5th (or last) Sunday # in the 10th month (October). [ [0, 0], [0, 0] ] is special and means |
From: Greg G. <gr...@us...> - 2004-04-11 07:21:51
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11288 Modified Files: AutoConf.mpl AutoConfWin.mpl Date.mpl ManualConfig.dist Log Message: Fixes problems with Summer Time. In particular, introduces a variable `Date/SummerTimeSpec` with which one can set the Summer Time specification for one's locale without being defaulted to a possibly erroneous setting for the Northern Hemisphere. New functions added in Date.mpl: `Date/DaysSince1Jan2000`, `Date/DayOfNthSundayOfMonth`, `Date/Test` Also, `Date/SummerTime` is now a function (rather than a table), that returns a list consisting of two month, day pairs which are the beginning and end dates of Summer Time for the locale, determined from `Date/SummerTimeSpec`. Finally, `Date/IsSummer` now takes account of whether there is no Summer Time, or whether the locale is in the Northern or Southern Hemisphere. - GG Index: AutoConf.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConf.mpl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** AutoConf.mpl 16 Jan 2004 22:57:15 -0000 1.8 --- AutoConf.mpl 11 Apr 2004 07:08:12 -0000 1.9 *************** *** 26,29 **** --- 26,30 ---- unassign('`Date/LocalTimeZoneName`'): unassign('`Date/LocalTimeZoneOffset`'): + unassign('`Date/SummerTimeSpec`'): traperror(fclose("autoconf.log")): *************** *** 711,718 **** --- 712,731 ---- fi: + if type([`Date/SummerTimeSpec`], [listlist]) then + summertimespec := `Date/SummerTimeSpec`: + q("The Summer Time specification is set to %A\n", summertimespec): + else + summertimespec := [ [4, 1], [10, 5] ]: + q("The Summer Time specification is set to the default for the Northern\n"): + q("hemisphere (1st Sunday in April to the last Sunday in October),\n"): + q("i.e. it is set to %A\n", summertimespec): + fi: + `Date/LocalTimeZoneName` := timezone: `Date/LocalTimeZoneOffset` := timeoffset: + `Date/SummerTimeSpec` := summertimespec: p("Time zone set to %s (= UTC +%A hours)\n",timezone,timeoffset/3600): + p("Summer Time specification set to %A\n", summertimespec): ###################################################################### *************** *** 832,839 **** setconfig('AliceHistorySize',20): setconfig('MaxMapleProcesses',8): ! setconfig('StudentTimeLimit',60000): # one minute setconfig('AdminTimeLimit',1200000): # twenty minutes ! setconfig('TimeLimit',2.0): # two seconds # END KM --- 845,852 ---- setconfig('AliceHistorySize',20): setconfig('MaxMapleProcesses',8): ! setconfig('StudentTimeLimit',120000): # two minutes setconfig('AdminTimeLimit',1200000): # twenty minutes ! setconfig('TimeLimit',4.0): # four seconds # END KM *************** *** 901,904 **** --- 914,918 ---- m("`Date/LocalTimeZoneName` := %a:\n",`Date/LocalTimeZoneName`): m("`Date/LocalTimeZoneOffset` := %d:\n",`Date/LocalTimeZoneOffset`): + m("`Date/SummerTimeSpec` := %A:\n",`Date/SummerTimeSpec`): m("\n\n"): Index: AutoConfWin.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConfWin.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AutoConfWin.mpl 16 Jan 2004 22:57:15 -0000 1.4 --- AutoConfWin.mpl 11 Apr 2004 07:08:13 -0000 1.5 *************** *** 22,25 **** --- 22,26 ---- unassign('`Date/LocalTimeZoneName`'): unassign('`Date/LocalTimeZoneOffset`'): + unassign('`Date/SummerTimeSpec`'): p := proc() printf(args); end: *************** *** 608,613 **** --- 609,625 ---- fi: + if type([`Date/SummerTimeSpec`], [listlist]) then + summertimespec := `Date/SummerTimeSpec`: + q("The Summer Time specification is set to %A\n", summertimespec): + else + summertimespec := [ [4, 1], [10, 5] ]: + q("The Summer Time specification is set to the default for the Northern\n"): + q("hemisphere (1st Sunday in April to the last Sunday in October),\n"): + q("i.e. it is set to %A\n", summertimespec): + fi: + `Date/LocalTimeZoneName` := timezone: `Date/LocalTimeZoneOffset` := timeoffset: + `Date/SummerTimeSpec` := summertimespec: p("Time zone set to %s (= UTC +%A hours)\n",timezone,timeoffset/3600): *************** *** 828,831 **** --- 840,844 ---- m("`Date/LocalTimeZoneName` := %a:\n",`Date/LocalTimeZoneName`): m("`Date/LocalTimeZoneOffset` := %d:\n",`Date/LocalTimeZoneOffset`): + m("`Date/SummerTimeSpec` := %A:\n",`Date/SummerTimeSpec`): m("\n\n"): Index: ManualConfig.dist =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ManualConfig.dist,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ManualConfig.dist 25 Sep 2003 19:01:15 -0000 1.3 --- ManualConfig.dist 11 Apr 2004 07:08:13 -0000 1.4 *************** *** 122,132 **** # table. # - # The handling of summer time may not be correct in Europe, and is - # certainly incorrect in the southern hemisphere. It is recommended - # that you adjust manually for this. - # # `Date/LocalTimeZoneName` := "GMT": # `Date/LocalTimeZoneOffset` := 0: ###################################################################### --- 122,145 ---- # table. # # `Date/LocalTimeZoneName` := "GMT": # `Date/LocalTimeZoneOffset` := 0: + ###################################################################### + # The handling of summer time may not be correct in Europe, and is + # certainly incorrect in the southern hemisphere. It is recommended + # that you adjust manually for this here. The default value of the + # Summer Time specification is [ [1, 4], [5, 10] ] which means from + # the 1st Sunday of the 4th month (April) to the 5th (or last) Sunday + # in the 10th month (October). [ [0, 0], [0, 0] ] is special and means + # `no Summer Time'. If required, uncomment the first non-blank line below + # and the line that corresponds to your situation (total of two lines), + # or provide your own. + # + #`Date/SummerTimeSpec` := + # [ [4, 1], [10, 5] ]: # Europe (usually) + USA (default) + # [ [3, 5], [10, 5] ]: # Europe (2003): Last Sun in Mar -> Last Sun in Oct + # [ [10, 5], [3, 5] ]: # Last Sun, Oct -> Last Sun, Mar (Aust: SA, Vic, NSW) + # [ [10, 1], [3, 5] ]: # 1st Sun, Oct -> Last Sun, Mar (Aust: Tasmania) + # [ [0, 0], [0, 0] ]: # No Summer Time (Aust: WA, Qld, NT) ###################################################################### Index: Date.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Date.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Date.mpl 11 Mar 2004 13:39:42 -0000 1.5 --- Date.mpl 11 Apr 2004 07:08:13 -0000 1.6 *************** *** 88,91 **** --- 88,92 ---- "WAT" =-01, "WET" = 0, + "WST" =+08, "YDT" =-08, "YST" =-09 *************** *** 210,219 **** `Package/Assign`( `Date/IsLeapYear`::boolean, ! "Returns @true@ if @year@ is a leap year, and false otherwise. ! Years divisible by 100 are usally not leap years, but the year ! 2000 is an exception, and we are unlikely to need any other ! centuries. We therefore use the naive rule.", proc(year::integer) ! RETURN(evalb(irem(year,4) = 0)); end ): --- 211,218 ---- `Package/Assign`( `Date/IsLeapYear`::boolean, ! "Returns @true@ if @year@ is a leap year, and false otherwise.", proc(year::integer) ! RETURN(evalb(irem(year, 400) = 0 or ! irem(year, 100) <> 0 and irem(year, 4) = 0)); end ): *************** *** 278,316 **** `Package/Assign`( ! `Date/SummerTime`::table, ! "A table indexed by the years from 1970..2100, whose entries ! are lists of two integers. The first integer is the ! first Sunday in April, the second is the last Sunday in October. ", ! ### TODO: work out the algorithm ! table([ ! 1970=[5, 25],1971=[4, 31],1972=[2, 29],1973=[1, 28],1974=[7, 27], ! 1975=[6, 26],1976=[4, 31],1977=[3, 30],1978=[2, 29],1979=[1, 28], ! 1980=[6, 26],1981=[5, 25],1982=[4, 31],1983=[3, 30],1984=[1, 28], ! 1985=[7, 27],1986=[6, 26],1987=[5, 25],1988=[3, 30],1989=[2, 29], ! 1990=[1, 28],1991=[7, 27],1992=[5, 25],1993=[4, 31],1994=[3, 30], ! 1995=[2, 29],1996=[7, 27],1997=[6, 26],1998=[5, 25],1999=[4, 31], ! 2000=[2, 29],2001=[1, 28],2002=[7, 27],2003=[6, 26],2004=[4, 26], ! 2005=[3, 30],2006=[2, 29],2007=[1, 28],2008=[6, 26],2009=[5, 25], ! 2010=[4, 31],2011=[3, 30],2012=[1, 28],2013=[7, 27],2014=[6, 26], ! 2015=[5, 25],2016=[3, 30],2017=[2, 29],2018=[1, 28],2019=[7, 27], ! 2020=[5, 25],2021=[4, 31],2022=[3, 30],2023=[2, 29],2024=[7, 27], ! 2025=[6, 26],2026=[5, 25],2027=[4, 31],2028=[2, 29],2029=[1, 28], ! 2030=[7, 27],2031=[6, 26],2032=[4, 31],2033=[3, 30],2034=[2, 29], ! 2035=[1, 28],2036=[6, 26],2037=[5, 25],2038=[4, 31],2039=[3, 30], ! 2040=[1, 28],2041=[7, 27],2042=[6, 26],2043=[5, 25],2044=[3, 30], ! 2045=[2, 29],2046=[1, 28],2047=[7, 27],2048=[5, 25],2049=[4, 31], ! 2050=[3, 30],2051=[2, 29],2052=[7, 27],2053=[6, 26],2054=[5, 25], ! 2055=[4, 31],2056=[2, 29],2057=[1, 28],2058=[7, 27],2059=[6, 26], ! 2060=[4, 31],2061=[3, 30],2062=[2, 29],2063=[1, 28],2064=[6, 26], ! 2065=[5, 25],2066=[4, 31],2067=[3, 30],2068=[1, 28],2069=[7, 27], ! 2070=[6, 26],2071=[5, 25],2072=[3, 30],2073=[2, 29],2074=[1, 28], ! 2075=[7, 27],2076=[5, 25],2077=[4, 31],2078=[3, 30],2079=[2, 29], ! 2080=[7, 27],2081=[6, 26],2082=[5, 25],2083=[4, 31],2084=[2, 29], ! 2085=[1, 28],2086=[7, 27],2087=[6, 26],2088=[4, 31],2089=[3, 30], ! 2090=[2, 29],2091=[1, 28],2092=[6, 26],2093=[5, 25],2094=[4, 31], ! 2095=[3, 30],2096=[1, 28],2097=[7, 27],2098=[6, 26],2099=[5, 25], ! 2100=[4, 31] ! ])): `Package/Assign`( --- 277,348 ---- `Package/Assign`( ! `Date/DaysSince1Jan2000`::integer, ! "Returns for the specified @year@, @month@ and @day@, the number of days ! since the 1st of January, 2000. ", ! proc(year::posint, month::posint, day::posint) ! local i; ! if year < 2000 then ! error sprintf(__("Year out of range (must be >= 2000): %A"), year); ! elif month > 12 then ! error sprintf(__("Month invalid: %A"), month); ! elif day > `Date/MonthLength`(month, year) then ! error sprintf(__("Day invalid (must be <= %A): %A"), ! `Date/MonthLength`(month, year), day); ! fi; ! (year - 2000) * 365 ! + `Date/LeapYearCount`(2000, year) ! + `if`(evalb(`Date/IsLeapYear`(year) and month > 2), 1, 0) ! + sum(`Date/MonthLengths`[i], i = 1 .. month - 1) ! + day - 1; ! end ! ): ! ! `Package/Assign`( ! `Date/DayOfNthSundayOfMonth`::integer, ! "Returns list [@m@, @d@] where @d@ is the numeric day of the @n@th Sunday ! of the @m@th month of @year@, except that if that day is larger than the ! number of days in the month then the day of the last Sunday of the month ! is returned. (So choosing @n@ = 5 will give the day of the last Sunday of ! the month.) ! ", ! proc(year::posint, m::posint, n::posint) ! local d; ! # 1st of January, 2000 was a Saturday ! d := 1 + ((1 - `Date/DaysSince1Jan2000`(year, m, 1)) mod 7) + 7 * (n - 1); ! while d > `Date/MonthLength`(m, year) do ! d := d - 7; ! od; ! return [m, d]; ! end ! ): ! ! `Package/Assign`( ! `Date/Test`::boolean, ! "If @oper@ is @`>`@ (resp. @`>=`@) returns @true@ if @lis1@ specifies ! a day of a month that is later (resp. not earlier) in the year than ! the day of the month specified by @lis2@. Each of @lis1@ and @lis2@ ! should be a list of form [@month@, @day@]. ! ", ! proc(lis1::[posint, posint], lis2::[posint, posint], oper::symbol) ! evalb(oper(31 * (lis1[1] - lis2[1]) + lis1[2] - lis2[2], 0)); ! end ! ): ! ! `Package/Assign`( ! `Date/SummerTime`::list, ! "Returns a list [ [@m1@, @d1@], [@m2@, @d2@] ] where @m1@ and @d1@ ! specify the month and day Summer Time begins and @m2@ and @d2@ ! specify the month and day Summer Time ends for the year @year@. ! @[ [0, 0], [0, 0] ]@ specifies no Summer Time. ! ", ! proc(year::posint) ! if `Date/SummerTimeSpec`[1][1] = 0 then ! return `Date/SummerTimeSpec`; # No Summer Time case ! fi; ! map( curry(`Date/DayOfNthSundayOfMonth`, year) @ op, ! `Date/SummerTimeSpec` ); ! end ! ): `Package/Assign`( *************** *** 320,333 **** ", proc(year,month,day) ! local msg; ! if (year < 1970 or year > 2100) then ! msg := sprintf(__("Year out of range: %A"),year); ! ERROR(msg); ! fi; ! ! evalb((month > 4 and month < 10) or ! (month = 4 and day >= `Date/SummerTime`[year][1]) or ! (month = 10 and day < `Date/SummerTime`[year][2])); end ): --- 352,369 ---- ", proc(year,month,day) ! local summerbegin, summerend; ! summerbegin, summerend := op(`Date/SummerTime`(year)); ! ! evalb( # If no Summer Time just return false ! summerbegin[1] > 0 and ! `if`(`Date/Test`(summerend, summerbegin, `>`), ! # Northern Hemisphere case ! `Date/Test`([month, day], summerbegin, `>=`) and ! `Date/Test`([month, day], summerend, `<`), ! # Southern Hemisphere case ! `Date/Test`([month, day], summerend, `<`) or ! `Date/Test`([month, day], summerbegin, `>=`) ! ) ); end ): *************** *** 342,346 **** if (SearchText("APPLE",interface('version')) > 0) then ! `Date/CurentRawDate` := proc() 2212118897 + iolib(25); end: fi: --- 378,382 ---- if (SearchText("APPLE",interface('version')) > 0) then ! `Date/CurrentRawDate` := proc() 2212118897 + iolib(25); end: fi: |
From: Gustav W D. <gus...@us...> - 2004-03-21 15:44:01
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19347 Modified Files: aimpage.php lib.php view.php Log Message: now by default shows top 10 students in grade table general clean-up Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** lib.php 21 Mar 2004 11:42:27 -0000 1.56 --- lib.php 21 Mar 2004 15:33:49 -0000 1.57 *************** *** 406,410 **** } ! function math_assignment_get_admin_links($cm, $math_assignment, $zonelink=false, $align="left") { /// Function which prints the admin links --- 406,410 ---- } ! function math_assignment_get_admin_links($cm, $math_assignment, $align="left") { /// Function which prints the admin links *************** *** 415,421 **** --- 415,423 ---- if ($filelinks) $return .= "$filelinks<br />\n"; + // View Quiz $return .= "<a href=\"aimpage.php?id=$cm->id\">" . get_string("viewquiz", "math_assignment") . "</a></td>\n"; $return .= "<td align=\"right\"><b>" . get_string("adminlinks", "math_assignment") . "</b><br />"; + // Analyse Results $stranalyseresults = get_string("analyseresults", "math_assignment"); *************** *** 423,426 **** --- 425,429 ---- $return .= math_assignment_help_button("analyze_quiz", $stranalyseresults, false); $return .= "<br />\n"; + // Edit Quiz $streditquiz = get_string("editquiz", "math_assignment"); *************** *** 428,431 **** --- 431,435 ---- $return .= math_assignment_help_button("admin_quiz", $streditquiz, false); $return .= "<br />\n"; + // Try Quiz $strtryquiz = get_string("tryquiz", "math_assignment"); *************** *** 433,454 **** $return .= math_assignment_help_button("try_quiz", $strtryquiz, false); $return .= "<br />\n"; // Documentation ! $return .= '<a href="http://aim.york.ac.uk:8080/spring04/doc/index.html" target="doc">AiM documentation</a><br />'; ! // Browse Source ! /*$strbrowsesource = get_string("browsesource", "math_assignment"); ! $return .= "<a href=\"aimpage.php?id=$cm->id&aimaction=source\">$strbrowsesource</a>"; ! $return .= math_assignment_help_button("admin_sourcedir", $strbrowsesource, false); ! $return .= "<br />\n"; ! // Edit Subject ! $streditsubject = get_string("editsubject", "math_assignment"); ! $return .= "<a href=\"aimpage.php?id=$cm->id&aimaction=subject\">$streditsubject</a>"; ! $return .= math_assignment_help_button("admin_subject", $streditsubject, false); ! if ($zonelink) { ! $return .= "<br />\n"; ! // Zone Admin ! $strzoneadmin = get_string("zoneadmin", "math_assignment"); ! $return .= "<a href=\"aimpage.php?id=$cm->id&aimaction=zoneadmin\">$strzoneadmin</a>"; ! $return .= math_assignment_help_button("admin_zoneadmin", $strzoneadmin, false); ! }*/ $return .= "</td></table>\n"; } --- 437,447 ---- $return .= math_assignment_help_button("try_quiz", $strtryquiz, false); $return .= "<br />\n"; + // Documentation ! $server = get_field('math_assignment_subjects', 'server', 'course', $math_assignment->course); ! $server = get_field('math_assignment_servers', 'address', 'id', $server); ! $server = substr($server,0,strlen($server)-6); ! $return .= "<a href=\"$server/doc/index.html\" target=\"doc\">AiM documentation</a><br />"; ! $return .= "</td></table>\n"; } *************** *** 828,893 **** } ! function math_assignment_get_grades($math_assignment, $sort="lastname", $sortdir="asc", $groupmode=false, $currentgroup=0) { // returns an array of grades indexed by userid for all students in the course ! global $CFG; ! switch(strtolower($CFG->dbtype)) { ! case 'mysqlll': ! if (strcasecmp($sort, "totalgrade") == 0) ! $sortsql = "totalgrade $sortdir"; ! else ! $sortsql = "u.$sort $sortdir"; ! $students = get_records_sql("SELECT s.userid, u.firstname, u.lastname, u.email, u.username, u.mailformat, u.picture, g.papergrade, g.aimgrade, g.aimoverride, g.aimcomment, greatest(g.papergrade,0)+greatest(g.aimgrade,0) AS totalgrade FROM {$CFG->prefix}user_students s LEFT JOIN {$CFG->prefix}user u ON s.course = '$math_assignment->course' AND u.id = s.userid LEFT JOIN {$CFG->prefix}math_assignment_grades g ON g.assignment = '$math_assignment->id' AND g.userid = s.userid WHERE u.deleted = '0' ORDER BY $sortsql"); ! break; ! default: ! // emulate ! $studentlist = get_records('user_students', 'course', $math_assignment->course); ! if ($studentlist) { ! foreach ($studentlist as $student) { ! if ($groupmode and $currentgroup and !ismember($currentgroup, $student->userid)) { ! continue; ! } ! if ($students[$student->userid] = get_record('user', 'id', $student->userid, 'deleted', 0)) { ! $key = $student->userid; ! $students[$key]->userid = $student->userid; ! $grade = get_record('math_assignment_grades', 'assignment', $math_assignment->id, 'userid', $student->userid); ! if ($grade) { ! $students[$key]->papergrade = $grade->papergrade+0; ! $students[$key]->aimgrade = $grade->aimgrade+0; ! $students[$key]->aimoverride = $grade->aimoverride ; ! $students[$key]->aimcomment = $grade->aimcomment; ! $students[$key]->totalgrade = math_assignment_total_grade($math_assignment, $grade); ! } ! else { ! $students[$key]->papergrade = -1; ! $students[$key]->aimgrade = -1; ! $students[$key]->aimoverride = AIMOVR_OFF ; ! $students[$key]->aimcomment = ""; ! $students[$key]->totalgrade = 0; ! } ! } ! else { ! // assume it failed because deleted was not zero ! unset($students[$key]); ! } ! } ! // sort ! if (strcasecmp($sortdir, "desc") == 0) ! $mult = -1; ! else ! $mult = 1; ! if (strcasecmp($sort, "id") == 0) ! uksort($students, create_function('$a, $b', 'return (($a > $b) ? 1 : -1) * ' . $mult . ';')); ! else ! uasort($students, create_function('$a, $b', 'return (($a->' . $sort . ' > $b->' . $sort . ') ? 1 : -1) * ' . $mult . ';')); } ! break; ! } ! if (count($students) > 1) { ! return $students; ! } else { ! return false; } } --- 821,858 ---- } ! function math_assignment_get_grades($math_assignment, $sort="lastname", $sortdir="asc", $group=NULL, $page=0, $recordsperpage=99999) { // returns an array of grades indexed by userid for all students in the course ! // the following is necessary because we can't sort by grade in get_course_students ! // if $sort contains 'grade' then we have to do the sort later ! $ssort = (strstr($sort, 'grade')) ? 'lastname' : $sort; ! ! if ($students = get_course_students($math_assignment->course, $ssort, $sortdir, $page, $recordsperpage, '', '', $group)) { ! foreach ($students as $key => $student) { ! $grade = get_record('math_assignment_grades', 'assignment', $math_assignment->id, 'userid', $student->id); ! if ($grade) { ! $students[$key]->papergrade = $grade->papergrade+0; ! $students[$key]->aimgrade = $grade->aimgrade+0; ! $students[$key]->aimoverride = $grade->aimoverride ; ! $students[$key]->aimcomment = $grade->aimcomment; ! $students[$key]->totalgrade = math_assignment_total_grade($math_assignment, $grade); } ! else { ! $students[$key]->papergrade = -1; ! $students[$key]->aimgrade = -1; ! $students[$key]->aimoverride = AIMOVR_OFF ; ! $students[$key]->aimcomment = ""; ! $students[$key]->totalgrade = 0; ! } ! } ! ! // sort now if we could not do it earlier ! if ($sort != $ssort) { ! $mult = (strcasecmp($sortdir, "desc") == 0) ? -1 : 1; ! uasort($students, create_function('$a, $b', 'return (($a->' . $sort . ' > $b->' . $sort . ') ? 1 : -1) * ' . $mult . ';')); ! } } + return $students; } Index: view.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/view.php,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** view.php 6 Mar 2004 14:06:52 -0000 1.31 --- view.php 21 Mar 2004 15:33:49 -0000 1.32 *************** *** 8,19 **** require_once("../../lib/psxlsgen.php"); optional_variable($id); // Course Module ID, or optional_variable($q); // assignment ID optional_variable($download, ""); // to download data ! optional_variable($sort, "lastname"); // column to sort ! optional_variable($sortdir, "asc"); // direction to sort optional_variable($showgrades, NULL); // whether to show grades table optional_variable($group, -1); // choose the current group if (! $site = get_site()) { redirect("$CFG->wwwroot/$CFG->admin/index.php"); --- 8,23 ---- require_once("../../lib/psxlsgen.php"); + /// declare optional arguments + optional_variable($id); // Course Module ID, or optional_variable($q); // assignment ID optional_variable($download, ""); // to download data ! optional_variable($sort, "totalgrade"); // column to sort ! optional_variable($sortdir, "desc"); // direction to sort optional_variable($showgrades, NULL); // whether to show grades table optional_variable($group, -1); // choose the current group + /// load $cm, $course, and $math_assignment + if (! $site = get_site()) { redirect("$CFG->wwwroot/$CFG->admin/index.php"); *************** *** 45,63 **** } require_login($course->id); add_to_log($course->id, "math_assignment", "view", "view.php?id=$cm->id", "$math_assignment->id"); - - if (isset ($outputchange)) { - if (strcmp($outputchange, "html") == 0 || strcmp($outputchange, "xml") == 0) { - // set the cookie - setcookie("output", $outputchange, 0x7FFFFFFF); - $_COOKIE['output'] = $outputchange; - } - } $isteacher = isteacher($course->id); $isstudent = isstudent($course->id); if (!$isteacher and !$isstudent and !isguest()) { error("You are not allowed on this page"); --- 49,62 ---- } + /// authenticate user and set group + require_login($course->id); add_to_log($course->id, "math_assignment", "view", "view.php?id=$cm->id", "$math_assignment->id"); $isteacher = isteacher($course->id); $isstudent = isstudent($course->id); + // ??? the following appears to allow all anyone if (!$isteacher and !$isstudent and !isguest()) { error("You are not allowed on this page"); *************** *** 70,73 **** --- 69,73 ---- // Check to see if groups are being used in this assignment // and if so, set $currentgroup to reflect the current group + // I copied this from some other module in the early days of groups. Seems to work $changegroup = isset($_GET['group']) ? $_GET['group'] : -1; // Group change requested? $groupmode = groupmode($course, $cm); // Groups are being used *************** *** 79,82 **** --- 79,94 ---- exit; } + + /// Set cookie for output format + + if (isset ($outputchange)) { + if (strcmp($outputchange, "html") == 0 || strcmp($outputchange, "xml") == 0) { + // set the cookie + setcookie("output", $outputchange, 0x7FFFFFFF); + $_COOKIE['output'] = $outputchange; + } + } + + /// set up some convenient variables $hasaim = ($math_assignment->aimgrade > 0); *************** *** 93,98 **** $strgrades = get_string("grades"); $strreview = get_string("review", "math_assignment"); ! $strshowgradestable = get_string("showgradestable", "math_assignment"); ! $strhidegradestable = get_string("hidegradestable", "math_assignment"); if ($course->category) { --- 105,110 ---- $strgrades = get_string("grades"); $strreview = get_string("review", "math_assignment"); ! $strshowall = get_string("showall", "math_assignment"); ! $strtopten = get_string("topten", "math_assignment"); if ($course->category) { *************** *** 104,131 **** $strmath_assignments = get_string("modulenameplural", "math_assignment"); $strmath_assignment = get_string("modulename", "math_assignment"); ! if ($isteacher and ($showgrades or $download)) { ! ! // verify that the sort string is correct ! if (strcasecmp($sort, "lastname") != 0) { // check for field name in most likely used order ! if (strcasecmp($sort, "firstname") != 0) { // to improve speed ! if (strcasecmp($sort, "totalgrade") != 0) ! $sort = "lastname"; // not valid so use default instead ! } ! } ! if (strcasecmp($sortdir, "asc") != 0 && strcasecmp($sortdir, "desc") != 0) ! $sortdir = "asc"; // not valid so use default instead // Get a list of students for this course including grades ! $students = array(); ! $students = math_assignment_get_grades($math_assignment, $sort, $sortdir, $groupmode, $currentgroup); ! if (!$students) { ! print_header("$course->shortname: $math_assignment->name", "$course->fullname", ! "$navigation <a href=\"index.php?id=$course->id\">$strmath_assignments</a> -> $math_assignment->name", ! "", "", true, update_module_button($cm->id, $course->id, $strmath_assignment), navmenu($course, $cm)); ! print_heading(get_string("nostudentsyet")); ! print_footer($course); ! exit; ! } } else if ($isstudent) { --- 116,131 ---- $strmath_assignments = get_string("modulenameplural", "math_assignment"); $strmath_assignment = get_string("modulename", "math_assignment"); + + /// Get student grades ! if ($isteacher) { ! ! // To save time only show the first 21 students unless they are all needed ! $tablelength = ($showgrades or $download) ? 999 : 10; // Get a list of students for this course including grades ! // The following is necessary because of a bug in moodle, see http://moodle.org/bugs/bug.php?op=show&bugid=1169 ! $group = ($currentgroup) ? $currentgroup : NULL; ! $students = math_assignment_get_grades($math_assignment, $sort, $sortdir, $group, 0, $tablelength); } else if ($isstudent) { *************** *** 141,145 **** } ! // OK, we have all the data, now present it to the user if ($download == "xls" and $isteacher) { --- 141,146 ---- } ! /// OK, we have all the data, now present it to the user ! /// First all the different ways of downloading the data if ($download == "xls" and $isteacher) { *************** *** 270,273 **** --- 271,276 ---- exit; + /// Here we finally come to the webpage + } else { // Just print the web page *************** *** 278,331 **** print_heading($math_assignment->name, "center"); ! $inbox = false; $timedifference = $math_assignment->timedue - time(); ! if ($timedifference < 31536000) { // Don't bother showing dates over a year in the future ! print_simple_box_start("center"); ! $inbox = true; ! $strdifference = format_time($timedifference); ! if ($timedifference < 0) { ! $strdifference = "<font color=\"red\">- $strdifference</font>"; ! } ! $strduedate = userdate($math_assignment->timedue)." ($strdifference)"; ! echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />"; } $totalmax = $math_assignment->papergrade + $math_assignment->aimgrade; if ($isstudent) { ! if (!$inbox) { ! print_simple_box_start("center"); ! $inbox = true; ! } ! $pg = $grade->papergrade+0; // The +0 converts it into a number ! $pm = $math_assignment->papergrade+0; ! if ($math_assignment->papergrade > 0) { ! if ($grade->papergrade >= 0) { ! $pg = $grade->papergrade+0; // The +0 converts it into a number ! $pm = $math_assignment->papergrade+0; ! $papergrade = "<b>$pg / $pm</b>"; ! } else if ($grade->papergrade = -1) { ! $papergrade = "<b>-- / $pm</b>"; ! } // display in grey if results have not been finalised if (!$math_assignment->papersheetsreturned) { $papergrade = "<span style=\"color: silver \">$papergrade</span>"; } ! // don't give results if assignment still open ! if ($math_assignment->timedue > time()) { ! $papergrade = $stropen; ! } ! } ! else { ! $papergrade = ""; } ! $ag = $grade->aimgrade+0; // The +0 converts it into a number ! $am = $math_assignment->aimgrade+0; ! if ($math_assignment->aimgrade > 0) { ! if ($grade->aimgrade >= 0) { ! $aimgrade = "<b>$ag / $am</b>"; ! } else { ! $aimgrade = "<b>-- / $am</b>"; ! } // show aimgrade in grey if quiz has not closed yet if ($math_assignment->timedue > time()) { --- 281,322 ---- print_heading($math_assignment->name, "center"); ! // At the top of the page there will be a box with the due date ! // and (if a student views it) a summary of the student's grades ! // and the description of the assignment (if any) ! print_simple_box_start("center"); ! ! // Print due date $timedifference = $math_assignment->timedue - time(); ! $strdifference = format_time($timedifference); ! if ($timedifference < 0) { ! $strdifference = "<font color=\"red\">- $strdifference</font>"; } + $strduedate = userdate($math_assignment->timedue)." ($strdifference)"; + echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />"; $totalmax = $math_assignment->papergrade + $math_assignment->aimgrade; + // For student print summary of grades and teacher comments if ($isstudent) { ! ! // if there is a paper component then print grade for that component ! if ($haspaper) { ! $pg = $grade->papergrade+0; // The +0 converts it into a number ! $pm = $math_assignment->papergrade+0; ! $papergrade = ($grade->papergrade >= 0) ? "<b>$pg / $pm</b>" : "<b>-- / $pm</b>"; // display in grey if results have not been finalised if (!$math_assignment->papersheetsreturned) { $papergrade = "<span style=\"color: silver \">$papergrade</span>"; } ! echo "<b>"; ! if ($hasaim) echo "$strpaper "; ! echo "$strgrade:</b> $papergrade<br />"; } ! ! // if there is an AiM component then print grade for that component ! if ($hasaim) { ! $ag = $grade->aimgrade+0; // The +0 converts it into a number ! $am = $math_assignment->aimgrade+0; ! $aimgrade = ($grade->aimgrade >= 0) ? "<b>$ag / $am</b>" : "<b>-- / $am</b>"; // show aimgrade in grey if quiz has not closed yet if ($math_assignment->timedue > time()) { *************** *** 335,348 **** $aimgrade .= " (" . get_string("gradeoverride", "math_assignment") . ")"; } - } - else { - $aimgrade = ""; - } - if ($haspaper) { - echo "<b>"; - if ($hasaim) echo "$strpaper "; - echo "$strgrade: $papergrade<br />"; - } - if ($hasaim) { echo "<b>$strcomputer $strgrade :</b> "; echo "$aimgrade <br />"; --- 326,329 ---- *************** *** 351,390 **** ":</b> " . nl2br(htmlspecialchars($grade->aimcomment)) . "<br />"; } if ($hasboth) { ! $totalgrade = math_assignment_total_grade($math_assignment, $grade); ! echo "<b>$strtotal $strgrade :</b> "; ! if ($totalgrade >= 0) ! echo " $totalgrade / $totalmax"; ! else ! print_string("notmarked", "math_assignment"); } } echo format_text($math_assignment->description); - if ($inbox) - print_simple_box_end(); if ($isteacher) { ! $zonelink = ""; ! if ($subject = get_record("math_assignment_subjects", "course", $course->id)) { ! if ($server = get_record("math_assignment_servers", "id", $subject->server)) ! $zonelink = $server->password; ! } ! echo math_assignment_get_admin_links($cm, $math_assignment, $zonelink, "center"); ! if ($showgrades) { ! echo "<center><a href=\"view.php?id=$cm->id\">$strhidegradestable</a></center>"; ! } else { ! echo "<center><a href=\"view.php?id=$cm->id&showgrades=true\">$strshowgradestable</a></center>"; ! } } ! if ($isteacher and $showgrades) { if ($groupmode == VISIBLEGROUPS or ($groupmode and isteacheredit($course->id))) { if ($groups = get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")) { echo '<td>'; ! print_group_menu($groups, $groupmode, $currentgroup, "view.php?id=$cm->id&showgrades=true"); echo '</td>'; } } if ($hasboth) { --- 332,372 ---- ":</b> " . nl2br(htmlspecialchars($grade->aimcomment)) . "<br />"; } + if ($hasboth) { ! $tg = math_assignment_total_grade($math_assignment, $grade); ! $totalgrade = ($tg >= 0) ? "<b>$tg / $totalmax</b>" : "<b>-- / $totalmax</b>"; ! if (($haspaper and !$math_assignment->papersheetsreturned) or ($math_assignment->timedue > time())) { ! $totalgrade = "<span style=\"color: silver \">$totalgrade</span>"; ! } ! echo "<b>$strtotal $strgrade :</b> $totalgrade"; } } echo format_text($math_assignment->description); + print_simple_box_end(); + + // if ($isteacher) { ! echo math_assignment_get_admin_links($cm, $math_assignment, "center"); } + + /// For teacher print grades table ! if ($isteacher) { + // This groups code was copied from someshere else. It shows the groups selection menu if ($groupmode == VISIBLEGROUPS or ($groupmode and isteacheredit($course->id))) { if ($groups = get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")) { echo '<td>'; ! print_group_menu($groups, $groupmode, $currentgroup, "view.php?id=$cm->id"); echo '</td>'; } } + + if (!$students) { + notify(get_string("nostudents", 'math_assignment')); + print_footer($course); + exit; + } if ($hasboth) { *************** *** 401,417 **** } ! $i = 1; ! foreach ($students as $key => $student) { ! $picture = print_user_picture($key, $course->id, $student->picture, false, true); ! if ($student->papergrade >= 0) ! $papergrade = $student->papergrade+0; ! else ! $papergrade = ""; ! $papergrade = "<input type=\"text\" name=\"$student->userid\" size=\"4\" maxlength=\"10\" value=\"$papergrade\" tabindex=\"$i\" />"; ! if ($student->aimgrade >= 0) ! $aimgrade = $student->aimgrade+0; ! else ! $aimgrade = ""; if (($student->aimoverride > AIMOVR_RESET) or $student->aimcomment) { $edited = '<span style="color:red;">'; --- 383,396 ---- } ! if (!$showgrades) { ! echo "<center><b>$strtopten</b> (<a href=\"view.php?id=$cm->id&showgrades=true\">$strshowall</a>)</center><br />"; ! } + $i = 1; + foreach ($students as $student) { + $picture = print_user_picture($student->id, $course->id, $student->picture, false, true); + $papergrade = ($student->papergrade >= 0) ? $student->papergrade+0 : ''; + $papergrade = "<input type=\"text\" name=\"$student->id\" size=\"4\" maxlength=\"10\" value=\"$papergrade\" tabindex=\"$i\" />"; + $aimgrade = ($student->aimgrade >= 0) ? $student->aimgrade+0 : ''; if (($student->aimoverride > AIMOVR_RESET) or $student->aimcomment) { $edited = '<span style="color:red;">'; *************** *** 423,442 **** } $email = "<a href=\"mailto:$student->email\">"; ! if ($CFG->math_assignment_default_email_host) { ! if (preg_match("/^(.*)@(.*)$/", $student->email, $matches)) { ! if (strcmp($matches[2], $CFG->math_assignment_default_email_host) == 0) ! $email .= "$matches[1]</a>"; ! else ! $email .= "$student->email</a>"; ! } ! else ! $email .= "$student->email</a>"; ! } ! else $email .= "$student->email</a>"; if ($hasboth) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\"> <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> --- 402,418 ---- } + // Show email link. If it is an address on the default email host then simplify it $email = "<a href=\"mailto:$student->email\">"; ! if ($CFG->math_assignment_default_email_host and ! preg_match("/^(.*)@(.*)$/", $student->email, $matches) and ! (strcmp($matches[2], $CFG->math_assignment_default_email_host) == 0)) { ! $email .= "$matches[1]</a>"; ! } else { $email .= "$student->email</a>"; + } + if ($hasboth) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->id\"> <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> *************** *** 446,450 **** else if ($hasaim) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\"> <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> --- 422,426 ---- else if ($hasaim) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->id\"> <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> *************** *** 495,499 **** echo "</tr></table>"; ! if ($adminlinks = math_assignment_get_admin_links($cm, $math_assignment, $zonelink, "center")) { echo $adminlinks; } --- 471,475 ---- echo "</tr></table>"; ! if ($adminlinks = math_assignment_get_admin_links($cm, $math_assignment, "center")) { echo $adminlinks; } Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/aimpage.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** aimpage.php 21 Mar 2004 11:42:27 -0000 1.24 --- aimpage.php 21 Mar 2004 15:33:49 -0000 1.25 *************** *** 272,276 **** // write admin links if (isteacher($course->id)) { ! echo math_assignment_get_admin_links($cm, $math_assignment, $server->password, "center"); echo "<center><a href=\"view.php?id=$cm->id&showgrades=true\">".get_string("showgradestable", "math_assignment").'</a></center>'; } --- 272,276 ---- // write admin links if (isteacher($course->id)) { ! echo math_assignment_get_admin_links($cm, $math_assignment, "center"); echo "<center><a href=\"view.php?id=$cm->id&showgrades=true\">".get_string("showgradestable", "math_assignment").'</a></center>'; } *************** *** 311,315 **** if (isteacher($course->id)) { ! if ($adminlinks = math_assignment_get_admin_links($cm, $math_assignment, $server->password, "center")) { echo $adminlinks; } --- 311,315 ---- if (isteacher($course->id)) { ! if ($adminlinks = math_assignment_get_admin_links($cm, $math_assignment, "center")) { echo $adminlinks; } |
From: Gustav W D. <gus...@us...> - 2004-03-21 11:54:31
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment/moodletex In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5544/moodletex Modified Files: index.php Log Message: makes sure log file gets displayed when error occurs during pdflatex Index: index.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/moodletex/index.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** index.php 16 Nov 2003 18:38:24 -0000 1.1 --- index.php 21 Mar 2004 11:44:23 -0000 1.2 *************** *** 47,51 **** $errlog = shell_exec("$texcommand $tempfile"); ! if (!file_exists("$tempfile.pdf")) { echo "There was a problem while compiling the tex source!<br> pdflatex wrote the following log:<br><br> --- 47,51 ---- $errlog = shell_exec("$texcommand $tempfile"); ! if (!file_exists("$tempfile.pdf") or strstr($errlog, 'Fatal error')) { echo "There was a problem while compiling the tex source!<br> pdflatex wrote the following log:<br><br> |
From: Gustav W D. <gus...@us...> - 2004-03-21 11:52:47
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5263 Modified Files: aimpage.php lib.php Log Message: shows solutions by default when viewing student's answers transfers grade to Moodle every time a page with a grade is viewed Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** lib.php 18 Mar 2004 22:29:50 -0000 1.55 --- lib.php 21 Mar 2004 11:42:27 -0000 1.56 *************** *** 675,678 **** --- 675,679 ---- // extract grades (if present) + $grade = NULL; if (preg_match("/class=\"marktable\"([\s\S]*)?<\/table>/i", $data, $matches)) { $data = $matches[1]; Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/aimpage.php,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** aimpage.php 2 Mar 2004 21:11:50 -0000 1.23 --- aimpage.php 21 Mar 2004 11:42:27 -0000 1.24 *************** *** 115,119 **** else if ($isteacher and strcasecmp($aimaction, "reviewquiz") == 0) { // review student's quiz attempts $postdata = math_assignment_add_arg_to_url_data($postdata, "Command","review/Quiz"); ! $postdata = math_assignment_add_arg_to_url_data($postdata, "Action", "ReviewQuiz"); $postdata = math_assignment_add_arg_to_url_data($postdata, "QuizName", $math_assignment->aimquiz); $postdata = math_assignment_add_arg_to_url_data($postdata, "Password", $subject->password); --- 115,120 ---- else if ($isteacher and strcasecmp($aimaction, "reviewquiz") == 0) { // review student's quiz attempts $postdata = math_assignment_add_arg_to_url_data($postdata, "Command","review/Quiz"); ! $postdata = math_assignment_add_arg_to_url_data($postdata, "Action", "ShowSolution"); ! $postdata = math_assignment_add_arg_to_url_data($postdata, "ShowSolution", "true"); $postdata = math_assignment_add_arg_to_url_data($postdata, "QuizName", $math_assignment->aimquiz); $postdata = math_assignment_add_arg_to_url_data($postdata, "Password", $subject->password); *************** *** 297,306 **** if ($max_grade > 0) set_field("math_assignment", "aimgrade", $max_grade, "id", $math_assignment->id); ! // update student grade when marking only if (isstudent($course->id)) { ! if (array_key_exists("Command", $_POST)) { ! if (strcmp($_POST['Command'], "MarkQuiz") == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, -1, $grade); ! } } } --- 298,305 ---- if ($max_grade > 0) set_field("math_assignment", "aimgrade", $max_grade, "id", $math_assignment->id); ! // update grade if (isstudent($course->id)) { ! if ($grade or $grade == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, -1, $grade); } } |
From: Gustav W D. <gus...@us...> - 2004-03-19 00:34:41
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17355 Modified Files: config.html servers.php Log Message: cleaned up configuration interface Index: servers.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/servers.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** servers.php 29 Jan 2004 18:20:38 -0000 1.6 --- servers.php 19 Mar 2004 00:25:00 -0000 1.7 *************** *** 41,45 **** if ($depends = get_server_depends($server, false)) { // print list of courses using the server ! print_heading(get_string("dependantcourses", "math_assignment")); $table->head = array(get_string("course"), get_string("aimsubject", "math_assignment"), get_string("modulenameplural", "math_assignment")); $table->width = array("*", "*", "*"); --- 41,45 ---- if ($depends = get_server_depends($server, false)) { // print list of courses using the server ! print_heading(get_string("dependentcourses", "math_assignment")); $table->head = array(get_string("course"), get_string("aimsubject", "math_assignment"), get_string("modulenameplural", "math_assignment")); $table->width = array("*", "*", "*"); *************** *** 90,94 **** error(get_string("failed", "math_assignment"), "servers.php"); } ! redirect("http://aim.york.ac.uk/moodle/admin/module.php?module=math_assignment", get_string("changessaved"), 1); } --- 90,94 ---- error(get_string("failed", "math_assignment"), "servers.php"); } ! redirect("../../admin/module.php?module=math_assignment", get_string("changessaved"), 1); } *************** *** 109,113 **** $straddress = get_string("address", "math_assignment"); $strpassword = get_string("zonepassword", "math_assignment"); ! $strdepends = get_string("dependantcourses", "math_assignment"); $stredit = get_string("edit"); $strdelete = get_string("delete"); --- 109,113 ---- $straddress = get_string("address", "math_assignment"); $strpassword = get_string("zonepassword", "math_assignment"); ! $strdepends = get_string("dependentcourses", "math_assignment"); $stredit = get_string("edit"); $strdelete = get_string("delete"); *************** *** 117,121 **** <?php ! print_heading_with_help($straimserverconfig, "server", "math_assignment"); if (isset($id)) { --- 117,121 ---- <?php ! print_heading($straimserverconfig); if (isset($id)) { *************** *** 125,144 **** $server->password = ""; } ! } ! else if ($servers = get_records("math_assignment_servers", "", "", "name ASC")) { ! $table->head = array($strname, $straddress, $strpassword, $strdepends, $stredit, $strdelete); ! $table->width = array("*", "*", "*", "*", "*", "*"); ! $table->align = array("LEFT", "LEFT", "LEFT", "CENTER", "CENTER", "CENTER"); ! foreach ($servers as $server) { ! $table->data[] = array($server->name, $server->address, str_repeat("*", strlen($server->password)), get_server_depends($server), "<a href=\"servers.php?id=$server->id\">$stredit</a>", "<a href=\"servers.php?id=$server->id&name=&address=&password=\">$strdelete</a>"); ! } ! print_table($table); ! $server->name = ""; ! $server->address = ""; ! $server->password = ""; ! print_heading(get_string("addnewserver", "math_assignment")); } --- 125,147 ---- $server->password = ""; } ! } else { ! if ($servers = get_records("math_assignment_servers", "", "", "name ASC")) { ! $table->head = array($strname, $straddress, $strpassword, $strdepends, $stredit, $strdelete); ! $table->width = array("*", "*", "*", "*", "*", "*"); ! $table->align = array("LEFT", "LEFT", "LEFT", "CENTER", "CENTER", "CENTER"); ! foreach ($servers as $server) { ! $table->data[] = array($server->name, $server->address, str_repeat("*", strlen($server->password)), ! get_server_depends($server), "<a href=\"servers.php?id=$server->id\">$stredit</a>", ! "<a href=\"servers.php?id=$server->id&name=&address=&password=\">$strdelete</a>"); ! } ! print_table($table); ! $server->name = ""; ! $server->address = ""; ! $server->password = ""; ! print_heading(get_string("addnewserver", "math_assignment")); ! } } *************** *** 156,160 **** <td align="right"><p><b><?php echo $strname; ?>:</b></p></td> <td> ! <input type="text" name="name" size="40" maxlength="255" value="<?php echo $server->name; ?>" /> <?php helpbutton ("server_name", $strname, "math_assignment"); ?> </td> </tr> --- 159,163 ---- <td align="right"><p><b><?php echo $strname; ?>:</b></p></td> <td> ! <input type="text" name="name" size="40" maxlength="255" value="<?php echo $server->name; ?>" /> </td> </tr> *************** *** 170,174 **** <td align="right"><p><b><?php echo $strpassword; ?>:</b></p></td> <td> ! <input type="password" name="password" size="40" maxlength="255" value="<?php echo $server->password; ?>" /> <?php helpbutton ("server_password", $strpassword, "math_assignment"); ?> </td> </tr> --- 173,177 ---- <td align="right"><p><b><?php echo $strpassword; ?>:</b></p></td> <td> ! <input type="password" name="password" size="40" maxlength="255" value="<?php echo $server->password; ?>" /> </td> </tr> Index: config.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/config.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** config.html 29 Jan 2004 18:20:38 -0000 1.9 --- config.html 19 Mar 2004 00:25:00 -0000 1.10 *************** *** 14,22 **** $straimserverconfig = get_string("aimserverconfig", "math_assignment"); - $strautoregister = get_string("autoregister", "math_assignment"); $strlatexoutput = get_string("latexoutput", "math_assignment"); - $straimdisplay = get_string("aimdisplay", "math_assignment"); - $strdefaultemailhost = get_string("defaultemailhost", "math_assignment"); - $strsecretaryemail = get_string("secretaryemail", "math_assignment"); $strcoursesettings = get_string("coursesettings", "math_assignment"); $straimserver = get_string("aimserver", "math_assignment"); --- 14,18 ---- *************** *** 40,44 **** "<a href=\"../mod/math_assignment/servers.php?id=$server->id&name=&address=&password=\">$strdelete</a>"); } ! print_heading($straimserverconfig); print_table($table); --- 36,40 ---- "<a href=\"../mod/math_assignment/servers.php?id=$server->id&name=&address=&password=\">$strdelete</a>"); } ! print_heading_with_help($straimserverconfig,"config", "math_assignment"); print_table($table); |
From: Gustav W D. <gus...@us...> - 2004-03-18 22:39:32
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25856 Modified Files: lib.php mod.html Log Message: added assessmentmode Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/mod.html,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** mod.html 2 Mar 2004 21:11:51 -0000 1.28 --- mod.html 18 Mar 2004 22:29:51 -0000 1.29 *************** *** 7,11 **** /* * Variables specific to this module are: ! * name, problems, solutions, aimsubject, aimquiz, papergrade, aimgrade, timedue, * solutiontime. * We check that these are setup here. --- 7,11 ---- /* * Variables specific to this module are: ! * name, problems, solutions, aimsubject, aimquiz, papergrade, aimgrade, assessmentmode, timedue, * solutiontime. * We check that these are setup here. *************** *** 44,47 **** --- 44,50 ---- $form->aimgrade = 0; } + if (!isset($form->assessmentmode)) { + $form->assessmentmode = 'assessment'; + } if (!isset($form->timedue)) { $form->timedue = 0; *************** *** 264,267 **** --- 267,280 ---- </tr> + <tr> + <td align="right"><p><b><?php echo get_string('assessmentmode', 'math_assignment'); ?>:</b></p></td> + <td> + <input type="radio" name="assessmentmode" value="assessment" <?php p(($form->assessmentmode == 'assessment') ? "checked" : "") ?> /> + <?php p(get_string("assessed","math_assignment")); ?> + <input type="radio" name="assessmentmode" value="practice" <?php p(($form->assessmentmode == 'practice') ? "checked" : "") ?> /> + <?php p(get_string("practice","math_assignment")); ?> + </td> + </tr> + <?php if ($aimsubject) { Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** lib.php 10 Mar 2004 21:43:00 -0000 1.54 --- lib.php 18 Mar 2004 22:29:50 -0000 1.55 *************** *** 269,272 **** --- 269,275 ---- return NULL; } + if ($math_assignment->assessmentmode == 'practice') { + return NULL; + } $return->maxgrade = $math_assignment->papergrade+ $math_assignment->aimgrade; $return->grades = math_assignment_get_grades($math_assignment, "id", "asc"); *************** *** 596,600 **** $postdata = math_assignment_add_arg_to_url_data($postdata, "Weight", "1.0"); $postdata = math_assignment_add_arg_to_url_data($postdata, "Access", "all"); ! $postdata = math_assignment_add_arg_to_url_data($postdata, "Mode", "assessment"); // load the AiM page and grab the result if (!$data = math_assignment_get_aim_output($server->address, $postdata)) --- 599,603 ---- $postdata = math_assignment_add_arg_to_url_data($postdata, "Weight", "1.0"); $postdata = math_assignment_add_arg_to_url_data($postdata, "Access", "all"); ! $postdata = math_assignment_add_arg_to_url_data($postdata, "Mode", $math_assignment->assessmentmode); // load the AiM page and grab the result if (!$data = math_assignment_get_aim_output($server->address, $postdata)) |
From: <mo...@us...> - 2004-03-13 00:53:44
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30476 Modified Files: Inert.mpl Log Message: workaround for new behavior in Maple 9 Index: Inert.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Inert.mpl,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Inert.mpl 16 Feb 2004 03:17:02 -0000 1.13 --- Inert.mpl 13 Mar 2004 00:45:02 -0000 1.14 *************** *** 1159,1165 **** `Package/Assign`( `Inert/DefiniteIntegral`::Inert, ! "The Inert Definite Integral of a function.", ! `new/Inert`( proc(f,x,a,b) # Map ! int(f,x=a..b); end, "\\int_{%3}^{%4} {%1}\\,d%2", # TeX --- 1159,1165 ---- `Package/Assign`( `Inert/DefiniteIntegral`::Inert, ! "The Inert Definite Integral of a real valued function.", ! `new/Inert`( proc(f,x,a,b) # Map - assumes real domain ! use RealDomain in int(f,x=a..b); end; end, "\\int_{%3}^{%4} {%1}\\,d%2", # TeX |
From: <mo...@us...> - 2004-03-13 00:52:34
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30268 Modified Files: Random.mpl RandArgs.mpl Log Message: minor improvements Index: Random.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Random.mpl 21 Feb 2004 03:51:36 -0000 1.14 --- Random.mpl 13 Mar 2004 00:43:51 -0000 1.15 *************** *** 468,472 **** "Produces a \"nice\" binomial from its arguments (which is more complicated than it sounds). If one looks through the problems assigned in a typical calculus or precalc book, one will notice that there are certain rules that authors tend to follow when designing \"nice\" questions. This procedure attempts to produce a \"nice\" random binomial of the form @a*x^n+b*y^m@ where @a:=Rand(arange)@, @b:=Rand(brange)@, @x:=Rand(_x)@, @y:=Rand(_y)@, @n:=Rand(deg)@, and @m:=Rand(ydeg)@. Only the argument @x@ is mandatory. Both @x@ and @y@ can be any any algebraic expression or Inert Expression.", proc(_x,deg,arange,brange,_y,ydeg) ! local n,a,b,ar,br,i,x,y,m; --- 468,472 ---- "Produces a \"nice\" binomial from its arguments (which is more complicated than it sounds). If one looks through the problems assigned in a typical calculus or precalc book, one will notice that there are certain rules that authors tend to follow when designing \"nice\" questions. This procedure attempts to produce a \"nice\" random binomial of the form @a*x^n+b*y^m@ where @a:=Rand(arange)@, @b:=Rand(brange)@, @x:=Rand(_x)@, @y:=Rand(_y)@, @n:=Rand(deg)@, and @m:=Rand(ydeg)@. Only the argument @x@ is mandatory. Both @x@ and @y@ can be any any algebraic expression or Inert Expression.", proc(_x,deg,arange,brange,_y,ydeg) ! local n,a,b,ar,br,i,x,y,m,Tym,Txn; *************** *** 486,489 **** --- 486,492 ---- if nargs>5 then m:=Rand(ydeg) fi; + Txn:=`if`(n=1,x,ToThe(x,n)); + Tym:=`if`(m=1,y,ToThe(y,m)); + # don't let them both be negative for i to 20 do *************** *** 525,532 **** # overridden... use b if nargs>3 then ! return Plus(Times(b,ToThe(y,m)),Times(a,ToThe(x,n))); # default.. don't use b else ! return Plus(1,Times(a,ToThe(x,n))); fi; # b is negative so put it second --- 528,535 ---- # overridden... use b if nargs>3 then ! return Plus(Times(b,Tym),Times(a,Txn)); # default.. don't use b else ! return Plus(1,Times(a,Txn)); fi; # b is negative so put it second *************** *** 534,544 **** # overridden... use both if nargs>3 then ! return Plus(Times(a,ToThe(x,n)),Times(b,ToThe(y,m))); # only a was overidden, so ignore b elif nargs=3 then ! return Plus(1,Times(a,ToThe(x,n))); # default...use just one else ! return Rand(Plus(ToThe(x,n),b),Plus(1,Times(a,ToThe(x,n)))) fi # neither are negative so it doesn't matter who is first --- 537,547 ---- # overridden... use both if nargs>3 then ! return Plus(Times(a,Txn),Times(b,Tym)); # only a was overidden, so ignore b elif nargs=3 then ! return Plus(1,Times(a,Txn)); # default...use just one else ! return Rand(Plus(Txn,b),Plus(1,Times(a,Txn))) fi # neither are negative so it doesn't matter who is first *************** *** 546,557 **** # b overridden... use both if nargs>3 then ! return Plus(Rand(Permute(Times(b,ToThe(y,m)),Times(a,ToThe(x,n))))); # only a was overidden, so ignore b elif nargs=3 then ! return Plus(1,Times(a,ToThe(x,n))); # default...use just one in either order else ! return Rand(Fn(Plus,Permute(b,ToThe(x,n))), ! Plus(1,Times(a,ToThe(x,n))) ); fi --- 549,560 ---- # b overridden... use both if nargs>3 then ! return Plus(Rand(Permute(Times(b,Tym),Times(a,Txn)))); # only a was overidden, so ignore b elif nargs=3 then ! return Plus(1,Times(a,Txn)); # default...use just one in either order else ! return Rand(Fn(Plus,Permute(b,Txn)), ! Plus(1,Times(a,Txn)) ); fi Index: RandArgs.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/RandArgs.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RandArgs.mpl 16 Feb 2004 03:17:56 -0000 1.3 --- RandArgs.mpl 13 Mar 2004 00:43:51 -0000 1.4 *************** *** 127,130 **** --- 127,138 ---- `Package/Assign`(`Rand/Recip/Binomial/Power_Posint/Integer`,"", Fn(Over,`Rand/NonzeroInteger`,`Rand/Binomial/Power_Posint/Integer`)): + `Package/Assign`(`Rand/Recip/Binomial/Quadratic/Integer/PosCoeffs`,"", + Fn(Over,`Rand/Posint`, + [Fn(Plus, + `Rand/Posint`, + Fn(Times,`Rand/Posint`,ToThe(x,2))), + Fn(Plus, + Fn(Times,`Rand/Posint`,ToThe(x,2)), + `Rand/Posint`)])); `Package/Assign`(`Rand/Recip/Binomial/Trans/Root`,"", Fn(Over,`Rand/NonzeroInteger`,`Rand/Binomial/Trans/Root`)): *************** *** 1309,1312 **** --- 1317,1321 ---- "Rand/Recip/Binomial/Linear", "Rand/Recip/Binomial/Power_Posint/Integer", + "Rand/Recip/Binomial/Quadratic/Integer/PosCoeffs", "Rand/Recip/Binomial/Trans/Root", "Rand/Recip/Binomial/Trans/Integer", |
From: <nps...@us...> - 2004-03-11 13:58:28
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23785/WEB-INF/maple/aim Modified Files: Question.mpl Quiz.mpl Log Message: Index: Question.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Question.mpl,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Question.mpl 10 Mar 2004 02:04:44 -0000 1.11 --- Question.mpl 11 Mar 2004 13:39:42 -0000 1.12 *************** *** 99,106 **** ], - # KM - # DIST ['Field','TimeLimit'::numeric = 2.0, ['Field','TimeLimit'::numeric = Config['TimeLimit'], - # END KM "The maximum time allowed for the @IProc@, @SProc@, @MProc@ or @AProc@ procedures to run. --- 99,103 ---- *************** *** 705,712 **** tlimit := this['TimeLimit']; if not(type([tlimit],[numeric])) then - # KM - # DIST tlimit := 2.0; tlimit := Config['TimeLimit']; - # END KM fi; --- 702,706 ---- *************** *** 1767,1771 **** if b = 0 or r = 0. then msg := sprintf(__("Your mark is %.2f"),mark); - # KM if b>0 then msg := cat(msg,sprintf(__(".    You have made %d incorrect attempts."),b+1)); --- 1761,1764 ---- *************** *** 1773,1777 **** msg := cat(msg,".    You have made one incorrect attempt."); fi: - # END KM elif b = 1 then msg := --- 1766,1769 ---- *************** *** 2012,2018 **** local attempt,history,quizcontext, ansvar,locals,savedframe,err,sproc,tlimit; - # KM global Config; ! # END KM if type([vrsion],[`aim/MultiQuestion/Version`]) then ERROR(__("The `aim/Question/Instance` constructor cannot be used for multipart questions")); --- 2004,2009 ---- local attempt,history,quizcontext, ansvar,locals,savedframe,err,sproc,tlimit; global Config; ! if type([vrsion],[`aim/MultiQuestion/Version`]) then ERROR(__("The `aim/Question/Instance` constructor cannot be used for multipart questions")); *************** *** 2208,2215 **** ", proc(this,quizcontext::`aim/Quiz/Context`,labels::list(string)) - # KM - # DIST local reviewmode, trymode, qtrymode, local reviewmode, trymode, qtrymode, jscript, ! # END KM focused, focuslabel, focusindex, nav, href, header, control, editlink, label; --- 2199,2204 ---- ", proc(this,quizcontext::`aim/Quiz/Context`,labels::list(string)) local reviewmode, trymode, qtrymode, jscript, ! focused, focuslabel, focusindex, nav, href, header, control, editlink, label; *************** *** 2625,2635 **** ["hr"], [["div", "class" = "rightanswer"], - # KM [["table", "width"="100%", "bgcolor"="PaleGoldenRod"], ["tr", [["td", "width"="100%"], this['ReportRightAnswer']]]]]]; - # DIST this['ReportRightAnswer']]]; - # END KM fi; fi; # ends if type([this],[`aim/MultiQuestion/Instance`]) --- 2614,2621 ---- *************** *** 2638,2644 **** this['Solution'] <> "" then html['AddContents', - # DIST ["hr"], [["div", "class" = "solution"], - # KM [["table", "width"="100%", "bgcolor"="PaleGoldenRod"], ["tr",[["td", "width"="100%"],["hr"]]], --- 2624,2628 ---- *************** *** 2649,2656 **** ["tr", [["td", "width"="100%"],this['Solution']]]]]]; - # DIST ["b",__("Solution:")], - # DIST ["br"], - # DIST this['Solution']]]; - # END KM fi; --- 2633,2636 ---- *************** *** 2829,2833 **** ], - # KM ['Field','PartLabel'::string, "If this is the 3rd subsubquestion of the 5th subquestion of a --- 2809,2812 ---- *************** *** 2836,2840 **** " ], - # END KM ['Field','NumHistories'::integer, --- 2815,2818 ---- *************** *** 2986,2990 **** nam := this['QuestionName']; partlabel := this['PartLabel']; ! questionhistory := eval(nametable[nam,partlabel]); if type([questionhistory],[`aim/Question/History`]) then this['AddHistory',questionhistory]; --- 2964,2973 ---- nam := this['QuestionName']; partlabel := this['PartLabel']; ! try ! questionhistory := ! eval(quizhistory['GetQuestionByName', ! this['QuestionName'],this['PartLabel']]); ! catch: ! end: if type([questionhistory],[`aim/Question/History`]) then this['AddHistory',questionhistory]; Index: Quiz.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Quiz.mpl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Quiz.mpl 10 Mar 2004 02:04:45 -0000 1.6 --- Quiz.mpl 11 Mar 2004 13:39:42 -0000 1.7 *************** *** 568,572 **** fi; else ! h['ReMarkQuestion',questionname,question]; this['SaveHistory',id,h]; fi; --- 568,572 ---- fi; else ! h['ReMarkQuestion',question]; this['SaveHistory',id,h]; fi; *************** *** 853,856 **** --- 853,873 ---- ], + ['Method','ContainsLabel'::boolean, + "Return @true@ if this quiz history contains a question history for + the question with the specified label. + ", + proc(this,label::string) + local msg,questionhistory; + + if member(label,this['Labels']) then + questionhistory := eval(this['LabelTable'][label]); + if type([questionhistory],[`aim/Question/History`]) then + return(true); + fi; + fi; + false; + end + ], + ['Method','GetQuestionByLabel'::`aim/Question/History`, "Return the #`aim/Question/History`# object for the question with the *************** *** 858,870 **** ", proc(this,label::string) ! local msg; if member(label,this['Labels']) then ! RETURN(eval(this['QuestionHistory'][label])); ! else ! msg := ! sprintf(__("Quiz history contains no question with label %s"),label); ! ERROR(msg); fi; end ], --- 875,906 ---- ", proc(this,label::string) ! local msg,questionhistory; if member(label,this['Labels']) then ! questionhistory := eval(this['LabelTable'][label]); ! if type([questionhistory],[`aim/Question/History`]) then ! return(eval(questionhistory)); ! fi; ! fi; ! msg := sprintf(__("Quiz history contains no question with label %s"),label); ! ERROR(msg); ! end ! ], ! ! ['Method','ContainsName'::boolean, ! "Return @true@ if this quiz history contains a question history for ! the question with the specified name and part label. ! ", ! proc(this,questionname::string, ! # optional ! partlabel_::string) ! local partlabel,msg,questionhistory; ! ! partlabel := `if`(nargs > 2,partlabel_,""); ! questionhistory := eval(this['NameTable'][questionname,partlabel]); ! if type([questionhistory],[`aim/Question/History`]) then ! return(true); fi; + false; end ], *************** *** 895,898 **** --- 931,958 ---- ], + + ['Method','PutQuestion'::void, + "Puts the history for a specified question into the quiz history. + ", + proc(this,questionname::string,label::string, + questionhistory::`aim/Question/History`) + local nametable,labeltable,partlabel,msg,i; + + i := searchtext(".",label); + partlabel := `if`(i>0,substring(label,i..-1),""); + + nametable := eval(this['NameTable']); + labeltable := eval(this['LabelTable']); + + if not(member(label,this['Labels'])) then + this['Labels'] := [op(this['Labels']),label]; + fi; + + nametable[questionname,partlabel] := eval(questionhistory); + labeltable[label] := eval(questionhistory); + NULL; + end + ], + ['Field','TotalMarks'::list(numeric) = [],""], *************** *** 1124,1149 **** ['Method','ReMarkQuestion'::void, ! "Re-mark the question with the specified name (if present). The ! question itself can be supplied as an optional third argument. ! This is just for efficiency when re-marking the same question ! for many students. <br/><br/> This method does not save the re-marked history. ", ! proc(this, ! questionname::string, ! question_::`aim/Question`) ! local question,questionhistory,questionseed,vrsion,msg, parts,part,parthistories,newparthistories,parthistory, attemptcount,rawtable,wasmarked,quizcontext,inst, ! multipleattempt,attempt,err,i; ! ! question := ! traperror( ! eval(`if`(nargs > 2,question_,this['GetQuestion',questionname]))); ! ! if not(type([question],[`aim/Question`])) then ! ERROR(__("Could not load question to re-mark")); ! fi; if type([question],[`aim/MultiQuestion`]) then --- 1184,1198 ---- ['Method','ReMarkQuestion'::void, ! "Re-mark the specified question (if present). <br/><br/> This method does not save the re-marked history. ", ! proc(this,question::`aim/Question`) ! local questionname,questionhistory,questionseed,vrsion,msg, parts,part,parthistories,newparthistories,parthistory, attemptcount,rawtable,wasmarked,quizcontext,inst, ! multipleattempt,attempt,err,toplabel,i,j,q; ! ! questionname := question['Name']; if type([question],[`aim/MultiQuestion`]) then *************** *** 1154,1163 **** if parts = [] then RETURN(); end; part := parts[1]; questionhistory := eval(this['GetQuestionByName',questionname,part]); ! if questionhistory = NULL then ! RETURN(); ! elif not(type([questionhistory],[`aim/Question/History`])) then ERROR(__("Malformed question history")); fi; --- 1203,1215 ---- if parts = [] then RETURN(); end; part := parts[1]; + + if not(this['ContainsName',questionname,part]) then + RETURN(); + fi; + questionhistory := eval(this['GetQuestionByName',questionname,part]); ! if not(type([questionhistory],[`aim/Question/History`])) then ERROR(__("Malformed question history")); fi; *************** *** 1167,1170 **** --- 1219,1242 ---- questionseed := questionhistory['QuestionSeed']; + # We need a clumsy hack to find out the label of the top-level + # question. This should really be recorded more explicitly. + toplabel := NULL; + for i in this['Labels'] do + q := eval(this['LabelTable'][i]); + if q['QuestionName'] = question['Name'] then + j := searchtext(".",i); + if j > 0 then + toplabel := substring(i,1..(j-1)); + else + toplabel := i; + fi; + break; + fi; + od; + + if toplabel = NULL then + ERROR(__("Cannot find question label")); + fi; + vrsion := traperror( *************** *** 1226,1230 **** eval(vrsion),eval(rawtable), eval(newparthistories),eval(quizcontext)); ! od else # not a multipart question --- 1298,1309 ---- eval(vrsion),eval(rawtable), eval(newparthistories),eval(quizcontext)); ! od; ! ! for part in parts do ! this['PutQuestion', ! questionname, ! cat(toplabel,part), ! eval(newparthistories[part])]; ! od; else # not a multipart question |
From: <nps...@us...> - 2004-03-11 13:58:27
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23785/WEB-INF/maple Modified Files: Aim.mpl Date.mpl Log Message: Index: Aim.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Aim.mpl 6 Sep 2003 10:41:15 -0000 1.5 --- Aim.mpl 11 Mar 2004 13:39:42 -0000 1.6 *************** *** 744,748 **** rawtable,question, seedfile,seed, ! historyfile,history,labeltable,nametable,questionhistory, label, oldfocus, subquestion, cgilabel, oldans; global AimCache; --- 744,748 ---- rawtable,question, seedfile,seed, ! historyfile,history,questionhistory, label, oldfocus, subquestion, cgilabel, oldans; global AimCache; *************** *** 805,818 **** history := eval(`new/aim/Quiz/History`(quizversion)); fi; ! labeltable := eval(history['LabelTable']); ! nametable := eval(history['NameTable']); for question in quizversion['Questions'] do label := question['Label']; ! if not(assigned(labeltable[label])) then questionhistory := eval(`new/aim/Question/History`(eval(question))); ! labeltable[label] := eval(questionhistory); ! nametable[question['Name'],question['PartLabel']] := ! eval(questionhistory); fi; od; --- 805,817 ---- history := eval(`new/aim/Quiz/History`(quizversion)); fi; ! for question in quizversion['Questions'] do label := question['Label']; ! if not(history['ContainsLabel',label]) then questionhistory := eval(`new/aim/Question/History`(eval(question))); ! history['PutQuestion', ! question['Name'],question['Label'], ! eval(questionhistory)]; fi; od; *************** *** 823,831 **** if quizcontext['UseRecordedAnswers'] then rawtable := table([]); - labeltable := eval(history['LabelTable']); for question in quizversion['Questions'] do label := question['Label']; rawtable[cat("RawAnswer",label)] := ! eval(labeltable[label])['LastRawAnswer']; od; if member(command,{"UnfocusQuiz","MoveQuizFocus"}) then --- 822,830 ---- if quizcontext['UseRecordedAnswers'] then rawtable := table([]); for question in quizversion['Questions'] do label := question['Label']; + questionhistory := eval(history['GetQuestionByLabel',label]); rawtable[cat("RawAnswer",label)] := ! questionhistory['LastRawAnswer']; od; if member(command,{"UnfocusQuiz","MoveQuizFocus"}) then Index: Date.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Date.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Date.mpl 1 Sep 2003 20:22:23 -0000 1.4 --- Date.mpl 11 Mar 2004 13:39:42 -0000 1.5 *************** *** 291,295 **** 1990=[1, 28],1991=[7, 27],1992=[5, 25],1993=[4, 31],1994=[3, 30], 1995=[2, 29],1996=[7, 27],1997=[6, 26],1998=[5, 25],1999=[4, 31], ! 2000=[2, 29],2001=[1, 28],2002=[7, 27],2003=[6, 26],2004=[4, 31], 2005=[3, 30],2006=[2, 29],2007=[1, 28],2008=[6, 26],2009=[5, 25], 2010=[4, 31],2011=[3, 30],2012=[1, 28],2013=[7, 27],2014=[6, 26], --- 291,295 ---- 1990=[1, 28],1991=[7, 27],1992=[5, 25],1993=[4, 31],1994=[3, 30], 1995=[2, 29],1996=[7, 27],1997=[6, 26],1998=[5, 25],1999=[4, 31], ! 2000=[2, 29],2001=[1, 28],2002=[7, 27],2003=[6, 26],2004=[4, 26], 2005=[3, 30],2006=[2, 29],2007=[1, 28],2008=[6, 26],2009=[5, 25], 2010=[4, 31],2011=[3, 30],2012=[1, 28],2013=[7, 27],2014=[6, 26], *************** *** 329,333 **** evalb((month > 4 and month < 10) or (month = 4 and day >= `Date/SummerTime`[year][1]) or ! (month = 10 and day <= `Date/SummerTime`[year][2])); end ): --- 329,333 ---- evalb((month > 4 and month < 10) or (month = 4 and day >= `Date/SummerTime`[year][1]) or ! (month = 10 and day < `Date/SummerTime`[year][2])); end ): |
From: <nps...@us...> - 2004-03-11 13:58:27
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23785/WEB-INF/maple/aim/analyze Modified Files: Question.mpl Log Message: Index: Question.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze/Question.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Question.mpl 25 Aug 2003 21:47:19 -0000 1.3 --- Question.mpl 11 Mar 2004 13:39:43 -0000 1.4 *************** *** 256,263 **** if analysis = NULL then analysis := - # KM - # DIST eval(`aim/Question/Analyze`(quiz['RootDir'],questionname)); eval(`aim/Question/Analyze`(quiz['RootDir'],questionname,partlabel)); - # END KM if not(type([analysis],[`aim/Question/Analysis`])) then --- 256,260 ---- |
From: <gus...@us...> - 2004-03-10 22:01:13
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6356 Modified Files: lib.php Log Message: now adds and updates due date in event table Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** lib.php 6 Mar 2004 14:06:52 -0000 1.53 --- lib.php 10 Mar 2004 21:43:00 -0000 1.54 *************** *** 60,66 **** if (!math_assignment_setup_aim_quiz($math_assignment)) return get_string("failedaimsetup", "math_assignment"); ! $math_assignment->timemodified = time(); ! return insert_record("math_assignment", $math_assignment); } --- 60,81 ---- if (!math_assignment_setup_aim_quiz($math_assignment)) return get_string("failedaimsetup", "math_assignment"); ! ! if (!$instance = insert_record("math_assignment", $math_assignment)) { ! error("Unable to insert assignment into database"); ! } $math_assignment->timemodified = time(); ! ! $event->name = get_field('course', 'shortname', 'id', $math_assignment->course).': '.$math_assignment->name; ! $event->description = $math_assignment->description; ! $event->courseid = $math_assignment->course; ! $event->modulename = 'math_assignment'; ! $event->instance = $instance; ! $event->eventtype = 'time due'; ! $event->timestart = $math_assignment->timedue; ! $event->timemodified = time(); ! if (!insert_record("event", $event)) { ! error("Unable to insert due date into event table"); ! } ! return $instance; } *************** *** 121,124 **** --- 136,164 ---- $math_assignment->timemodified = time(); + + if ($event = get_record('event', 'modulename', 'math_assignment', 'instance', $math_assignment->id)) { + $event->name = get_field('course', 'shortname', 'id', $math_assignment->course).': '.$math_assignment->name; + $event->description = $math_assignment->description; + $event->courseid = $math_assignment->course; + $event->eventtype = 'time due'; + $event->timestart = $math_assignment->timedue; + $event->timemodified = time(); + if (!update_record('event', $event)) { + error("Unable to update time due in event table"); + } + } else { + $event->name = get_field('course', 'shortname', 'id', $math_assignment->course).': '.$math_assignment->name; + $event->description = $math_assignment->description; + $event->courseid = $math_assignment->course; + $event->modulename = 'math_assignment'; + $event->instance = $math_assignment->id; + $event->eventtype = 'time due'; + $event->timestart = $math_assignment->timedue; + $event->timemodified = time(); + if (!insert_record("event", $event)) { + error("Unable to insert due date into event table"); + } + } + return update_record("math_assignment", $math_assignment); } *************** *** 133,136 **** --- 173,179 ---- $result = true; + if (! delete_records('event', 'modulename', 'math_assignment', 'instance', $id)) { + $result = false; + } if (! delete_records("math_assignment", "id", "$id")) { $result = false; |
From: <nps...@us...> - 2004-03-10 02:24:40
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3834/WEB-INF/maple/aim Modified Files: Int.mpl Matrix.mpl PartialFraction.mpl Subject.mpl Test.mpl Util.mpl Log Message: Various minor improvements Index: Int.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Int.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Int.mpl 1 Sep 2003 20:22:23 -0000 1.4 --- Int.mpl 10 Mar 2004 02:06:53 -0000 1.5 *************** *** 136,140 **** local q,argtype,ans,diffans,rightans,integrand,var,subsvars,varstr, ! feedback,note,mark,t,val,intconst,u,base,expt,newvar,ns; if type(a,`aim/Question/Attempt`) then --- 136,141 ---- local q,argtype,ans,diffans,rightans,integrand,var,subsvars,varstr, ! feedback,note,mark,t,val,intconst,u,base,expt,newvar,ns, ! err,differr; if type(a,`aim/Question/Attempt`) then *************** *** 165,169 **** note := ""; ! diffans := traperror(simplify(simplifyabs(diff(ans,var)))); t := `aim/CheckVars`(ans, integrand); --- 166,175 ---- note := ""; ! err := traperror(simplify(`aim/HypToExp`(ans - rightans),symbolic)); ! err := traperror(simplify(simplifyabs(diff(err,var)),symbolic)); ! diffans := traperror(simplify(simplifyabs(diff(ans,var)),symbolic)); ! differr := ! traperror(expand(simplify(`aim/HypToExp`(diffans - integrand),symbolic))); ! t := `aim/CheckVars`(ans, integrand); *************** *** 181,188 **** # you give Maple. simplifyabs here takes care of examples like int(1/u, u) # where the student gives the answer: ln(abs(u)) + C ! elif traperror(simplify(simplifyabs(diff(simplify(ans - rightans))))) = 0 or ! traperror(expand(simplify(diffans - integrand))) = 0 or ! traperror(expand(simplify(diffans - integrand), assume = positive)) = 0 ! then feedback := ""; note := ""; --- 187,191 ---- # you give Maple. simplifyabs here takes care of examples like int(1/u, u) # where the student gives the answer: ln(abs(u)) + C ! elif err = 0 or differr = 0 then feedback := ""; note := ""; Index: Matrix.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Matrix.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Matrix.mpl 9 Jan 2004 08:19:20 -0000 1.4 --- Matrix.mpl 10 Mar 2004 02:06:53 -0000 1.5 *************** *** 81,85 **** local A; ! A := evalm(a); if type(A,vector) then --- 81,85 ---- local A; ! A := evalm(eval(a)); if type(A,vector) then Index: PartialFraction.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/PartialFraction.mpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PartialFraction.mpl 10 Oct 2003 09:49:31 -0000 1.1 --- PartialFraction.mpl 10 Mar 2004 02:06:53 -0000 1.2 *************** *** 590,594 **** bad := false; if type(t,complexcons) then ! a := infinity; n := 0; c := 1; else if type(t,`*`) then --- 590,594 ---- bad := false; if type(t,complexcons) then ! a := infinity; n := 0; c := t; else if type(t,`*`) then *************** *** 735,739 **** extrapoles := {op(t['Poles'])} minus {op(Q['Poles'])}; missingpoles := {op(Q['Poles'])} minus {op(t['Poles'])}; ! if extrapoles <> {} then attempt['AddAnswerNote',__("Extra poles")]; polestring := --- 735,744 ---- extrapoles := {op(t['Poles'])} minus {op(Q['Poles'])}; missingpoles := {op(Q['Poles'])} minus {op(t['Poles'])}; ! if extrapoles = {infinity} then ! attempt['AddAnswerNote',__("Extra pole at infinity")]; ! attempt['AddFeedback', ! sprintf(__("Your answer involves a constant term or a positive power of %s, which should not be there; you should only have terms of the form (%s-a)<sup>-n</sup>."),xx,xx)]; ! return([0,attempt['Feedback'],attempt['AnswerNote']]); ! elif extrapoles <> {} then attempt['AddAnswerNote',__("Extra poles")]; polestring := *************** *** 747,751 **** return([0,attempt['Feedback'],attempt['AnswerNote']]); fi; ! if missingpoles <> {} then attempt['AddAnswerNote',__("Missing poles")]; polestring := --- 752,762 ---- return([0,attempt['Feedback'],attempt['AnswerNote']]); fi; ! if missingpoles = {infinity} then ! attempt['AddAnswerNote',__("Missing pole at infinity")]; ! attempt['AddFeedback', ! sprintf(__("Your answer is missing some terms. As well as terms of the form (%s-a)<sup>-n</sup>, you also need a constant term or some powers of %s."),xx,xx) ! ]; ! return([0,attempt['Feedback'],attempt['AnswerNote']]); ! elif missingpoles <> {} then attempt['AddAnswerNote',__("Missing poles")]; polestring := *************** *** 758,766 **** for p in Q['Poles'] do if Q['PoleOrder',p] <> t['PoleOrder',p] then ! attempt['AddAnswerNote',__("Wrong orders")]; ! attempt['AddFeedback', ! __("Your answer has poles in the right places, but some or all of the poles have the wrong order, so you must have found the wrong general form for the partial fraction decomposition.") ! ]; ! return([0,attempt['Feedback'],attempt['AnswerNote']]); fi; od; --- 769,785 ---- for p in Q['Poles'] do if Q['PoleOrder',p] <> t['PoleOrder',p] then ! if p = infinity then ! attempt['AddAnswerNote',__("Wrong order at infinity")]; ! attempt['AddFeedback', ! sprintf(__("Your answer has the wrong order at infinity. In other words, you have the wrong number of terms of the form %s<sup>k</sup>."),xx) ! ]; ! return([0,attempt['Feedback'],attempt['AnswerNote']]); ! else ! attempt['AddAnswerNote',__("Wrong orders")]; ! attempt['AddFeedback', ! __("Your answer has poles in the right places, but some or all of the poles have the wrong order, so you must have found the wrong general form for the partial fraction decomposition.") ! ]; ! return([0,attempt['Feedback'],attempt['AnswerNote']]); ! fi; fi; od; Index: Subject.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Subject.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Subject.mpl 19 Sep 2003 13:04:47 -0000 1.4 --- Subject.mpl 10 Mar 2004 02:06:53 -0000 1.5 *************** *** 760,764 **** if type([h],[`aim/Quiz/History`]) then marks[quiz['Name']] := h['TotalMarkCode']; ! key := max(key,h['TotalMarkKey']); total := total + h['TotalMark'] * quiz['Weight']; else --- 760,764 ---- if type([h],[`aim/Quiz/History`]) then marks[quiz['Name']] := h['TotalMarkCode']; ! key := min(0,max(key,h['TotalMarkKey'])); total := total + h['TotalMark'] * quiz['Weight']; else Index: Test.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Test.mpl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Test.mpl 2 Nov 2003 01:30:39 -0000 1.7 --- Test.mpl 10 Mar 2004 02:06:54 -0000 1.8 *************** *** 85,95 **** "Return @true@ if Maple can simplify @ans - rightans@ to zero.", proc(ans::anything,rightans::anything) ! evalb( ! traperror(evalb( ! simplify(expand(evalm(ans - rightans)), ! symbolic ! ) = 0 ! )) = true ! ); end ): --- 85,98 ---- "Return @true@ if Maple can simplify @ans - rightans@ to zero.", proc(ans::anything,rightans::anything) ! local err,ret; ! try ! err := ans - rightans; ! err := `aim/HypToExp`(err); ! err := simplify(expand(evalm(err)),symbolic); ! ret := evalb(evalb(err = 0) = true); ! return(ret); ! catch: ! return(false); ! end try; end ): Index: Util.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Util.mpl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Util.mpl 25 Sep 2003 19:01:15 -0000 1.6 --- Util.mpl 10 Mar 2004 02:06:54 -0000 1.7 *************** *** 531,533 **** --- 531,552 ---- # END KM + + `Package/Assign`( + `aim/HypToExp`, + "Converts hyperbolic functions to exponentials, eg cosh(x) becomes + (exp(x) + exp(-x))/2. This is needed because for some reason, + Maple will not simplify 2*cosh(x) - exp(x) - exp(-x) to zero. + ", + proc(t) + eval(subs( + sinh = ((x) -> (exp(x) - exp(-x))/2), + cosh = ((x) -> (exp(x) + exp(-x))/2), + tanh = ((x) -> (exp(x) - exp(-x))/(exp(x) + exp(-x))), + csch = ((x) -> 2/(exp(x) - exp(-x))), + sech = ((x) -> 2/(exp(x) + exp(-x))), + coth = ((x) -> (exp(x) + exp(-x))/(exp(x) - exp(-x))), + t)); + end + ): + EndPackage(): |
From: <nps...@us...> - 2004-03-10 02:24:39
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3834/WEB-INF/maple Modified Files: Console.mpl Make.mpl Log Message: Various minor improvements Index: Console.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Console.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Console.mpl 19 Sep 2003 04:08:00 -0000 1.5 --- Console.mpl 10 Mar 2004 02:06:53 -0000 1.6 *************** *** 23,40 **** killserver := proc() ! local command; ! command := ! cat( ! "ps -auxwww | ", ! "grep \"cmaple.*-q\" | ", ! "grep -v grep | ", ! "awk '{print $2}' | ", ! "xargs kill 2> /dev/null"); ! system(command); end: ! stopaim := proc() system("/aim/WEB-INF/stopaim.sh"); end: ! startaim := proc() system("/aim/WEB-INF/startaim.sh"); end: ###################################################################### --- 23,40 ---- killserver := proc() ! # local command; ! # command := ! # cat( ! # "ps -auxwww | ", ! # "grep \"cmaple.*-q\" | ", ! # "grep -v grep | ", ! # "awk '{print $2}' | ", ! # "xargs kill 2> /dev/null"); ! # system(command); end: ! #stopaim := proc() system("/aim/WEB-INF/stopaim.sh"); end: ! #startaim := proc() system("/aim/WEB-INF/startaim.sh"); end: ###################################################################### *************** *** 44,48 **** mktags := proc() ! system("/usr/local/aim/maple/tools/mktags"); end: --- 44,48 ---- mktags := proc() ! # system("/usr/local/aim/maple/tools/mktags"); end: *************** *** 57,61 **** read("Make.mpl"); if nargs = 0 then ! killserver(); fi; end: --- 57,61 ---- read("Make.mpl"); if nargs = 0 then ! # killserver(); fi; end: *************** *** 459,460 **** --- 459,469 ---- fi: end: + + TrySyntax := + proc(rawans::string) + local attempt; + attempt := `new/aim/Question/Attempt`(rawans); + `aim/TextQuestion/BasicValidation`(attempt); + return(attempt['ValidationMessage']); + end: + Index: Make.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Make.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Make.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- Make.mpl 10 Mar 2004 02:06:53 -0000 1.4 *************** *** 150,166 **** if MakeTrans = true then ! `Package/TranslationStrings` := ! sort(`Package/TranslationStrings`, ! (x,y) -> (op(1,x) < op(1,y))): transfile := cat(Config['DocDir'],"/trans.mpl"): traperror(fclose(transfile)): fd := fopen(transfile,WRITE): ! for x in `Package/TranslationStrings` do ! if type([x],[list]) and nops(x) > 2 then ! fprintf(fd,"# Package: %s\n# Object: %s\n# __(%a) = \"\":\n\n",x[2],x[3],x[1]): ! fi: od: fclose(transfile): ! unassign('transfile','x','fd'): fi: --- 150,169 ---- if MakeTrans = true then ! stringlist := map(x -> x[1],`Package/TranslationStrings`): ! stringlist := sort([op({op(stringlist)})]): transfile := cat(Config['DocDir'],"/trans.mpl"): traperror(fclose(transfile)): fd := fopen(transfile,WRITE): ! for x in stringlist do ! placelist := select((a,b) -> a[1] = b,stringlist,x): ! for y in placelist do ! if type([y],[list]) and nops(y) > 2 then ! fprintf(fd,"# Package: %s\n# Object: %s\n",y[2],y[3]): ! fi: ! od: ! fprintf(fd,"__(%a) := \n %a:\n\n",x[1],__(x[1])): od: fclose(transfile): ! unassign('transfile','stringlist','placelist','x','y','fd'): fi: |
From: <nps...@us...> - 2004-03-10 02:24:39
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/review In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3834/WEB-INF/maple/aim/review Modified Files: Quiz.mpl Log Message: Various minor improvements Index: Quiz.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/review/Quiz.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Quiz.mpl 25 Aug 2003 21:47:19 -0000 1.3 --- Quiz.mpl 10 Mar 2004 02:06:54 -0000 1.4 *************** *** 204,208 **** student,studentname,emailstudent,adminstudent,togglesolution, seed,quizversion,quizinstance,history,labeltable, ! question,label,rawtable,quizcontext; subject := eval(page['Subject']); --- 204,208 ---- student,studentname,emailstudent,adminstudent,togglesolution, seed,quizversion,quizinstance,history,labeltable, ! question,label,questionhistory,rawtable,quizcontext; subject := eval(page['Subject']); *************** *** 261,266 **** for question in quizversion['Questions'] do label := question['Label']; ! rawtable[cat("RawAnswer",label)] := ! eval(labeltable[label])['LastRawAnswer']; od; --- 261,271 ---- for question in quizversion['Questions'] do label := question['Label']; ! questionhistory := eval(labeltable[label]); ! if type([questionhistory],[`aim/Question/History`]) then ! rawtable[cat("RawAnswer",label)] := ! questionhistory['LastRawAnswer']; ! else ! rawtable[cat("RawAnswer",label)] := ""; ! fi; od; |
From: <nps...@us...> - 2004-03-10 01:52:33
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30281/WEB-INF/maple Modified Files: AliceServer.mpl ImageCache.mpl Log Message: Changes to location of image cache to avoid problem of vanishing images. Index: AliceServer.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AliceServer.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AliceServer.mpl 12 Sep 2003 03:16:46 -0000 1.5 --- AliceServer.mpl 10 Mar 2004 01:34:41 -0000 1.6 *************** *** 58,69 **** # (See ImageCache.mpl for explanation.) if not(assigned(AimImageCache)) then AimImageCache := ! eval(`new/ImageCache`(cat(Config['WebDir'],"/imagecache"), ! cat(Config['DocumentURL'],"/imagecache"))): fi: # Set up a cache for storing quiz versions if not(assigned(AimQuizCache)) then ! AimQuizCache := `new/aim/QuizCache`(); fi: --- 58,77 ---- # (See ImageCache.mpl for explanation.) if not(assigned(AimImageCache)) then + if type([ProcessID],[integer]) then + dir := sprintf("%s/imagecache/%d",Config['WebDir'],ProcessID): + `OS/MakeDirectory`(dir): + url := sprintf("%s/imagecache/%d",Config['DocumentURL'],ProcessID): + else + dir := sprintf("%s/imagecache",Config['WebDir']): + url := sprintf("%s/imagecache",Config['DocumentURL']): + fi; AimImageCache := ! eval(`new/ImageCache`(dir,url)): ! unassign('dir','url'): fi: # Set up a cache for storing quiz versions if not(assigned(AimQuizCache)) then ! AimQuizCache := `new/aim/QuizCache`(): fi: *************** *** 104,109 **** shutdown := proc() ! AimImageCache['CleanAll']; ! quit; end: --- 112,122 ---- shutdown := proc() ! local dir; ! AimImageCache['CleanAll']: ! if type([ProcessID],[integer]) then ! dir := sprintf("%s/imagecache/%d",Config['WebDir'],ProcessID): ! `OS/RemoveDirectory`(dir): ! fi: ! quit: end: Index: ImageCache.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ImageCache.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ImageCache.mpl 25 Sep 2003 19:01:15 -0000 1.4 --- ImageCache.mpl 10 Mar 2004 01:34:58 -0000 1.5 *************** *** 146,150 **** err := traperror(open(f,'WRITE')); if (err = lasterror) then ! ERROR(sprintf("Error reading image count file %A:\n%A\n\n",f,err)); fi; err := traperror(fprintf(f,"%d\n",c)); --- 146,150 ---- err := traperror(open(f,'WRITE')); if (err = lasterror) then ! ERROR(sprintf("Error opening image count file %A:\n%A\n\n",f,err)); fi; err := traperror(fprintf(f,"%d\n",c)); *************** *** 238,241 **** --- 238,242 ---- proc(this,x::`ImageCache/Plot`) local c,file,url; + global Config; c := this['NextCount']; file := sprintf("%s/%d.%s",this['Dir'],c,Config['ImageFormat']); |
From: <gus...@us...> - 2004-03-06 14:21:46
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27960 Modified Files: lib.php view.php Log Message: grade table is now groups aware Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** lib.php 2 Mar 2004 21:11:51 -0000 1.52 --- lib.php 6 Mar 2004 14:06:52 -0000 1.53 *************** *** 781,785 **** } ! function math_assignment_get_grades($math_assignment, $sort="lastname", $sortdir="asc") { // returns an array of grades indexed by userid for all students in the course --- 781,785 ---- } ! function math_assignment_get_grades($math_assignment, $sort="lastname", $sortdir="asc", $groupmode=false, $currentgroup=0) { // returns an array of grades indexed by userid for all students in the course *************** *** 799,802 **** --- 799,805 ---- if ($studentlist) { foreach ($studentlist as $student) { + if ($groupmode and $currentgroup and !ismember($currentgroup, $student->userid)) { + continue; + } if ($students[$student->userid] = get_record('user', 'id', $student->userid, 'deleted', 0)) { $key = $student->userid; Index: view.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/view.php,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** view.php 2 Mar 2004 21:11:51 -0000 1.30 --- view.php 6 Mar 2004 14:06:52 -0000 1.31 *************** *** 14,17 **** --- 14,18 ---- optional_variable($sortdir, "asc"); // direction to sort optional_variable($showgrades, NULL); // whether to show grades table + optional_variable($group, -1); // choose the current group if (! $site = get_site()) { *************** *** 66,69 **** --- 67,82 ---- error("This assignment should not be visible"); } + + // Check to see if groups are being used in this assignment + // and if so, set $currentgroup to reflect the current group + $changegroup = isset($_GET['group']) ? $_GET['group'] : -1; // Group change requested? + $groupmode = groupmode($course, $cm); // Groups are being used + $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup); + + if ($groupmode and ($currentgroup === false) and !isteacheredit($course->id)) { + print_heading(get_string("notingroup", "math_assignment")); + print_footer($course); + exit; + } $hasaim = ($math_assignment->aimgrade > 0); *************** *** 106,110 **** // Get a list of students for this course including grades $students = array(); ! $students = math_assignment_get_grades($math_assignment, $sort, $sortdir); if (!$students) { print_header("$course->shortname: $math_assignment->name", "$course->fullname", --- 119,123 ---- // Get a list of students for this course including grades $students = array(); ! $students = math_assignment_get_grades($math_assignment, $sort, $sortdir, $groupmode, $currentgroup); if (!$students) { print_header("$course->shortname: $math_assignment->name", "$course->fullname", *************** *** 366,369 **** --- 379,390 ---- if ($isteacher and $showgrades) { + + if ($groupmode == VISIBLEGROUPS or ($groupmode and isteacheredit($course->id))) { + if ($groups = get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")) { + echo '<td>'; + print_group_menu($groups, $groupmode, $currentgroup, "view.php?id=$cm->id&showgrades=true"); + echo '</td>'; + } + } if ($hasboth) { |
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1035 Modified Files: aimpage.php editgrade.php email.php lib.php mod.html pdfgen.php subjectpage.php view.php Log Message: various changes but no groups implementation yet Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/aimpage.php,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** aimpage.php 29 Jan 2004 18:20:38 -0000 1.22 --- aimpage.php 2 Mar 2004 21:11:50 -0000 1.23 *************** *** 59,63 **** require_login($course->id); ! add_to_log($course->id, "math_assignment", "AiM page", "aimpage.php?id=$cm->id", "$math_assignment->id"); $isteacher = isteacher($course->id); --- 59,63 ---- require_login($course->id); ! add_to_log($course->id, "math_assignment", "AiM page", "aimpage.php?id=$cm->id&reviewstudent=$USER->username&aimaction=reviewquiz", "$math_assignment->id"); $isteacher = isteacher($course->id); Index: editgrade.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/editgrade.php,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** editgrade.php 16 Jan 2004 09:34:57 -0000 1.7 --- editgrade.php 2 Mar 2004 21:11:51 -0000 1.8 *************** *** 44,47 **** --- 44,48 ---- $gradeobj->aimgrade = -1; // not attempted $gradeobj->aimtimemodified = 0; + $gradeobj->aimadjustment = 0; $gradeobj->aimoverride = AIMOVR_OFF; $gradeobj->aimcomment = ""; *************** *** 51,81 **** unset($err); ! if (isset($grade) && isset($comment)) { $grade = trim($grade); if ($grade == "-") { // reset override (clear grade) $gradeobj->aimgrade = -1; $gradeobj->aimoverride = AIMOVR_RESET; - $gradeobj->aimcomment = $comment; } else if ($grade == "") { // clear override (leave grade alone) $gradeobj->aimoverride = AIMOVR_RESET; - $gradeobj->aimcomment = $comment; } else if ($grade >= 0 && $grade <= $math_assignment->aimgrade && $comment) { // set override $gradeobj->aimtimemodified = time(); $gradeobj->aimoverride = AIMOVR_SET; - $gradeobj->aimcomment = $comment; $gradeobj->aimgrade = $grade; } else if ($grade >= 0 && !$comment) { // comment is required $err = 3; - } else { - $err = 2; // invalid entry } if (!isset($err)) { $err = update_record('math_assignment_grades', $gradeobj) ? 0 : 1; if (!$err) { ! redirect("view.php?id=$cm->id", get_string("changessaved") . "\n" . ! get_string("delaymessage", "math_assignment", format_time($CFG->maxeditingtime)), 2); } } --- 52,81 ---- unset($err); ! if (isset($grade) && isset($comment) && isset($adjustment)) { $grade = trim($grade); if ($grade == "-") { // reset override (clear grade) $gradeobj->aimgrade = -1; $gradeobj->aimoverride = AIMOVR_RESET; } else if ($grade == "") { // clear override (leave grade alone) $gradeobj->aimoverride = AIMOVR_RESET; } else if ($grade >= 0 && $grade <= $math_assignment->aimgrade && $comment) { // set override $gradeobj->aimtimemodified = time(); $gradeobj->aimoverride = AIMOVR_SET; $gradeobj->aimgrade = $grade; } else if ($grade >= 0 && !$comment) { // comment is required $err = 3; } + if ($adjustment <> "") { + $gradeobj->aimgrade = max(0,max(0,$gradeobj->aimgrade) + $adjustment - $gradeobj->aimadjustment); + $gradeobj->aimadjustment = $adjustment; + } + $gradeobj->aimcomment = $comment; if (!isset($err)) { $err = update_record('math_assignment_grades', $gradeobj) ? 0 : 1; if (!$err) { ! redirect("view.php?id=$cm->id&showgrades=true", get_string("changessaved"), 2); } } *************** *** 104,128 **** /// Print the main part of the page - $string->email = get_string("email"); - $string->location = get_string("location"); - $string->lastaccess = get_string("lastaccess"); - $string->activity = get_string("activity"); - $string->unenrol = get_string("unenrol"); - $string->loginas = get_string("loginas"); - $string->fullprofile = get_string("fullprofile"); - $string->role = get_string("role"); - $string->never = get_string("never"); - $string->name = get_string("name"); - $string->day = get_string("day"); - $string->days = get_string("days"); - $string->hour = get_string("hour"); - $string->hours = get_string("hours"); - $string->min = get_string("min"); - $string->mins = get_string("mins"); - $string->sec = get_string("sec"); - $string->secs = get_string("secs"); - $string->year = get_string("year"); - $string->route = get_string("route"); - $stroldgrade = get_string("oldgrade", "math_assignment"); $strnewgrade = get_string("newgrade", "math_assignment"); --- 104,107 ---- *************** *** 150,154 **** <tr valign="top"> <td colspan="2"> ! <?php print_user(get_user_info_from_db("id", $userid), $course, $string); ?> </td> </tr> --- 129,133 ---- <tr valign="top"> <td colspan="2"> ! <?php print_user(get_user_info_from_db("id", $userid), $course); ?> </td> </tr> *************** *** 197,200 **** --- 176,188 ---- <tr valign="top"> + <td align="right"><p><b><?php echo get_string('gradeadjustment','math_assignment'); ?>:</b></p></td> + <td> + <input type="text" name="adjustment" size="3" maxlength="20" + value="<?php if ($gradeobj->aimadjustment > 0) echo $gradeobj->aimadjustment+0;?>" /> + <?php echo get_string('explainadjustment','math_assignment'); ?> + </td> + </tr> + + <tr valign="top"> <td align="right"><p> <?php helpbutton ("editgrade_comment", $strcomment, "math_assignment"); ?> Index: email.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/email.php,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** email.php 16 Jan 2004 09:34:57 -0000 1.7 --- email.php 2 Mar 2004 21:11:51 -0000 1.8 *************** *** 50,56 **** $failed = 0; foreach ($students as $student) { ! // send email to the student ! if (!math_assignment_email_grades($course, $math_assignment, $student ,$teacher, $stremailnotice[$message])) ! $failed++; } } --- 50,60 ---- $failed = 0; foreach ($students as $student) { ! // send email to the student if he has actually handed in a script ! if ($student->papergrade > -1) { ! set_time_limit(10); ! if (!math_assignment_email_grades($course, $math_assignment, $student ,$teacher, $stremailnotice[$message])) { ! $failed++; ! } ! } } } Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** lib.php 29 Jan 2004 18:20:38 -0000 1.51 --- lib.php 2 Mar 2004 21:11:51 -0000 1.52 *************** *** 208,221 **** $time = time(); // look for assignments which need closing ! if ($math_assignments = get_records_sql("SELECT `id`,`course`,`name`,`papergrade`,`aimgrade`,`timedue` FROM `{$CFG->prefix}math_assignment` WHERE `papersheetsreturned` = '0' AND `timedue` < $time AND `papergrade` = '0'")) { ! foreach ($math_assignments as $math_assignment) { ! if ($course = get_record("course", "id", $math_assignment->course) && $students = math_assignment_get_grades($math_assignment)) ! math_assignment_email_all_grades($course, $math_assignment, $students); ! } ! } ! // look for emails which need sending ! /*$time = time() - $CFG->maxeditingtime; ! if ($grades = get_records_sql("SELECT * FROM `{$CFG->prefix}math_assignment_grades` WHERE `aimoverride` = '" . AIMOVR_SET . "' AND `timemodified` < '$time'")) { ! }*/ return true; } --- 208,219 ---- $time = time(); // look for assignments which need closing ! // this was too slow so I have disabled this ! // if ($math_assignments = get_records_sql("SELECT `id`,`course`,`name`,`papergrade`,`aimgrade`,`timedue` FROM `{$CFG->prefix}math_assignment` WHERE `papersheetsreturned` = '0' AND `timedue` < $time AND `papergrade` = '0'")) { ! // foreach ($math_assignments as $math_assignment) { ! // if ($course = get_record("course", "id", $math_assignment->course) && $students = math_assignment_get_grades($math_assignment)) ! // math_assignment_email_all_grades($course, $math_assignment, $students); ! // } ! // } ! return true; } *************** *** 225,230 **** /// indexed by user. It also returns a maximum allowed grade. ! $math_assignment = get_record("math_assignment", "id", $math_assignmentid); ! $return->maxgrade = $math_assignment->papergrade+ $math_assignment->aimgrade; $return->grades = math_assignment_get_grades($math_assignment, "id", "asc"); --- 223,229 ---- /// indexed by user. It also returns a maximum allowed grade. ! if (!$math_assignment = get_record("math_assignment", "id", $math_assignmentid)) { ! return NULL; ! } $return->maxgrade = $math_assignment->papergrade+ $math_assignment->aimgrade; $return->grades = math_assignment_get_grades($math_assignment, "id", "asc"); *************** *** 295,299 **** if($math_assignment->solutions) { ! if (math_assignment_is_tex_file($math_assignment->solutions) or $math_assignment->problems == 'default') $solurl = "$CFG->wwwroot/mod/math_assignment/pdfgen.php?id=$math_assignment->id&type=solutions"; else if ($math_assignment->solutionsisurl) --- 294,298 ---- if($math_assignment->solutions) { ! if (math_assignment_is_tex_file($math_assignment->solutions) or $math_assignment->solutions == 'default') $solurl = "$CFG->wwwroot/mod/math_assignment/pdfgen.php?id=$math_assignment->id&type=solutions"; else if ($math_assignment->solutionsisurl) *************** *** 388,391 **** --- 387,392 ---- $return .= math_assignment_help_button("try_quiz", $strtryquiz, false); $return .= "<br />\n"; + // Documentation + $return .= '<a href="http://aim.york.ac.uk:8080/spring04/doc/index.html" target="doc">AiM documentation</a><br />'; // Browse Source /*$strbrowsesource = get_string("browsesource", "math_assignment"); *************** *** 674,678 **** // make help links open in a new window ! $out = preg_replace("/<a(?:\s[^<>]*?|)\shref=(\"|'|)([^\"<>]*)\/help.html\\1(\s[^<>]*?|)>Help<\/a>/i", "<a href=\"\\2/help.html\"\\3 target=\"_popup\">Help</a>", $out); // put student picture on Quiz review page --- 675,679 ---- // make help links open in a new window ! $out = preg_replace("/<a(?:\s[^<>]*?|)\shref=(\"|'|)([^\"<>]*)\/help.html\\1(\s[^<>]*?|)>Help<\/a>/i", "<a href=\"../../help.php?module=math_assignment&file=student_help.html\"\\3 target=\"_popup\">Help</a>", $out); // put student picture on Quiz review page *************** *** 727,731 **** } if ($aimgrade >= 0 && $entry->aimoverride <= AIMOVR_RESET) { // don't update if the teacher has manually updated ! $entry->aimgrade = $aimgrade; $entry->aimtimemodified = time(); $changed = true; --- 728,732 ---- } if ($aimgrade >= 0 && $entry->aimoverride <= AIMOVR_RESET) { // don't update if the teacher has manually updated ! $entry->aimgrade = max(0,$aimgrade + $entry->aimadjustment); $entry->aimtimemodified = time(); $changed = true; *************** *** 751,756 **** /// Funtion which returns the total grade given a grade object ! return min(max($gradeobj->aimgrade, 0), $math_assignment->aimgrade) ! + min(max($gradeobj->papergrade, 0), $math_assignment->papergrade); } --- 752,757 ---- /// Funtion which returns the total grade given a grade object ! return (max(0, $gradeobj->aimgrade) ! + max(0, $gradeobj->papergrade)); } *************** *** 786,803 **** switch(strtolower($CFG->dbtype)) { ! case 'mysql': if (strcasecmp($sort, "totalgrade") == 0) $sortsql = "totalgrade $sortdir"; else $sortsql = "u.$sort $sortdir"; ! $students = get_records_sql("SELECT s.userid, u.firstname, u.lastname, u.email, u.username, u.mailformat, u.picture, g.papergrade, g.aimgrade, g.aimoverride, g.aimcomment, least(greatest(g.papergrade,0), $math_assignment->papergrade)+least(greatest(g.aimgrade,0), $math_assignment->aimgrade) AS totalgrade FROM {$CFG->prefix}user_students s LEFT JOIN {$CFG->prefix}user u ON s.course = '$math_assignment->course' AND u.id = s.userid LEFT JOIN {$CFG->prefix}math_assignment_grades g ON g.assignment = '$math_assignment->id' AND g.userid = s.userid WHERE u.deleted = '0' ORDER BY $sortsql"); break; default: // emulate ! $students = get_records_sql("SELECT userid,userid FROM {$CFG->prefix}user_students WHERE course = '$math_assignment->course'"); ! if ($students) { ! foreach ($students as $key => $student) { ! if ($students[$key] = get_record_sql("SELECT firstname, lastname, email, username, mailformat, picture FROM {$CFG->prefix}user WHERE id = '$key' AND deleted = '0'")) { ! $grade = get_record_sql("SELECT papergrade, aimgrade, aimoverride, aimcomment FROM {$CFG->prefix}math_assignment_grades WHERE assignment = '$math_assignment->id' and userid = '$key'"); if ($grade) { $students[$key]->papergrade = $grade->papergrade+0; --- 787,806 ---- switch(strtolower($CFG->dbtype)) { ! case 'mysqlll': if (strcasecmp($sort, "totalgrade") == 0) $sortsql = "totalgrade $sortdir"; else $sortsql = "u.$sort $sortdir"; ! $students = get_records_sql("SELECT s.userid, u.firstname, u.lastname, u.email, u.username, u.mailformat, u.picture, g.papergrade, g.aimgrade, g.aimoverride, g.aimcomment, greatest(g.papergrade,0)+greatest(g.aimgrade,0) AS totalgrade FROM {$CFG->prefix}user_students s LEFT JOIN {$CFG->prefix}user u ON s.course = '$math_assignment->course' AND u.id = s.userid LEFT JOIN {$CFG->prefix}math_assignment_grades g ON g.assignment = '$math_assignment->id' AND g.userid = s.userid WHERE u.deleted = '0' ORDER BY $sortsql"); break; default: // emulate ! $studentlist = get_records('user_students', 'course', $math_assignment->course); ! if ($studentlist) { ! foreach ($studentlist as $student) { ! if ($students[$student->userid] = get_record('user', 'id', $student->userid, 'deleted', 0)) { ! $key = $student->userid; ! $students[$key]->userid = $student->userid; ! $grade = get_record('math_assignment_grades', 'assignment', $math_assignment->id, 'userid', $student->userid); if ($grade) { $students[$key]->papergrade = $grade->papergrade+0; Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/mod.html,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** mod.html 29 Jan 2004 18:20:38 -0000 1.27 --- mod.html 2 Mar 2004 21:11:51 -0000 1.28 *************** *** 3,92 **** <?php ! ! require_once("$CFG->dirroot/mod/math_assignment/lib.php"); ! ! /* ! * Variables specific to this module are: ! * name, problems, solutions, aimsubject, aimquiz, papergrade, aimgrade, timedue, ! * solutiontime. ! * We check that these are setup here. ! */ ! if (!isset($form->name)) { ! $form->name = ""; ! } ! if (!isset($form->problems)) { ! $form->problems = ""; ! } ! if (!isset($form->problemscompile)) { ! $form->problemscompile = true; ! } ! if (!isset($form->solutions)) { ! $form->solutions = ""; ! } ! if (!isset($form->solutionscompile)) { ! $form->solutionscompile = true; ! } ! if (!isset($form->papersheetsreturned)) { ! $form->papersheetsreturned = 0; ! } ! if (!isset($form->aimquiz)) { ! $form->aimquiz = ""; ! } ! if (!isset($form->aimfocus)) { ! $form->aimfocus = 1; ! } ! if (!isset($form->papergrade)) { ! $form->papergrade = 10; ! } ! if (!isset($form->aimgrade)) { ! $form->aimgrade = 0; ! } ! if (!isset($form->timedue)) { ! $form->timedue = 0; ! } ! if (!isset($form->solutiontime)) { ! $form->solutiontime = 0; ! } ! // Now we set the defaults ! ! if (!$form->name) ! $form->name = get_string("modulename", "math_assignment") . ($form->section ? " $form->section" : ""); ! ! // get aimsubject from database ! if (!$aimsubject = get_field("math_assignment_subjects", "name", "course", $form->course)) ! $aimsubject = ""; ! ! // Process problems and solutions ! $form->problemsurl = ""; ! if ($form->problems) { ! if ($form->problemsisurl) { ! $form->problemsurl = $form->problems; $form->problems = ""; } ! } ! $form->solutionsurl = ""; ! if ($form->solutions) { ! if ($form->solutionsisurl) { ! $form->solutionsurl = $form->solutions; $form->solutions = ""; } ! } ! ! $strname = get_string("name"); ! $strtimedue = get_string("timedue", "math_assignment"); ! $strproblems = get_string("problems", "math_assignment"); ! $strsolutions = get_string("solutions", "math_assignment"); ! $strnone = get_string("none"); ! $struseuploaded = get_string("useuploaded", "math_assignment"); ! $stror = get_string("or", "math_assignment"); ! $struploadnew = get_string("uploadnew", "math_assignment"); ! $strexternalurl = get_string("externalurl", "math_assignment"); ! $strcompiletex = get_string("compiletex", "math_assignment"); ! $strmaxgrade = get_string("maxgrade", "math_assignment"); ! $straimsubject = get_string("aimsubject","math_assignment"); ! $straimquiz = get_string("aimquiz","math_assignment"); ! $straimstyle = get_string("aimstyle","math_assignment"); ! $strsolutiontime = get_string("solutiontime","math_assignment"); ! ?> --- 3,94 ---- <?php ! require_once("$CFG->dirroot/mod/math_assignment/lib.php"); ! ! /* ! * Variables specific to this module are: ! * name, problems, solutions, aimsubject, aimquiz, papergrade, aimgrade, timedue, ! * solutiontime. ! * We check that these are setup here. ! */ ! if (!isset($form->name)) { ! $form->name = ""; ! } ! if (empty($form->description)) { ! $form->description = ""; ! } ! if (!isset($form->problems)) { $form->problems = ""; } ! if (!isset($form->problemscompile)) { ! $form->problemscompile = true; ! } ! if (!isset($form->solutions)) { $form->solutions = ""; } ! if (!isset($form->solutionscompile)) { ! $form->solutionscompile = true; ! } ! if (!isset($form->papersheetsreturned)) { ! $form->papersheetsreturned = 0; ! } ! if (!isset($form->aimquiz)) { ! $form->aimquiz = ""; ! } ! if (!isset($form->aimfocus)) { ! $form->aimfocus = 1; ! } ! if (!isset($form->papergrade)) { ! $form->papergrade = 10; ! } ! if (!isset($form->aimgrade)) { ! $form->aimgrade = 0; ! } ! if (!isset($form->timedue)) { ! $form->timedue = 0; ! } ! if (!isset($form->solutiontime)) { ! $form->solutiontime = 0; ! } ! // Now we set the defaults ! ! if (!$form->name) ! $form->name = get_string("modulename", "math_assignment") . ($form->section ? " $form->section" : ""); ! ! // get aimsubject from database ! if (!$aimsubject = get_field("math_assignment_subjects", "name", "course", $form->course)) ! $aimsubject = ""; ! ! // Process problems and solutions ! $form->problemsurl = ""; ! if ($form->problems) { ! if ($form->problemsisurl) { ! $form->problemsurl = $form->problems; ! $form->problems = ""; ! } ! } ! $form->solutionsurl = ""; ! if ($form->solutions) { ! if ($form->solutionsisurl) { ! $form->solutionsurl = $form->solutions; ! $form->solutions = ""; ! } ! } ! ! $strname = get_string("name"); ! $strtimedue = get_string("timedue", "math_assignment"); ! $strproblems = get_string("problems", "math_assignment"); ! $strsolutions = get_string("solutions", "math_assignment"); ! $strnone = get_string("none"); ! $struseuploaded = get_string("useuploaded", "math_assignment"); ! $stror = get_string("or", "math_assignment"); ! $struploadnew = get_string("uploadnew", "math_assignment"); ! $strexternalurl = get_string("externalurl", "math_assignment"); ! $strcompiletex = get_string("compiletex", "math_assignment"); ! $strmaxgrade = get_string("maxgrade", "math_assignment"); ! $straimsubject = get_string("aimsubject","math_assignment"); ! $straimquiz = get_string("aimquiz","math_assignment"); ! $straimstyle = get_string("aimstyle","math_assignment"); ! $strsolutiontime = get_string("solutiontime","math_assignment"); ! ?> *************** *** 139,142 **** --- 141,153 ---- </tr> + <tr valign=top> + <td align=right> + <p><b><?php print_string("description", "math_assignment") ?>:</b></p> + </td> + <td> + <textarea cols="60" rows="8" name="description"><?php echo $form->description; ?></textarea> + </td> + </tr> + <tr valign="top"> <td align="right" nowrap="nowrap"> Index: pdfgen.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/pdfgen.php,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** pdfgen.php 29 Jan 2004 18:20:38 -0000 1.27 --- pdfgen.php 2 Mar 2004 21:11:51 -0000 1.28 *************** *** 11,15 **** optional_variable($seed, 0); // seed to be passed to AiM. 0 means no seed set. // This may be overruled by the student's saved seed. ! optional_variable($texmachine, remote); // This determines whether to do the texing // on a remote machine (manor in my case) or the local machine global $USER; --- 11,15 ---- optional_variable($seed, 0); // seed to be passed to AiM. 0 means no seed set. // This may be overruled by the student's saved seed. ! optional_variable($texmachine, local); // This determines whether to do the texing // on a remote machine (manor in my case) or the local machine global $USER; *************** *** 257,261 **** // Insert problem sheet id if ($type == "problems" and $seed > 0) { ! $latex = str_replace("\begin{document}", "\begin{document}\begin{flushright}Problem sheet ID: $seed\end{flushright}", $latex); } --- 257,261 ---- // Insert problem sheet id if ($type == "problems" and $seed > 0) { ! $latex = str_replace("\begin{document}", "\begin{document}\n\vspace{-25mm}\n\n\begin{flushright}\nProblem sheet ID: $seed\n\end{flushright}\n\n", $latex); } *************** *** 311,314 **** --- 311,318 ---- //$data = preg_replace("/id=\"question(\d+).(\d+)\"/i", // "<latex>\n\n\vspace{2mm}\\noindent{\\bf Part \$2}\n\n</latex>",$data); + // get rid of question part labels. + if ($type == "solutions") { + $data = preg_replace("/id=\"question(\d+).(\d+)\"/i", "",$data); + } $data = preg_replace("/id=\"question(\d+).(\d+)\"/i", "<latex>\n\n\vspace{1mm}\\noindent{\\bf (\$2)} </latex>",$data); Index: subjectpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/subjectpage.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** subjectpage.php 29 Jan 2004 18:20:38 -0000 1.6 --- subjectpage.php 2 Mar 2004 21:11:51 -0000 1.7 *************** *** 87,91 **** "", "", true, '', navmenu($course, $cm), $usexml); ! // Print the main part of the page --- 87,91 ---- "", "", true, '', navmenu($course, $cm), $usexml); ! echo '<div align="right"><a href="http://aim.york.ac.uk:8080/spring04/doc/index.html" target="doc">AiM documentation</a></div>'; // Print the main part of the page Index: view.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/view.php,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** view.php 29 Jan 2004 18:20:38 -0000 1.29 --- view.php 2 Mar 2004 21:11:51 -0000 1.30 *************** *** 347,350 **** --- 347,351 ---- } } + echo format_text($math_assignment->description); if ($inbox) print_simple_box_end(); *************** *** 379,394 **** } - $stredit = get_string("edit", "math_assignment"); - $stredited = get_string("edited", "math_assignment"); - $strcommented = get_string("commented", "math_assignment"); - $i = 1; ! foreach ($students as $student) { ! $picture = print_user_picture($student->userid, $course->id, $student->picture, false, true); if ($student->papergrade >= 0) $papergrade = $student->papergrade+0; else $papergrade = ""; ! $papergrade = "<input type=\"text\" name=\"$student->userid\" size=\"10\" maxlength=\"10\" value=\"$papergrade\" tabindex=\"$i\" />"; if ($student->aimgrade >= 0) $aimgrade = $student->aimgrade+0; --- 380,391 ---- } $i = 1; ! foreach ($students as $key => $student) { ! $picture = print_user_picture($key, $course->id, $student->picture, false, true); if ($student->papergrade >= 0) $papergrade = $student->papergrade+0; else $papergrade = ""; ! $papergrade = "<input type=\"text\" name=\"$student->userid\" size=\"4\" maxlength=\"10\" value=\"$papergrade\" tabindex=\"$i\" />"; if ($student->aimgrade >= 0) $aimgrade = $student->aimgrade+0; *************** *** 396,410 **** $aimgrade = ""; ! if ($student->aimoverride > AIMOVR_RESET) { ! $edited = "$stredited ("; ! $editedclose = ")"; ! } ! else if ($student->aimcomment) { ! $edited = "$strcommented ("; ! $editedclose = ")"; } else { $edited = ""; ! $editedclose = ""; } --- 393,403 ---- $aimgrade = ""; ! if (($student->aimoverride > AIMOVR_RESET) or $student->aimcomment) { ! $edited = '<span style="color:red;">'; ! $editedclose = '</span>'; } else { $edited = ""; ! $editedclose = ''; } *************** *** 424,435 **** if ($hasboth) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade, ! "$aimgrade $edited<a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\">$stredit</a>$editedclose ! <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\">$strreview</a>", $student->totalgrade); else if ($haspaper) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade); else if ($hasaim) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, ! "$aimgrade $edited<a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\">$stredit</a>$editedclose ! <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\">$strreview</a>"); $i++; --- 417,432 ---- if ($hasboth) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\"> ! <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> ! <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> ! <img src=\"$CFG->pixpath/i/log.gif\" alt\"$strreview\" border=\"0\"/></a>", $student->totalgrade+0); else if ($haspaper) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, $papergrade); else if ($hasaim) $table->data[] = array($picture, $student->firstname, $student->lastname, $email, ! "$edited$aimgrade$editedclose <a href=\"editgrade.php?id=$math_assignment->id&userid=$student->userid\"> ! <img src=\"$CFG->pixpath/i/edit.gif\" alt\"$stredit\" border=\"0\"/></a> ! <a href=\"aimpage.php?id=$cm->id&reviewstudent=$student->username&aimaction=reviewquiz\"> ! <img src=\"$CFG->pixpath/i/log.gif\" alt\"$strreview\" border=\"0\"/></a>"); $i++; |
From: <mo...@us...> - 2004-02-21 04:03:32
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20121 Modified Files: Random.mpl Log Message: bug fix in Nice/Trinomial Index: Random.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Random.mpl 20 Dec 2003 21:42:57 -0000 1.13 --- Random.mpl 21 Feb 2004 03:51:36 -0000 1.14 *************** *** 569,578 **** # defaults # x:=x; ! m:=Rand(1..3); ar:=[-3..-1,1..3]; br:=[-3..-1,1..3]; cr:=[-3..-1,1..3]; y:=x; ! n:=Rand(1..3); z:=1; p:=1; --- 569,579 ---- # defaults # x:=x; ! # choose them together so we don't get a duplicate power ! m,n:=Rand(Seq(1..3,2)); ar:=[-3..-1,1..3]; br:=[-3..-1,1..3]; cr:=[-3..-1,1..3]; y:=x; ! #n:=Rand(1..3); z:=1; p:=1; |
From: <mo...@us...> - 2004-02-16 03:26:26
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28791 Modified Files: RandArgCatalog.html Log Message: Updated documentation Index: RandArgCatalog.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/RandArgCatalog.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** RandArgCatalog.html 21 Jan 2004 22:53:13 -0000 1.2 --- RandArgCatalog.html 16 Feb 2004 03:18:41 -0000 1.3 *************** *** 108,112 **** <br clear="all" /><table border="0" width="100%"><tr><td> <table align="center"><tr><td nowrap="nowrap" align="center"> ! 4, 7, 1, 3, 3</td></tr></table> </td></tr></table> --- 108,112 ---- <br clear="all" /><table border="0" width="100%"><tr><td> <table align="center"><tr><td nowrap="nowrap" align="center"> ! 5, 8, 9, 7, 8</td></tr></table> </td></tr></table> [...7541 lines suppressed...] ! >z <i>e</i><sup>z</sup>, </td><td nowrap="nowrap" align="center"> ! 3 x<sup>2</sup> + 3 ! <div class="hrcomp"><hr noshade="noshade" size="1"/></div>x<sup>5</sup> y z<br /></td><td nowrap="nowrap" align="center"> ! , <font face="symbol">Ö</font ! >x y<sup><font face="symbol">-</font ! >6</sup> <i>e</i><sup>z</sup>, x<sup>2</sup> y<sup>3</sup> <font face="symbol">Ö</font ! >z</td></tr></table> </td></tr></table> *************** *** 4506,4509 **** by <a href="http://hutchinson.belmont.ma.us/tth/"> T<sub><font size="-1">T</font></sub>H</a>, ! version 3.30.<br />On 21 Jan 2004, 17:23.</small> </html> --- 4732,4735 ---- by <a href="http://hutchinson.belmont.ma.us/tth/"> T<sub><font size="-1">T</font></sub>H</a>, ! version 3.30.<br />On 15 Feb 2004, 15:38.</small> </html> |