Why the right(); command returns both sides of an expression? (SOLVED!)
04-01-2015, 03:45 AM (This post was last modified: 04-13-2015 04:50 PM by Spybot.)
Post: #1
 Spybot Member Posts: 178 Joined: Feb 2015
Why the right(); command returns both sides of an expression? (SOLVED!)
Hi Guys!

I have this code:

EXPORT TEST()
BEGIN
LOCAL M,BY,S,y,x;
INPUT(M,"Title","Label:");
BY:=CAS.y=M*CAS.x;
S:=CAS.right(BY);
MSGBOX(S);
END;

I'm trying to extract the right side of this expression (y=3x), using the right(); command, let's say I set M=3 ... then I expect to get: 3*x(no list format), but what I get is a list containing both sides of the equation. {y, 3*x}

Any Idea?

Spybot,

Spybot.
04-01-2015, 04:05 PM (This post was last modified: 04-01-2015 04:06 PM by Spybot.)
Post: #2
 Spybot Member Posts: 178 Joined: Feb 2015
RE: Why the right(); command returns both sides of an expression?
I've been using the right(); command in CAS view and it works correctly, but within a program it starts to misbehave (see screenshots).

I hope someone has an idea, why this command is behaving this way.

Thank you.

Spybot.
04-01-2015, 05:29 PM
Post: #3
 DrD Senior Member Posts: 1,132 Joined: Feb 2014
RE: Why the right(); command returns both sides of an expression?
The program is a HOME view construct, and right(BY) is following the rules as described in the help file for this verb.

If your program was a CAS construct, your results would perform as they do at the CAS command line.

Its the difference between HOME and CAS programs that create the results you see.
04-01-2015, 07:22 PM (This post was last modified: 04-02-2015 07:43 AM by Spybot.)
Post: #4
 Spybot Member Posts: 178 Joined: Feb 2015
RE: Why the right(); command returns both sides of an expression?
Hi DrD!

Is this what you mean?

#cas
test():=
BEGIN
LOCAL M,BY,S,y,x;
INPUT(M,"TITLE","LABEL:");
BY:=CAS.y=M*CAS.x;
S:=CAS.right(BY);
MSGBOX(S);
return 0;
END;
#end

Well it doesn't even execute. I went to CAS view and created this piece of code and I also checked the CAS option.

Spybot.
04-13-2015, 04:49 PM (This post was last modified: 04-13-2015 08:14 PM by Spybot.)
Post: #5
 Spybot Member Posts: 178 Joined: Feb 2015
RE: Why the right(); command returns both sides of an expression?
Hi Guys!!!

OK this is the way I found to solve my issue with the right(); command, from inside of a program, this command returns a list with both sides of the equation, all I did (after a long headache!) was taking the elements "Out of the list" that's it ... Done!.

Thanks to you Guys, I've been learning a lot about the Prime. here's the code... as simple as this:

EXPORT TEST()
BEGIN LOCAL M,B,BY;
INPUT({{M,[0]},{B,[0]}},"Title","m:","b:","Help");
BY:="y="+M+"*x+"+B+"";
BY:=CAS(BY);
BY:=CAS.right(BY);
PRINT();
PRINT("
Eqn. input by User:
"+exact(CAS("y="+M+"*x+"+B+""))+"
left side of the equation:
"+BY(1)+" //here is the trick.
right side of the equation:
"+BY(2)+" //here is the trick.

Thanks for Watching!");
END;

Spybot.

Spybot.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)