Date: Nov 21, 2012 7:51 PM
Author: Dr Reinhard Simonovits
Subject: Cannot calculate with Dynamic variables
Hi,

I have a problem with Dynamic variables.

This is a prototype of a grading scheme. In reality it is bigger. The

10 pts in initPtsPartAcome from the school.

The output cell should be deployed as a CDF file for the teacher. The

teacher enters the points of the students and gets a final mark.

I have two questions.

1) How can I limit the InputField to allow for integer numbers between 0

and 10? If I enter anything else, say a negative number or a symbol,

it should be cleared automatically.

2) In "Why don't the calculations work?" you see expressions with

Dynamic variables which I need to work with. What is wrong? What is the

solution?

DynamicModule[ {mark4 = 1/3,

mark3 = 0.51,

mark2 = 0.68,

mark1 = 0.80,

initPtsPartA = {

{10, 8, 10, 6},

{10, 5, 10, 5},

{10, 7, 10, 1}},

initPtsStudent, initPtsSchool, initPtsPartSum, numTable,

SchoolAPts, StudentAPts, StudentMinAchieved

},

numTable[x_, y_ /; OddQ[y]] := initPtsPartA[[x, y]];

numTable[x_, y_ /; EvenQ[y]] :=

InputField[Dynamic@initPtsPartA[[x, y]], Number,

ContinuousAction -> True, FieldSize -> 1];

initPtsPartSum[x_, y_, col_] :=

Dynamic@Total[initPtsPartA[[x ;; y, col]]];

SchoolAPts = (Total[initPtsPartA[[1 ;; 3, #]]] &) /@ {1, 3};

StudentAPts = (initPtsPartSum[1, 3, #] &) /@ {2, 4};

Column[{Grid[

Append[ Array[numTable, {3, 4}], (initPtsPartSum[1, 3, #] &) /@

Range[4]]],

{"Just Testing Values:", initPtsPartSum[1, 3, 1],

initPtsPartSum[1, 3, 2], initPtsPartSum[1, 3, 3],

initPtsPartSum[1, 3, 4], "Student Pts only:", StudentAPts},

{"Why don't the calculations work?",

Dynamic[5*initPtsPartSum[1, 3, 2] + 10],

Dynamic[initPtsPartSum[1, 3, 4] > 30],

Dynamic[ Total[(initPtsPartSum[1, 3, #] &) /@ Range[4]] ],

Dynamic[(Total@StudentAPts)]/(Total@SchoolAPts)},

{"Why don't the calculations work?",

StudentMinAchieved =

Dynamic[(StudentAPts[[1]]/SchoolAPts[[1]] >

mark4) && (StudentAPts[[2]]/SchoolAPts[[2]] > mark4)]}

}]

]

Liebe Grüße, Best wishes, Reinhard

--

*********************************************************

Dr. Reinhard Simonovits

Handelsakademie | Karl Franzens University

Math Department | Inst. for Mathematics

Grazbachgasse 71 | Heinrichstrasse 36

A-8010 Graz, Austria

Email: Reinhard.Simonovits@uni-graz.at

************************************************************