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

MathGroup Archive 2012

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

Search the Archive

Re: Cannot calculate with Dynamic variables

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128778] Re: Cannot calculate with Dynamic variables
  • From: "Rolf.Mertig at gmail.com" <rolf.mertig at gmail.com>
  • Date: Sat, 24 Nov 2012 02:31:27 -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
  • References: <k8jsv3$5pi$1@smc.vnet.net>

Dear Reinhard,
something like this will work.
However, it is kind of difficult to enter 10 (you have to be fast, or
click back
into the InputField after typing the 1).
So I would suggest to use PopupMenu instead.

Rolf Mertig

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]],
    If[0 < # <= 10, initPtsPartA[[x, y]] = #, 0] &

    ], Number, ContinuousAction -> True, FieldSize -> 2];
 initPtsPartSum[x_, y_, col_] :=
  Setting[Dynamic@Total[initPtsPartA[[x ;; y, col]]]];
 SchoolAPts = (Total[initPtsPartA[[1 ;; 3, #]]] &) /@ {1, 3};
 StudentAPts = (initPtsPartSum[1, 3, #] &) /@ {2, 4};
 Dynamic@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}, {"seems to work now",
     5*initPtsPartSum[1, 3, 2] + 10, initPtsPartSum[1, 3, 4] > 30,
     Total[(initPtsPartSum[1, 3, #] &) /@
       Range[4]], (Total@StudentAPts)/(Total@
        SchoolAPts)}, {"seems to work now",
     StudentMinAchieved = (StudentAPts[[1]]/SchoolAPts[[1]] >
         mark4) && (StudentAPts[[2]]/SchoolAPts[[2]] > mark4)}}]]



  • Prev by Date: How to use a function "Manipulate" to SmoothHistogram3D
  • Next by Date: Re: non optimized inner for loops
  • Previous by thread: Cannot calculate with Dynamic variables
  • Next by thread: Special characters on file names: issues with linux