Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Cannot calculate with Dynamic variables

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128735] Cannot calculate with Dynamic variables
  • From: Reinhard Simonovits <Reinhard.Simonovits at uni-graz.at>
  • Date: Wed, 21 Nov 2012 19:51:15 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

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 at uni-graz.at
************************************************************




  • Prev by Date: Characteristics of a TransformedDistribution
  • Next by Date: Special characters on file names: issues with linux
  • Previous by thread: Characteristics of a TransformedDistribution
  • Next by thread: Re: Cannot calculate with Dynamic variables