It will probably be easier to understand how the aplet works if you see it in action first so you may wish to
download the aplet from
The HP HOME View
and try it. Alternatively, simply read the summary below.
The first option on the
VIEWS
menu plots a set of axes and must be
chosen first. Once this is chosen the user can then choose the second
option on the
VIEWS
menu to explore the equation of a line. As you
press the up/down arrows the line moves vertically by changing the
value of ‘c’ in y = mx + c. Pressing the left/right arrows twists the line
by changing the gradient ‘m’.
On the pages following we will examine the code in detail, as it illustrates many highly important techniques.
Analysing the aplet
Since it is the first program run we will look first at the
program
.LINEXPL.S
.
Because the
VIEWS
menu entry for this is ‘Start’ it will be run automatically when the user presses
the
APLET
view. This is crucial because we can use this to set the initial values of various variables.
Including a
Start
option on your
VIEWS
menu is a very good idea. The single most important feature of this
particular entry is the fact that the
Exit View
was set to 7 (the
VIEWS
menu). This means that when the user
presses
in
the first thing they will see after this code executes is the
VIEWS
menu.
The variable
G
is being used here as a flag. A ‘flag’ is a programming term for a variable that is used to tell
whether or not some task has been done or some setting has been set correctly. Often the flag is set to 1 to
indicate true or 0 to indicate false. Before the ‘Explore’ option can be used we must be sure that the axes
have been plotted, and this will be done by checking the value of
G
. Zero will mean ‘unready’ and one will
mean ‘ready’. When the ‘Plot axes’ option is run the value of
G
will be set to 1 and this will be checked
before allowing the user to run the ‘Explore’ option.
, we ensure that the correct
value is going to be in
G
initially. If this check is not done then the code used later in
.LINEXPL.EX
will cause
the program to crash, which is obviously not something we want. The axes are also set back to the default
settings in case the user has changed them. It is possible to change them once the aplet is running but initially
we want them set to particular values that we know will work well.
By setting it to zero in the program which is run when the user presses
276