Hi Mark,
Sure. The problem requires students to "write" a matrix equation. I was going
to include a snip of the displayed XML, but this email format will not allow me
to paste a figure.
This is the perl script:
<answer type="loncapa/perl">
$total_score = 0;
# These submission variables appear to be local to this perl script
section only.
($ZR11,$ZX11,$ZR12,$ZX12,$ZR13,$ZX13,$I11,$E11mag,$E11ph,
$ZR21,$ZX21,$ZR22,$ZX22,$ZR23,$ZX23,$I21,$E21mag,$E21ph,
$ZR31,$ZX31,$ZR32,$ZX32,$ZR33,$ZX33,$I31,$E31mag,$E31ph) =
@$submission;
# In these if stmts, conditionals cannot distinguish between 0 and null,
# and counts null or any string as correct for "I1", "I2", or "I3"
if ($ZR11==$R1 && $ZX11==-$X_C1) {$total_score = 1/15;}
if ($ZR12==-$R1 && $ZX12=="0") {$total_score =
$total_score + 1/15;}
if ($ZR13=="0" && $ZX13=="0") {$total_score =
$total_score + 1/15;}
if ($ZR21==-$R1 && $ZX21==0) {$total_score =
$total_score + 1/15;}
if ($ZR22==$R1 && $ZX22==$X_L1-$X_C2) {$total_score =
$total_score + 1/15;}
if ($ZR23==0 && $ZX23==$X_C2) {$total_score =
$total_score + 1/15;}
if ($ZR31==0 && $ZX31==0) {$total_score =
$total_score + 1/15;}
if ($ZR32==0 && $ZX32==$X_C2) {$total_score =
$total_score + 1/15;}
if ($ZR33==$R2 && $ZX33==-$X_C2-$X_C3) {$total_score =
$total_score + 1/15;}
if ($I11=="I1") {$total_score =
$total_score + 1/15;}
if ($I21=="I2") {$total_score =
$total_score + 1/15;}
if ($I31=="I3") {$total_score =
$total_score + 1/15;}
if ($E11mag==$E1mag && $E11ph==$E1ph) {$total_score =
$total_score + 1/15;}
if ($E21mag==$E2mag && $E21ph==$E2ph) {$total_score =
$total_score + 1/15;}
if ($E31mag==0 && $E31ph==0) {$total_score =
$total_score + 1/15;}
return ('ASSIGNED_SCORE',$total_score);
</answer>
The equation is a 3x3 impedance (Z) matrix multiplied by a 3-element current
column vector to get a 3-element voltage column vector. The Z matrix elements
are complex values in rectangular form, but the real and imaginary parts are
processed separately as real integers. That part works fine. The problem is
that nothing needs to be entered at all for the zero values; no entry is still
evaluated as correct. As you can see above, I have tried processing them as
both numeric (0) and text ("0") but neither approach works.
The intent of the current column vector elements (the variables in this
equation) is for students to enter the variables as text values: I1, I2, and I3.
The voltage column vector elements are complex values in polar form, magnitude
in V and phase in degrees. Both values are processed as real numbers.
The XML displays appropriate units by each element of the Z matrix and V column
vector, so no units processing is needed.
The order of the variables in the submission input/assignment statement is
dictated by the XML display of the matrix. The other variables, like $R1,
$X_C2, $E2ph, etc., are given variables from the perl script at the beginning
of the problem.
BR,
Gene L. Harding, PE
Associate Professor of ECET
Purdue University
574-520-4190
https://polytechnic.purdue.edu/south-bend/
-----Original Message-----
From: LON-CAPA-users <[email protected]> On Behalf Of
Lucas, Mark
Sent: Thursday, March 26, 2020 2:18 PM
To: Discussion list for LON-CAPA users <[email protected]>
Subject: Re: [LON-CAPA-users] Custom Response Question
Gene,
Could you post sample variables and perhaps an example of the perl you are
trying to use?
What does the array look like? What are some typical variables? (or at least
analogs if you don’t want to give away content).
Mark
> On Mar 26, 2020, at 2:14 PM, Harding, Gene L <[email protected]> wrote:
>
> Hi,
>
> I am trying to do something with a customresponse part that I cannot do
> really cleanly with normal response types, but am having some trouble
> evaluating the inputs. The inputs include numeric and text values as part of
> a single array input. I am having to problems:
> 1. I have not been able to figure out a way, in the “if” statements, to
> distinguish between a zero (0) answer and a null (“”) answer.
> 2. The string components evaluate to true for any text value. Only
> numeric entries evaluate as false.
>
> My questions:
> 1. Is there a way to distinguish between a 0 and a null (i.e., no)
> response?
> 2. Is it possible to input both numeric and string values in separate
> textline inputs within one customresponse section?
>
> Best regards,
>
> Gene L. Harding, PE
> Associate Professor of ECET
> Purdue University
> 574-520-4190
> https://polytechnic.purdue.edu/south-bend/
>
> _______________________________________________
> LON-CAPA-users mailing list
> [email protected]
> https://nam03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.
> lon-capa.org%2Fmailman%2Flistinfo%2Flon-capa-users&data=02%7C01%7C
> lucasm%40ohio.edu%7Ce9661e81abe94f8dee6a08d7d1b1a400%7Cf3308007477c4a7
> 0888934611817c55a%7C0%7C0%7C637208433204394095&sdata=pc8Q9TIuMr9Jn
> d6QU5ew62C9XjFU7XKCzY%2BcXlc40Mg%3D&reserved=0
--
Mark Lucas email:
[email protected]
252D Clippinger Lab phone:
(740)597-2984
Department of Physics and Astronomy fax: (740)593-0433
Ohio University
Athens, OH 45701
_______________________________________________
LON-CAPA-users mailing list
[email protected]
http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
_______________________________________________
LON-CAPA-users mailing list
[email protected]
http://mail.lon-capa.org/mailman/listinfo/lon-capa-users