The reason I am calling Mac users is because you can Copy from a post and Paste into TI Connect and download it into your 84. Then run it. My problem in the past had centered around understanding a problem and then explaining what is happening. There are three programs below.

//. this is the first on it is used to set up the testing of REDUE22. call it anything you choose


Code:
{1,3,5,7,9,11,13,15,16}→⌊OVER1
prgmREDUE22


// the next program must be named REDUE22. In this program you will see a problem. You must Decide on an answer and use the number keys to enter the correct answer and then press the "enter" key. Then the program has a pause for you to see what has happened so you must press the "enter" key again to go on to the next problem


Code:
ClrDraw:CoordOff:GridOff:AxesOff:ZStandard:Full:FnOff:ClrHome:While 0:setup graph screen:End
Output(1,1,"REDUE 2 2
Pause:While 0:just a pause to let you see the program name:End
While 0:This starts the initialization routine:End
If not(isClockOn
ClockOn
ClrList ⌊JONL4
SetUpEditor ⌊JONL4
ClrList ⌊JONL5
SetUpEditor ⌊JONL5
ClrList ⌊JONL1
SetUpEditor ⌊JONL1
0→E
0→W
0→Xmin
94→Xmax
–62→Ymin
0→Ymax
ClrHome
While 0:This ends that routine:End
While 0: This starts the routine that inserts the "0s" into OVER:End
seq(0,J,1,16→⌊TEMP5
For(R,1,dim(⌊OVER1
⌊OVER1(R→⌊TEMP5(⌊OVER1(R
End
⌊TEMP5→⌊OVER1
While 0:This ends that routine:End
While 0:The three lines below are to check on the code above:End
Output(1,1,⌊OVER1
Pause
ClrHome
For(J,1,dim(⌊OVER1
While 0:The two lines below are for starting the skipping:End
If ⌊OVER1(J)=0
End
While 0:this routine clears line six of the graph screen:End
Text(6,0,"                                                                                               "
While 0:This ends that routine:End
While 0:This routine draws the lines to form the frames for the flash cards:End
Line(0,–19,94,–19
Line(0,–41,94,–41
Line(19,–19,19,–62
Line(38,–19,38,–62
Line(57,–19,57,–62
Line(76,–19,76,–62
While 0:This ends that routine:End
W+1→W
{6,32,8,9,10,3,12,16,6,4,42,7,8,6,7,11}→⌊FN002:While 0:FIRST NUMBER IN MATH PROBLEM:End
{20,20,20,20,20,42,42,42,42,42,20,20,20,20,20,42}→⌊FY002:While 0:Y VALUE FOR STARTING POINT OF PROBLEM & LOCATION OF FIRST NUMBER:End
{4,24,43,62,81,4,24,43,62,81,4,24,43,62,81,4}→⌊FX002:While 0:X VALUE FOR STARTING POINT OF PROBLEM & LOCATION OF FIRST NUMBER:End
Text(⌊FY002(J),⌊FX002(J),⌊FN002(J)
{6,32,8,18,20,6,24,1,1,8,42,14,16,12,8,12}→⌊SN002:While 0:SECOND NUMBER IN MATH:End
{26,26,26,34,34,57,57,50,50,57,26,34,34,34,34,57}→⌊SY002:While 0:VERTICAL VALUES FOR SECOND NUMBERS:End
Text(⌊SY002(J),⌊FX002(J),⌊SN002(J):While 0:PRINT SECOND NUMBER:End
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}→⌊SS002:While 0:THIS SETS THE OPERATOR SINE '1' FOR + , '2' FOR - AND '3' FOR X :End
If ⌊SS002(J)=1
Text(⌊FY002(J)+6,⌊FX002(J)-4,"+":While 0:PRINT +:End
If ⌊SS002(J)=2
Text(⌊FY002(J)+6,⌊FX002(J)-4,"–":While 0:PRINT –:End
If ⌊SS002(J)=3
Text(⌊FY002(J)+6,⌊FX002(J)-4,"x":While 0:PRINT X:End
{1,21,40,59,78,1,21,40,59,78,1,21,40,59,78,1}→⌊X1002:While 0:THESE ARE THE START VALUES FOR LINE VARIABLES:End
{–33,–33,–33,–33,–33,–56,–56,–56,–56,–56,–33,–33,–33,–33,–33,–56}→⌊Y1002:While 0:VERTICAL VALUES:End
{17,36,55,74,94,17,36,55,74,94,17,36,55,74,94,17}→⌊X2002:While 0:THESE ARE THE STOP VALUES FOR LINE STATEMENTS:End
Line(⌊X1002(J),⌊Y1002(J),⌊X2002(J),⌊Y1002(J)
{12,64,16,9,10,3,12,17,7,4,84,7,8,6,1,1}→⌊AN002:While 0:THE ANSWERS ARE STORED HERE:End
{34,34,34,26,26,49,49,57,57,49,34,26,26,26,26,49}→⌊UD002
Text(⌊UD002(J),⌊FX002(J),"?"
While 0:This routine starts the timer:End
startTmr→T
While 0:This ends that routine:End
While 0: This routine is a getkey to number converter and stops the timer:End
"(→Str9
Repeat (K=105 and length(Str9)>1)
getKey→K
If 2>abs(5-abs(10-abs(Ans-88
Str9+sub("7894561230.-",Ans-22-7int(.1Ans),1→Str9
End
checkTmr(T
(Ans=0)+Ans(Ans≠0→⌊JONL4(1+dim(⌊JONL4
While 0:This ends that routine:End
While 0: This routine indexes JONL5 for values of JONL4 that are > 3 seconds:End
0→dim(⌊JONL5
For(J,1,dim(⌊JONL4
If 3<⌊JONL4(J
J→⌊JONL5(1+dim(⌊JONL5
End
While 0:This ends that routine:End
While 0:This routine displays the reaction time:End
Text(12,0,"SUM COUNT ",⌊JONL4(dim(⌊JONL4)),"TOTAL COUNT ",sum(⌊JONL4
While 0:This ends that routine:End
While 0:This routine does a number of things. First it checks to see if the returned value from the child matches the value of stored in AN002(J) if so it prints "WAY TO GO DUDE" message. Second it prints the correct answer in the correct place in the correct flash card. Even when a mistake is made the child is shown the correct answer in the else section but gets and error message message         :End
If expr(Str9)=⌊AN002(J)
Then
Text(6,5," WAY TO GO DUDE
Text(⌊UD002(J),⌊FX002(J),⌊AN002(J)
Else
Text(⌊UD002(J),⌊FX002(J),⌊AN002(J)
E+1→E
prgmCLEAR6
Text(6,0,⌊AN002(J)," NOT ",expr(Str9)
J→⌊JONL1(1+dim(⌊JONL1
End
While 0:This the end of that For then else routine:End
While 0:Reaction time is measured between the appearance of the question mark prompt and the completion of the get key to number convewrter. This pause lets the child see what has happened at the end of each flash card:End
Pause
ClrDraw
End
While 0:This is the end of the "J" loop:End
While 0:This the beginning of the routine that combines JONL1 and JONL5 into OVER1 and recalls REDUE22:End
If 0=dim(⌊JONL1) and 0=dim(⌊JONL5
prgmMOD2
If 0=dim(⌊JONL1)
Then
⌊JONL5→⌊OVER1
prgmREDUE22
End
If 0=dim(⌊JONL5)
Then
⌊JONL1→⌊OVER1
prgmREDUE22
End
If 0≠dim(⌊JONL1) and 0≠dim(⌊JONL5
augment(⌊JONL1,⌊JONL5→⌊OVER1
SortA(⌊OVER1
augment({0},⌊OVER1→⌊OVER1
For(A,dim(ΔList(⌊OVER1)),1,–1
ΔList(⌊OVER1
If not(Ans(A
augment(seq(⌊OVER1(J),J,1,A-1),seq(⌊OVER1(J),J,A+1,dim(⌊OVER1→⌊OVER1
End
seq(⌊OVER1(J),J,2,dim(⌊OVER1→⌊OVER1
Output(5,1,"OVR
Output(5,6,⌊OVER1
Pause
ClrHome
prgmREDUE22
End
While 0:This is the end of that routine:End
End


// I have used this statement If J=3:STOP to look at what is happening in a certain location. There are certain locations where a simple stop will work but the If statement above will not work. I conclude that "J" does not exists in that location. Which makes no sense to me. Here is the code.


Code:
ClrHome
Output(1,1,"L4 "
Output(1,5,⌊JONL4
Output(2,1,"L5 "
Output(2,5,⌊JONL5
Output(3,1,"L1 "
Output(3,5,⌊JONL1
Output(4,1,"AN"
Output(4,5,⌊AN002(J)
Output(5,1,"NUM "
Output(5,5,expr(Str9)
Pause
1) Edited your post using [code] tags. Please edit your post to see how I used [code] tags, and try to use them in the future if possible. It makes your code a lot easier to read. Smile
2) SourceCoder 2.0 (http://sc.cemetech.net) contains similar copy-paste functionality for Windows (and Linux) users.
3) I'm staring at your code, I'll let you know if I have any inspiration
Do you run on the Mac? For a man with your experience some inspiration would be a good thing. If you do not run on the Mac, I think it would be very very difficult to understand what is happening. If you know site members who run on the Mac , would you be so kind as to encourage them to get this code downloaded and then run it to see what is happening. Very Happy
I noticed this line:

Code:
Text(6,0,"                                                                                               "

Would it be possible to change this to

Code:
:For(x,6,13)
:Line(0,-x,94,-x)
:end
:DelVar x

change "X" to any loop variable you want.
It would be a lot slower, but would not need all those spaces taking up memory.
I'm sorry but this doesn't seem Mac specific to me. There are no visible errors related to the Mac version of TI-Connect and program misunderstandings aren't because of the use of Mac.

And Kerm is correct, you can do roughly the same thing on SourceCoder 2. You'll just have a few extra steps to get it on your calculator.

For future reference though I run almost exclusively on OS X (10.6) so if you have any related problems feel free to PM me :)
I want the Mac users to copy and paste and send my code to their 84 so they can help debug this code. There may be a better way to clear a line of code that does not use up so much memory but this program is already 5433. Wink
In one of your other posts about this problem, didn't you say that that program had multiple (5+) other programs?
I did say that. You will notice I took then all out and put for example

While 0:This routine inserts "0" into OVER1:end
// in here you will see that code
While 0:This ends that routine:end

Wink
ok, thanks for clearing that up.
For Kerm,
In my plan to get this program running my first thought was to Download the programs to a USB stick and then send it by mail to an interested person.

A few days later I thought about Mac users who could cut and paste. Thus this post. As you can see I am not getting much action. Any suggestions to get keep this moving?

I am a retired electrical engineer. I decided that I wanted to spend the remainder of my good years, helping children with their math skills. A elementary school teacher told me if a child could not add, subtract, multiply and divide by the time they were out of the third grade they were lost forever.

I have been working on this problem for three months now. I have no idea what is wrong. I am desperate for a solution. I put in as much time each day that there is work that I know how to do. I am up early each day. A day like today is depressing. No new posts. Sad
_player1537 wrote:
I noticed this line:

Code:
Text(6,0,"                                                                                               "

Would it be possible to change this to

Code:
:For(x,6,13)
:Line(0,-x,94,-x)
:end
:DelVar x

change "X" to any loop variable you want.
It would be a lot slower, but would not need all those spaces taking up memory.


isn't he just trying to clear that "bar"?
what about

Code:
:"
:For(N,1,7
:Ans+Ans
:End
:Text(6,0,Ans
That line of code just clears line 6 on the graph screen. When I use your random congratulations program, there is a problem with using it and the Text error message, also in line 6, so I find it convent to clear line 6.

Am I clear? If not, please advise.
Very Happy
john massey wrote:
That line of code just clears line 6 on the graph screen. When I use your random congratulations program, there is a problem with using it and the Text error message, also in line 6, so I find it convent to clear line 6.

Am I clear? If not, please advise.
Very Happy


Got it. We were just trying to see if we could accomplish the same thing using less space. The code I suggested should accomplish the same thing, using less memory... though it's a tad slower.
So John, in the largest chunk of code in your first post, can you clarify where it functions correctly until and at one point it begins to malfunction? If you did indeed already say so, then I understood it to be right before the series of output statements.
Here is a post from "Getting a For loop to skip numbers". which is full of the detail I think you are looking for. I do not write very well. If you still do not understand, let me know. Another question for You. If you are not running the Mac, I could mail you a usb stick with all the code on it and you could see for yourself. I just have one stick. Being in the desperation mode and retired, I am willing to do anything but spend money.

Very Happy

Forget my last post. Here is my test report.
Record facts
Ran REDUE21
There are 10 flash cards on a graph screen. They start on the top row with five and read left to right. They number the same on the bottom row. There are always 16 problems. The correct answers are {12,64,16,9,10,3,12,17,7,4,84,7,8,6,1,1} Rather than discussing the problem I will use ANS 12 to refer to the first answer.There are two kinds of messages that are displayed on the 6th line of the graph screen. The first is a congratulation message when the answer is correct. The second is this code
Text(6,0,⌊AN002(J)," NOT ",expr(Str9) . ⌊AN002(J) refers to the correct answer for this particular flash card. expr(Str9) refers to the answer from the child. Let us say that ⌊AN002(J is 12 and that expr(Str9) is 11. On row 6 you should see "12 NOT 11"
In all the flash cards where there is an error the numbers are reversed. I will use short hand when commenting and just print N and the first and second numbers. Like N 64 9 The other thing that happens in this error condition is that another number shows up in another flash card. That is the horizontal graph screen coordinate is wrong. I will report this as RN 3,64. That means that 64 showed up in FC3. You will notice that when you see the data the first number is CN-1. As I review the data I notice that number in the next lower cell is the first number in the NOT statement
I will also refer to the flash cards as FC 1
Normally when I enter the correct number the first time I will get the above conditions. When this happened the problem is repeated a second time in the same location. This time when I input the correct answer I get the congratulation message and the program skips to another location and the process continues. When everything is OK I will print OK

Now for specific data:
Code:
FC1 ANS 12. N64 12 RN2,64 no repeat.
FC3 OK no repeate
FC5 ANS 10 N9 10 RN4,9 // RN first # is cell number second #is # in cell
On repeat OK
FC7 ANS 12 N3 12 RN6,3 // N first# in NOT message and second # follows
On repeat OK
FC9 ANS 7 N 17 7 RN8,17
On repeat OK
FC11 ANS 84 R4 84 RN9,4
On repeat OK
I forgot to mention something which may be of interest to you.
You will notice that the reason there is an error in the first flash card when the second number in the answer list is confused with the actual answer so that the first error message reads 64 Not 12.

To further understand that, I reversed the numbers 64 and 12 in the answer list. So that instead of {12,64 ... It read {64,12...

Well that worked fine for the first flash card and no further. I have no idea of how to continue the process, perhaps you do. Wink
I have found a better way to test with different results. I will report back when I have test results.
John, I haven't been following this from the start, but it seems if you just outputted Str9 directly, instead of trying to expr() on it when you show the incorrect answer, you'd be better off. I also have an assembly language error handler made by some of the guys at Detached Solutions. It would allow you to check answers without needing to worry that an incorrectly formatted answer being evaluted with expr() would crash your program.
I study and report back
I do not understand but am willing to try anything.

I would point out that there are two programs that are interrelated. In the first program all 16 flashcards are dsplayed. If there is an error in one of the flash cards that information is sent to the second. The second program is supposed to skip those problems which were with out error in the first program. The first program has the identical code that you are concerned about and it works fine.

Given all that I certainly am willing to try anything.

I am old and slow and my menory is in the tank so you will need to be very exanticg and specific in your directions on hoe to do this
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 3
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement