HP Forums
INPUT in cas/end program - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: INPUT in cas/end program (/thread-3610.html)



INPUT in cas/end program - salvomic - 04-10-2015 07:45 PM

hi all,
sorry if I repost a question:
I'm trying to upgrade my program to calculate the Fourier's Coefficient, it's a #cas/#end program, with a function (ChooseInterval()) to choose value for integral's interval.
At the moment it has two options ([0, 2PI] - [-PI, PI]), now I'm adding another option to enclose the case "Other", to calculate any interval.
But now (for case 3) I need to input two values for inf and sup values of interval.
I'm trying:
Code:

INPUT({low,hi}, "Interval",{"lower limit", "upper limit"}, {"input lower limit", "input upper limit"}, {0,2});
It works with a "Home" program, but not here: I get "Error: Invalid input"...

Any help?

Salvo


RE: INPUT in cas/end program - Han - 04-10-2015 08:55 PM

(04-10-2015 07:45 PM)salvomic Wrote:  hi all,
sorry if I repost a question:
I'm trying to upgrade my program to calculate the Fourier's Coefficient, it's a #cas/#end program, with a function (ChooseInterval()) to choose value for integral's interval.
At the moment it has two options ([0, 2PI] - [-PI, PI]), now I'm adding another option to enclose the case "Other", to calculate any interval.
But now (for case 3) I need to input two values for inf and sup values of interval.
I'm trying:
Code:

INPUT({low,hi}, "Interval",{"lower limit", "upper limit"}, {"input lower limit", "input upper limit"}, {0,2});
It works with a "Home" program, but not here: I get "Error: Invalid input"...

Any help?

Salvo

From http://www.hpmuseum.org/forum/thread-3590-post-32427.html#pid32427 :

Non-CAS programs can make use of "interface" commands such as CHOOSE() and INPUT() whereas CAS programs are generally not interactive. A workaround is to use the EXPR() command to call these commands indirectly. EXPR() works like CAS() in that both take input strings.


RE: INPUT in cas/end program - salvomic - 04-10-2015 09:08 PM

(04-10-2015 08:55 PM)Han Wrote:  Non-CAS programs can make use of "interface" commands such as CHOOSE() and INPUT() whereas CAS programs are generally not interactive. A workaround is to use the EXPR() command to call these commands indirectly. EXPR() works like CAS() in that both take input strings.

do you mean something like this?
Code:

EXPR(INPUT(T, "Period","period T", "input period T", 2));



RE: INPUT in cas/end program - Han - 04-10-2015 09:10 PM

(04-10-2015 09:08 PM)salvomic Wrote:  
(04-10-2015 08:55 PM)Han Wrote:  Non-CAS programs can make use of "interface" commands such as CHOOSE() and INPUT() whereas CAS programs are generally not interactive. A workaround is to use the EXPR() command to call these commands indirectly. EXPR() works like CAS() in that both take input strings.

do you mean something like this?
Code:

EXPR(INPUT(T, "Period","period T", "input period T", 2));

The argument for EXPR() must be a string such that, when parsed, is equivalent to the command you wish to issue.


RE: INPUT in cas/end program - salvomic - 04-11-2015 07:59 AM

(04-10-2015 09:10 PM)Han Wrote:  The argument for EXPR() must be a string such that, when parsed, is equivalent to the command you wish to issue.

ok, thank you!
I solved so:

Code:

inputT()
// input routine for choice 3
BEGIN
INPUT(T, "Interval", "Period T",  "Input T for [-T/2, T/2]", 2);
RETURN T;
END;

#cas
fourcoeff(args):=
// Coefficienti di Fourier...
BEGIN
// ...
CHOSE
// ...
IF scelta=3 THEN 
EXPR("FourCoeff.inputT()");
// input T for interval [-T/2, T/2] es. 2pi -> [-pi, pi], 2 -> [-1,1] ...
END;

DEFAULT RETURN("Choose periodicity interval");
END; // case

END;
#end