Program crashes G2
09-25-2019, 10:33 PM
Post: #1
 David Hayden Member Posts: 271 Joined: Dec 2013
Program crashes G2
I wrote the following program for the HHC programming contest. I didn't submit it because it frequently (but not always) crashed my Prime G2. I just verified that it crashes the virtual calculator also.

If I debug the program, press STEP a few times and CONT, it will run until the last statement (RETURN L1 and pause there. Pressing STEP causes it to crash.

Both the physical and virtual calcs are running the 20181016 version. I tried reformatting the C drive on the physical calculator but that didn't help. Any thoughts?

The program finds 3-digit numbers that are equal to the sum of the cubes of their digits.

Thanks,
Dave

Code:
EXPORT CUBES() BEGIN LOCAL S1:=0,S2:=0,S3:=0; // PARTIAL SUMS LOCAL N1:=0,N2:=0,N3:=0,C:=0;  // THE NUM LOCAL L1 := {}; LOCAL X,Y,Z; FOR X FROM 1 TO 9 DO   S1 := X*X*X;   N1 := 100*X;   FOR Y FROM 0 TO 9 DO     S2 := S1 + Y*Y*Y;     N2 := N1 + 10*Y;     FOR Z FROM 0 TO 9 DO       S3 := S2 + Z*Z*Z;       N3 := N2 + Z;       IF S3 > N2+9 THEN //  PRINT("LEAVING W"+N3);         BREAK;       END; C:=C+1;       IF N3 = S3 THEN         L1 := CONCAT(L1,N3);       END;     END;   END; END; // PRINT(C); RETURN L1; END;
09-25-2019, 11:15 PM
Post: #2
 Albert Chan Senior Member Posts: 695 Joined: Jul 2018
RE: Program crashes G2
(09-25-2019 10:33 PM)David Hayden Wrote:  I wrote the following program for the HHC programming contest. I didn't submit it because it frequently (but not always) crashed my Prime G2. I just verified that it crashes the virtual calculator also.

Tried it on XCas. It crashes too.

My guess the problem is this line
Code:
LOCAL L1 := {};

On XCas, it seems impossible to create an empty list.
So, I go around the bug, and set L1 = [0]

XCas> CUBES() ﻿ ﻿ ﻿ ﻿ → [0,153,370,371,407]
09-26-2019, 02:18 AM (This post was last modified: 09-26-2019 02:21 AM by Gene222.)
Post: #3
 Gene222 Member Posts: 95 Joined: Feb 2015
RE: Program crashes G2
(09-25-2019 11:15 PM)Albert Chan Wrote:  My guess the problem is this line
Code:
LOCAL L1 := {};

On XCas, it seems impossible to create an empty list.
So, I go around the bug, and set L1 = [0]

XCas> CUBES() ﻿ ﻿ ﻿ ﻿ → [0,153,370,371,407]

The program works on my Prime version A in both Home and CAS. Haden might want to step through the program with debug and watch variables L1, X, Y, and Z to confirm L1 is not being defined on the G2. Maybe it is related to the problems with BREAK.
09-26-2019, 07:00 AM (This post was last modified: 09-27-2019 04:40 AM by toml_12953.)
Post: #4
 toml_12953 Senior Member Posts: 1,135 Joined: Dec 2013
RE: Program crashes G2
(09-25-2019 10:33 PM)David Hayden Wrote:  If I debug the program, press STEP a few times and CONT, it will run until the last statement (RETURN L1 and pause there. Pressing STEP causes it to crash.
Thanks,
Dave

I press STEP a few times then CONT and my G2 doesn't halt on the RETURN L1. It just displays the list and ends.

Tom L

People may say I'm inept but I consider myself to be totally ept.
09-26-2019, 11:36 AM
Post: #5
 David Hayden Member Posts: 271 Joined: Dec 2013
RE: Program crashes G2
Albert Chan Wrote:My guess the problem is this line
Code:
LOCAL L1 := {};
Thanks Albert. WHen I change {} to {0} it runs fine. Curiously, if I change it back to {} and then back to {0} again, it crashes. Perhaps running it with {} corrupts something.

But then again, it was crashing in earlier versions that PRINTed the results to the terminal instead of putting them in a list.

Gene222 Wrote:Maybe it is related to the problems with BREAK
I wasn't aware of BREAK problems. Stranger and stranger!
09-26-2019, 01:18 PM
Post: #6
 grsbanks Senior Member Posts: 886 Joined: Jan 2017
RE: Program crashes G2
(09-26-2019 11:36 AM)David Hayden Wrote:  I wasn't aware of BREAK problems. Stranger and stranger!