Reviews & Opinions

# HP 48G Graphing Calculator

Here you can find all about HP 48G Graphing Calculator like manual and other informations. For example: review.

On the bottom of page users can write a review. If you own a HP 48G Graphing Calculator please write about it to help other people.
[ Report abuse or wrong photo | Share your HP 48G Graphing Calculator photo ]

# Manual

Preview of first few manual pages (at low quality). Check before download. Click to enlarge.

 Download (English)HP 48G Graphing Calculator, size: 28.0 MB Related manuals HP 48G Graphing Calculator 48G Series_quick Start Guide__e_00048-90126.pdf

### User reviews and opinions

No opinions have been provided. Be the first and add a new opinion/review.

### Documents

Real number functions in the MTH menu
The MTH (MaTHematics) menu include a number of mathematical functions mostly applicable to real numbers. To access the MTH menu, use the keystroke combination. With the default setting of CHOOSE boxes for system flag 117 (see Chapter 2), the MTH menu is shown as the following menu list:

#### Page 3-7

As they are a great number of mathematic functions available in the calculator, the MTH menu is sorted by the type of object the functions apply on. For example, options 1. VECTOR., 2. MATRIX., and 3. LIST. apply to those data types (i.e., vectors, matrices, and lists) and will discussed in more detail in subsequent chapters. Options 4. HYPERBOLIC. and 5. REAL. apply to real numbers and will be discussed in detailed herein. Option 6. BASE. is used for conversion of numbers in different bases, and is also to be discussed in a separate chapter. Option 7. PROBABILITY. is used for probability applications and will be discussed in an upcoming chapter. Option 8. FFT. (Fast Fourier Transform) is an application of signal processing and will be discussed in a different chapter. Option 9. COMPLEX. contains functions appropriate for complex numbers, which will be discussed in the next chapter. Option 10. CONSTANTS provides access to the constants in the calculator. This option will be presented later in this section. Finally, option 11. SPECIAL FUNCTIONS. includes functions of advanced mathematics that will be discussed in this section also. In general, to apply any of these functions you need to be aware of the number and order of the arguments required, and keep in mind that, in ALG mode you should select first the function and then enter the argument, while in RPN mode, you should enter the argument in the stack first, and then select the function. Using calculator menus: 1. Since the operation of MTH functions (and of many other calculator menus) is very similar, we will describe in detail the use of the 4. HYPERBOLIC. menu in this section, with the intention of describing the general operation of calculator menus. Pay close attention to the process for selecting different options. 2. To quickly select one of the numbered options in a menu list (or CHOOSE box), simply press the number for the option in the keyboard. For

#### Page 3-8

example, to select option 4. HYPERBOLIC. in the MTH menu, simply press 4.

The user will recognize most of these units (some, e.g., dyne, are not used very often nowadays) from his or her physics classes: N = newtons, dyn = dynes, gf = grams force (to distinguish from gram-mass, or plainly gram, a

#### Page 3-17

unit of mass), kip = kilo-poundal (1000 pounds), lbf = pound-force (to distinguish from pound-mass), pdl = poundal. To attach a unit object to a number, the number must be followed by an underscore. Thus, a force of 5 N will be entered as 5_N. For extensive operations with units SOFT menus provide a more convenient way of attaching units. Change system flag 117 to SOFT menus (see Chapter 1), and use the keystroke combination to get the following menus. Press L to move to the next menu page.
Pressing on the appropriate soft menu key will open the sub-menu of units for that particular selection. For example, for the @)SPEED sub-menu, the following units are available:
Pressing the soft menu key @)UNITS will take you back to the UNITS menu. Recall that you can always list the full menu labels in the screen by using , e.g., for the @)ENRG set of units the following labels will be listed:
Note: Use the L key or the keystroke sequence to navigate through the menus.

#### Available units

The following is a list of the units available in the UNITS menu. The unit symbol is shown first followed by the unit name in parentheses:

#### Page 3-18

LENGTH m (meter), cm (centimeter), mm (millimeter), yd (yard), ft (feet), in (inch), Mpc (Mega parsec), pc (parsec), lyr (light-year), au (astronomical unit), km (kilometer), mi (international mile), nmi (nautical mile), miUS (US statute mile), chain (chain), rd (rod), fath (fathom), ftUS (survey foot), Mil (Mil), (micron), (Angstrom), fermi (fermi) AREA m^2 (square meter), cm^2 (square centimeter), b (barn), yd^2 (square yard), ft^2 (square feet), in^2 (square inch), km^2 (square kilometer), ha (hectare), a (are), mi^2 (square mile), miUS^2 (square statute mile), acre (acre) VOLUME m^3 (cubic meter), st (stere), cm^3 (cubic centimeter), yd^3 (cubic yard), ft^3 (cubic feet), in^3 (cubic inch), l (liter), galUK (UK gallon), galC (Canadian gallon), gal (US gallon), qt (quart), pt (pint), ml (mililiter), cu (US cup), ozfl (US fluid ounce), ozUK (UK fluid ounce), tbsp (tablespoon), tsp (teaspoon), bbl (barrel), bu (bushel), pk (peck), fbm (board foot) TIME yr (year), d (day), h (hour), min (minute), s (second), Hz (hertz) SPEED m/s (meter per second), cm/s (centimeter per second), ft/s (feet per second), kph (kilometer per hour), mph (mile per hour), knot (nautical miles per hour), c (speed of light), ga (acceleration of gravity ) MASS kg (kilogram), g (gram), Lb (avoirdupois pound), oz (ounce), slug (slug), lbt (Troy pound), ton (short ton), tonUK (long ton), t (metric ton), ozt (Troy ounce), ct (carat), grain (grain), u (unified atomic mass), mol (mole) FORCE N (newton), dyn (dyne), gf (gram-force), kip (kilopound-force), lbf (poundforce), pdl (poundal)

#### Page 3-19

ENERGY J (joule), erg (erg), Kcal (kilocalorie), Cal (calorie), Btu (International table btu), ftlbf (foot-pound), therm (EEC therm), MeV (mega electron-volt), eV (electronvolt) POWER W (watt), hp (horse power), PRESSURE Pa (pascal), atm (atmosphere), bar (bar), psi (pounds per square inch), torr (torr), mmHg (millimeters of mercury), inHg (inches of mercury), inH20 (inches of water), TEMPERATURE C (degree Celsius), o F (degree Fahrenheit), K (Kelvin), o R (degree Rankine), ELECTRIC CURRENT (Electric measurements) V (volt), A (ampere), C (coulomb), (ohm), F (farad), W (watt), Fdy (faraday), H (henry), mho (mho), S (siemens), T (tesla), Wb (weber ) ANGLE (planar and solid angle measurements) (sexagesimal degree), r (radian), grad (grade), arcmin (minute of arc), arcs (second of arc), sr (steradian)
LIGHT (Illumination measurements) fc (footcandle), flam (footlambert), lx (lux), ph (phot), sb (stilb), lm (lumem), cd (candela), lam (lambert) RADIATION Gy (gray), rad (rad), rem (rem), Sv (sievert), Bq (becquerel), Ci (curie), R (roentgen) VISCOSITY P (poise), St (stokes)

#### Page 3-20

Units not listed Units not listed in the Units menu, but available in the calculator include: gmol (gram-mole), lbmol (pound-mole), rpm (revolutions per minute), dB (decibels). These units are accessible through menu 117.02, triggered by using MENU(117.02) in ALG mode, or 117.02 ` MENU in RPN mode. The menu will show in the screen as follows (use to show labels in display):
These units are also accessible through the catalog, for example: gmol: lbmol: rpm: dB: N~g N~l N~r N~d

#### Converting to base units

To convert any of these units to the default units in the SI system, use the function UBASE. For example, to find out what is the value of 1 poise (unit of viscosity) in the SI units, use the following: In ALG mode, system flag 117 set to CHOOSE boxes: Select the UNITS menu @@OK@@ Select the TOOLS menu @@OK@@ Select the UBASE function 1 Enter 1 and underline Select the UNITS menu @@OK@@ Select the VISCOSITY option @@OK@@ Select the UNITS menu ` Convert the units

#### Page 3-21

This results in the following screen (i.e., 1 poise = 0.1 kg/(ms)):

#### Page 12-24

Press @ERASE @DRAW to draw the parametric plot. Press @EDIT L @LABEL @MENU to see the graph with labels. The window parameters are such that you only see half of the labels in the x-axis.
Press L to recover the menu. Press L@)PICT to recover the original graphics menu. Press TRACE @(X,Y)@ to determine coordinates of any point on the graph. Use and to move the cursor about the curve. At the bottom of the screen you will see the value of the parameter t and coordinates of the cursor as (X,Y). Press L@CANCL to return to the PLOT WINDOW environment. Then, press \$ , or L@@@OK@@@, to return to normal calculator display.
A review of your soft menu key labels shows that you now have the following variables: t, EQ, PPAR, Y, X, g, 0, V0, Y0, X0. Variables t, EQ, and PPAR are generated by the calculator to store the current values of the parameter, t, of the equation to be plotted EQ (which contains X(t) + IY(t)), and the plot parameters. The other variables contain the values of constants used in the definitions of X(t) and Y(t). You can store different values in the variables and produce new parametric plots of the projectile equations used in this example. If you want to erase the current picture contents before producing a new plot, you need to access either the PLOT, PLOT WINDOW, or PLOT SETUP screens, by pressing, , , or (the two keys must be pressed simultaneously

#### Page 12-25

if in RPN mode). Then, press @ERASE @DRAW. Press @CANCL to return to the PLOT, PLOT WINDOW, or PLOT SETUP screen. Press \$, or L@@@OK@@@, to return to normal calculator display.
Generating a table for parametric equations
In an earlier example we generated a table of values (X,Y) for an expression of the form Y=f(X), i.e., a Function type of graph. In this section, we present the procedure for generating a table corresponding to a parametric plot. For this purpose, well take advantage of the parametric equations defined in the example above. First, lets access the TABLE SETUP window by pressing , simultaneously if in RPN mode. For the independent variable change the Starting value to 0.0, and the Step value to 0.1. Press @@@OK@@@. Generate the table by pressing, simultaneously if in RPN mode,. The resulting table has three columns representing the parameter t, and the coordinates of the corresponding points. For this table the coordinates are labeled X1 and Y1.
Use the arrow keys, , to move about the table. Press \$ to return to normal calculator display.
This procedure for creating a table corresponding to the current type of plot can be applied to other plot types.
Plotting the solution to simple differential equations
The plot of a simple differential equation can be obtained by selecting Diff Eq in the TYPE field of the PLOT SETUP environment as follows: suppose that we want to plot x(t) from the differential equation dx/dt = exp(-t2), with initial conditions: x = 0 at t = 0. The calculator allows for the plotting of the solution

In Chapter 11 we presented some functions that are available in the graphics screen for analyzing graphics of functions of the form y = f(x). These functions include (X,Y) and TRACE for determining points on the graph, as well as functions in the ZOOM and FCN menu. The functions in the ZOOM menu allow the user to zoom in into a graph to analyze it in more detail. These functions are described in detail in Chapter 12. Within the functions of the FCN menu, we can use the functions SLOPE, EXTR, F, and TANL to determine the slope of a tangent to the graph, the extrema (minima and

#### Page 13-7

maxima) of the function, to plot the derivative, and to find the equation of the tangent line. Try the following example for the function y = tan(x). Press , simultaneously in RPN mode, to access to the PLOT SETUP window. Change TYPE to FUNCTION, if needed, by using [@CHOOS]. Press and type in the equation TAN(X). Make sure the independent variable is set to X. Press L @@@OK@@@ to return to normal calculator display. Press , simultaneously, to access the PLOT window Change H-VIEW range to 2 to 2, and V-VIEW range to 5 to 5. Press @ERASE @DRAW to plot the function in polar coordinates. The resulting plot looks as follows:
Notice that there are vertical lines that represent asymptotes. These are not part of the graph, but show points where TAN(X) goes to at certain values of X. Press @TRACE @(X,Y)@, and move the cursor to the point X: 1.08E0, Y: 1.86E0. Next, press L@)@FCN@ @SLOPE. The result is Slope: 4.45010547846. Press LL@TANL. This operation produces the equation of the tangent line, and plots its graph in the same figure. The result is shown in the figure below:

#### Page 13-8

Press L @PICT @CANCL \$ to return to normal calculator display. Notice that the slope and tangent line that you requested are listed in the stack.

#### Function DOMAIN

Function DOMAIN, available through the command catalog (N), provides the domain of definition of a function as a list of numbers and specifications. For example,
indicates that between and 0, the function LN(X) is not defined (?), while from 0 to +, the function is defined (+). On the other hand,
indicates that the function is not defined between and -1, nor between 1 and +. The domain of this function is, therefore, -1<X<1.

#### Function TABVAL

This function is accessed through the command catalog or through the GRAPH sub-menu in the CALC menu. Function TABVAL takes as arguments a function of the CAS variable, f(X), and a list of two numbers representing a domain of interest for the function f(X). Function TABVAL returns the input values plus the range of the function corresponding to the domain used as input. For example,

A function defined in a region of space such as (x,y,z) is known as a scalar field, examples are temperature, density, and voltage near a charge. If the function is defined by a vector, i.e., F(x,y,z) = f(x,y,z)i+g(x,y,z)j+h(x,y,z)k, it is referred to as a vector field. The following operator, referred to as the del or nabla operator, is a vectorbased operator that can be applied to a scalar or vector function:

#### [ ] = i

[ ]+ j [ ]+ k [ x y z
When this operator is applied to a scalar function we can obtain the gradient of the function, and when applied to a vector function we can obtain the divergence and the curl of that function. A combination of gradient and divergence produces another operator, called the Laplacian of a scalar function. These operations are presented next.
The gradient of a scalar function (x,y,z) is a vector function defined by

+ j +k x y z
The dot product of the gradient of a function with a given unit vector represents the rate of change of the function along that particular vector. This rate of change is called the directional derivative of the function, Du(x,y,z) = u.

#### Page 15-1

At any particular point, the maximum rate of change of the function occurs in the direction of the gradient, i.e., along a unit vector u = /||. The value of that directional derivative is equal to the magnitude of the gradient at any point Dmax(x,y,z) = /|| = || The equation (x,y,z) = 0 represents a surface in space. It turns out that the gradient of the function at any point on this surface is normal to the surface. Thus, the equation of a plane tangent to the curve at that point can be found by using a technique presented in Chapter 9. The simplest way to obtain the gradient is by using function DERIV, available in the CALC menu, e.g.,
A program to calculate the gradient
The following program, which you can store into variable GRADIENT, uses function DERIV to calculate the gradient of a scalar function of X,Y,Z. Calculations for other base variables will not work. If you work frequently in the (X,Y,Z) system, however, this function will facilitate calculations: << X Y Z 3 ARRY DERIV >>
Type the program while in RPN mode. After switching to ALG mode, you can call the function GRADIENT as in the following example:
Using function HESS to obtain the gradient
The function HESS can be used to obtain the gradient of a function as shown next. As indicated in Chapter 14, function HESS takes as input a function of

#### Page 15-2

n independent variables (x1, x2, ,xn), and a vector of the functions [x1 x2xn]. Function HESS returns the Hessian matrix of the function , defined as the matrix H = [hij] = [/xixj], the gradient of the function with respect to the n-variables, grad f = [ /x1, /x2 , /xn], and the list of variables [x1 x2xn]. Consider as an example the function (X,Y,Z) = X2 + XY + XZ, well apply function HESS to this scalar field in the following example in RPN mode:

Use of the function H(X) with LDEC, LAP, or ILAP, is not allowed in the calculator. You have to use the main results provided earlier when dealing with the Heaviside step function, i.e., L{H(t)} = 1/s, L -1{1/s}=H(t), L{H(t-k)}=eksL{H(t)} = eks(1/s) = (1/s)eks and L -1{eas F(s)}=f(t-a)H(t-a). Example 2 -- The function H(t-to) when multiplied to a function f(t), i.e., H(t-to)f(t), has the effect of switching on the function f(t) at t = to. For example, the solution obtained in Example 3, above, was y(t) = yo cos t + y1 sin t + sin(t3)H(t-3). Suppose we use the initial conditions yo = 0.5, and y1 = -0.25. Lets plot this function to see what it looks like: Press , simultaneously if in RPN mode, to access to the PLOT SETUP window.

#### Page 16-23

Change TYPE to FUNCTION, if needed Change EQ to 0.5*COS(X)-0.25*SIN(X)+SIN(X-3)*H(X-3). Make sure that Indep is set to X. Press @ERASE @DRAW to plot the function. Press @EDIT L @LABEL to see the plot. The resulting graph will look like this:
Notice that the signal starts with a relatively small amplitude, but suddenly, at t=3, it switches to an oscillatory signal with a larger amplitude. The difference between the behavior of the signal before and after t = 3 is the switching on of the particular solution yp(t) = sin(t-3)H(t-3). The behavior of the signal before t = 3 represents the contribution of the homogeneous solution, yh(t) = yo cos t + y1 sin t. The solution of an equation with a driving signal given by a Heaviside step function is shown below. Example 3 Determine the solution to the equation, d2y/dt2+y = H(t-3), where H(t) is Heavisides step function. Using Laplace transforms, we can write: L{d2y/dt2+y} = L{H(t-3)}, L{d2y/dt2} + L{y(t)} = L{H(t-3)}. The last term in this expression is: L{H(t-3)} = (1/s)e3s. With Y(s) = L{y(t)}, and L{d2y/dt2} = s2Y(s) - syo y1, where yo = h(0) and y1 = h(0), the transformed equation is s2Y(s) syo y1 + Y(s) = (1/s)e3s. Change CAS mode to Exact, if necessary. Use the calculator to solve for Y(s), by writing: X^2*Y-X*y0-y1+Y=(1/X)*EXP(-3*X) ` Y ISOL The result is Y=(X^2*y0+X*y1+EXP(-3*X))/(X^3+X).
To find the solution to the ODE, y(t), we need to use the inverse Laplace transform, as follows:

#### Page 16-49

Introduction to Random Vibrations, Spectral & Wavelet Analysis Third Edition, Longman Scientific and Technical, New York. The only requirement for the application of the FFT is that the number n be a power of 2, i.e., select your data so that it contains 2, 4, 8, 16, 32, 62, etc., points.
Examples of FFT applications
FFT applications usually involve data discretized from a time-dependent signal. The calculator can be fed that data, say from a computer or a data logger, for processing. Or, you can generate your own data by programming a function and adding a few random numbers to it. Example 1 Define the function f(x) = 2 sin (3x) + 5 cos(5x) + 0.5*RAND, where RAND is the uniform random number generator provided by the calculator. Generate 128 data points by using values of x in the interval (0,12.8). Store those values in an array, and perform a FFT on the array. First, we define the function f(x) as a RPN program: << x 2*SIN(3*x) + 5*COS(5*x) EVAL RAND 5 * + NUM >>
and store this program in variable @@@@f@@@. Next, type the following program to generate 2m data values between a and b. The program will take the values of m, a, and b: << m a b << 2^m EVAL n << (b-a)/(n+1) EVAL Dx << 1 n FOR j a+(j-1)*Dx EVAL f NEXT n ARRY >> >> >> >>
Store this program under the name GDATA (Generate DATA). Then, run the program for the values, m = 5, a = 0, b = 100. In RPN mode, use: 5#0#100@GDATA! The figure below is a box plot of the data produced. To obtain the graph, first copy the array just created, then transform it into a column vector by using: OBJ 1 + ARRY (Functions OBJ and ARRY are available

#### Page 16-50

in the command catalog, N). Store the array into variable DAT by using function STO (also available through N). Select Bar in the TYPE for graphs, change the view window to H-VIEW: 0 32, V-VIEW: -10 10, and BarWidth to 1. Press @CANCL \$ to return to normal calculator display.
To perform the FFT on the array in stack level 1 use function FFT available in the MTH/FFT menu on array DAT: @DAT FFT. The FFT returns an array of complex numbers that are the arrays of coefficients Xk of the DFT. The magnitude of the coefficients Xk represents a frequency spectrum of the original data. To obtain the magnitude of the coefficients you could transform the array into a list, and then apply function ABS to the list. This is accomplished by using: OBJ LIST Finally, you can convert the list back to a column vector to be stored in DAT, as follows: OBJ 1 ` 2 LIST ARRY STO To plot the spectrum, follow the instructions for producing a bar plot given earlier. The vertical range needs to be changed to 1 to 80. The spectrum of frequencies is the following:

Select the alternative hypothesis, H1: > 150, and press @@@OK@@@. The result is:
We reject the null hypothesis, H0: 0 = 150, against the alternative hypothesis, H1: > 150. The test t value is t0 = 5.656854, with a P-value = 0.000000393525. The critical value of t is t = 1.676551, corresponding to a critical x = 152.371. Press @GRAPH to see the results graphically as follows:
Example 3 Data from two samples show thatx1 = 158, x1 = 160, s1 = 10, s2 = 4.5, n1 = 50, and n2 = 55. For = 0.05, and a pooled

#### Page 18-45

variance, test the hypothesis H0: 12 = 0, against the alternative hypothesis, H1: 12 < 0. Press @@@OK@@@ to access the hypothesis testing feature in the calculator. Press @@@OK@@@ to select option 6. T-Test: 12.: Enter the following data and press @@@OK@@@:
Select the alternative hypothesis 1< 2, and press @@@OK@@@. The result is
Thus, we accept (more accurately, we do not reject) the hypothesis: H0: 12 = 0, or H0: 1=2, against the alternative hypothesis H1: 12 < 0, or H1: 1=2. The test t value is t0 = -1.341776, with a P-value = 0.09130961, and critical t is t = -1.659782. The graphical results are:
These three examples should be enough to understand the operation of the hypothesis testing pre-programmed feature in the calculator.

#### Page 18-46

Inferences concerning one variance
The null hypothesis to be tested is , Ho: 2 = o2, at a level of confidence (1)100%, or significance level , using a sample of size n, and variance s2. The test statistic to be used is a chi-squared test statistic defined as

#### (n 1) s 0

Depending on the alternative hypothesis chosen, the P-value is calculated as follows: H1: 2 < o2, P-value = P(2<o2) = 1-UTPC(,o2) H1: > o , P-value = P(2>o2) = UTPC(,o2) H1: 2 o2, P-value =2min[P(2<o2), P(2>o2)] = 2min[1-UTPC(,o2), UTPC(,o2)] where the function min[x,y] produces the minimum value of x or y (similarly, max[x,y] produces the maximum value of x or y). UTPC(,x) represents the calculators upper-tail probabilities for = n - 1 degrees of freedom. The test criteria are the same as in hypothesis testing of means, namely, Reject Ho if P-value < Do not reject Ho if P-value >. Please notice that this procedure is valid only if the population from which the sample was taken is a Normal population. Example 1 -- Consider the case in which o2 = 25, =0.05, n = 25, and s2 = 20, and the sample was drawn from a normal population. To test the hypothesis, Ho: 2 = o2, against H1: 2 < o2, we first calculate
(n 1) s 2 (25 1) 20 = = 189.0 25
With = n - 1 = 25 - 1 = 24 degrees of freedom, we calculate the P-value as, P-value = P(2<19.2) = 1-UTPC(24,19.2) = 0.2587 Since, 0.2587 > 0.05, i.e., P-value > , we cannot reject the null hypothesis, Ho: 2 =25(= o2).

To store the program use the STO command as follows: K~p2`
An evaluation of program P2 for the argument X = 5 is shown in the next screen:
While you can write programs in algebraic mode, without using the function RPL>, some of the RPL constructs will produce an error message when you press `, for example:
Whereas, using RPL, there is no problem when loading this program in algebraic mode:

#### Page 21-67

Chapter 22 Programs for graphics manipulation
This chapter includes a number of examples showing how to use the calculators functions for manipulating graphics interactively or through the use of programs. As in Chapter 21 we recommend using RPN mode and setting system flag 117 to SOFT menu labels. We introduce a variety of calculator graphic applications in Chapter 12. The examples of Chapter 12 represent interactive production of graphics using the calculators pre-programmed input forms. It is also possible to use graphs in your programs, for example, to complement numerical results with graphics. To accomplish such tasks, we first introduce function in the PLOT menu.

Commands for setting up and producing plots are available through the PLOT menu. You can access the PLOT menu by using: 81.01 L@)MODES @)MENU@ @@MENU@.
The menu thus produced provides the user access to a variety of graphics functions. For application in subsequent examples, lets user-define the C (GRAPH) key to provide access to this menu as described below.
User-defined key for the PLOT menu
Enter the following keystrokes to determine whether you have any user-defined keys already stored in your calculator: L@)MODES @)@KEYS@ @@RCLK@. Unless you have user-defined some keys, you should get in return a list containing an S, i.e., {S}. This indicates that the Standard keyboard is the only key definition stored in your calculator.

#### Page 22-1

To user-define a key you need to add to this list a command or program followed by a reference to the key (see details in Chapter 20). Type the list { S << 81.01 MENU >> 13.0 } in the stack and use function STOKEYS (L@)MODES @)@KEYS@ @@STOK@) to user-define key C as the access to the PLOT menu. Verify that such list was stored in the calculator by using L@)MODES @)@KEYS@ @@RCLK@. Note: We will not work any exercise while presenting the PLOT menu, its functions or sub-menus. This section will be more like a tour of the contents of PLOT as they relate to the different type of graphs available in the calculator. To activate a user defined key you need to press (same as the ~ key) before pressing the key or keystroke combination of interest. To activate the PLOT menu, with the key definition used above, press: C. You will get the following menu (press L to move to second menu)

#### ~a ~c ~e ~m ~p ~t ~v

Beta (): Delta (d): Rho (): Lambda (): Sigma (): Tau (t):

#### ~b ~d ~f ~n ~s ~u

Page G-2
System-level operation (Hold \$, release it after entering second or third key): o o o o o o o o \$ \$ \$ \$ \$ \$ \$ \$ (hold) (hold) (hold) (hold) (hold) (hold) (hold) (hold) AF: Cold restart - all memory erased B: Cancels keystroke C: Warm restart - memory preserved D: Starts interactive self-test E: Starts continuous self-test #: Deep-sleep shutdown - timer off A: Performs display screen dump D: Cancels next repeating alarm
Other keyboard short cuts: o o o o o o o (hold) 7 (hold) H (hold) (hold) (hold) (hold) (hold) : : : : : : : SOLVE menu (menu 74) PRG/MODES menu (Chapter 21) Starts text editor (Appendix L) HOME(), go to HOME directory Recover last active menu List contents of variables or menu entries PRG/CHAR menu (Chapter 21)

#### Page G-3

Appendix H The CAS help facility
The CAS help facility is available through the keystroke sequence I L@HELP `. The following screen shots show the first menu page in the listing of the CAS help facility.
The commands are listed in alphabetical order. Using the vertical arrow keys one can navigate through the help facility list. Some useful hints on navigating through this facility are shown next: You can hold down the down arrow key and watch the screen until the command youre looking for shows up in the screen. At this point, you can release the down arrow key. Most likely the command of interest will not be selected at this point (you may overshoot or undershoot it). However, you can use the vertical keys , one stroke at a time, to locate the command you want, and then press @@OK@@. If, while holding down the down arrow key you overshoot the command of interest, you can hold down the up arrow key to move back towards that command. Refine the selection with the vertical keys , one stroke at a time. You can type the first letter of the command of interest, and then use the down arrow key to locate that particular command. For example, if youre looking for the command DERIV. After activating the help facility (I L@HELP `), type ~d. This will select the first of the commands that start with D, i.e., DEGREE. To find DERIV, press , twice. To activate the command, press @@OK@@.

The MODULAR sub-menu provides functions for modular arithmetic with numbers and polynomials. These functions are presented in Chapter 5:

#### Page J-2

The POLYNOMIAL sub-menu includes functions for generating and manipulating polynomials. These functions are presented in Chapter 5:

The TESTS sub-menu includes relational operators (e.g., ==, <, etc.), logical operators (e.g., AND, OR, etc.), the IFTE function, and the ASSUME and UNASSUME commands.
Relational and logical operators are presented in Chapter 21 in the context of programming the calculator in User RPL language. The IFTE function is introduced in Chapter 3. Functions ASSUME and UNASSUME are presented next, using their CAS help facility entries (see Appendix C).

UNASSUME

#### The CASCFG command

This is the first entry in the MAIN menu. This command configures the CAS. For CAS configuration information see Appendix C.

The ALGB sub-menu includes the following commands:
These functions, except for 0.MAIN MENU and 11.UNASSIGN are available in the ALG keyboard menu (). Detailed explanation of these functions can be found in Chapter 5. Function UNASSIGN is described in the following entry from the CAS menu:

#### Page K-1

The DIFF sub-menu contains the following functions:
These functions are also available through the CALC/DIFF sub-menu (start with ). These functions are described in Chapters 13, 14, and 15, except for function TRUNC, which is described next using its CAS help facility entry:

The MATHS menu is described in detail in Appendix J.

The TRIGO menu contains the following functions:
These functions are also available in the TRIG menu (). Description of these functions is included in Chapter 5.

#### Page K-2

The SOLVER menu includes the following functions:
These functions are available in the CALC/SOLVE menu (start with ). The functions are described in Chapters 6, 11, and 16.

Fourier series for triangular wave, 16-35 Fourier series, complex, 16-27 Fourier transforms, 16-43 Fourier transforms, convolution, 16-49 Fourier transforms, definitions, 16-46 FP, 3-14 Fractions, 5-24 Frequency distribution, 18-5 Frobenius norm, 11-17 FROOTS, 5-11 FROOTS, 5-26 Full pivoting, 11-34, 11-39 Function definition, 3-36 Function plot, 12-2 FUNCTION plot operation, 12-13 FUNCTION plots, 12-6 Function, table of values, 12-17, 12-26 Functions, multi-variate, 14-1 Fundamental theorem of algebra, 6-7

#### Page M-6

GAMMA, 3-15 Gamma distribution, 17-6 GAUSS, 11-53 Gaussian elimination, 11-28 Gauss-Jordan elimination, 11-28 11-37 11-39 GCD, 5-11, 5-19 GCDMOD, 5-12 Geometric mean, 18-3 Geometric mean, 8-16 GET, 10-6 GETI, 8-11 Global variable scope, 21-4 Global variable, 21-2 GOR, 22-32 Goto Line, L-4 GOTO menu, L-2 L-3 Goto Position, L-4 Grades, 1-22 Gradient, 15-1 Graphic objects, 22-30 Graphical solution of ODEs, 16-60 Graphics animation, 22-26 Graphics options, 12-1 Graphics programming, 22-1 Graphs, 12-1 Graphs polar, 12-19 Graphs conic curves, 12-21 Graphs parametric, 12-23
Graphs differential equations, 12-26
Graphs slope fields, 12-34 Graphs Fast 3D plots, 12-35 Graphs wireframe plots, 12-34 Graphs Ps-Contour plots, 12-39 Graphs Y-Slice plots, 12-41 Graphs Gridmap plots, 12-42 Graphs Pr-Surface plots, 12-43 Graphs Zooming, 12-49 Graphs SYMBOLIC menu, 12-51 Graphs saving, 12-7 GRD, 3-1 Greek letters, D-3, G-2 Gridmap plots, 12-42 GROB, 22-30 GROB programming, 22-33 GROB menu, 22-31 GROBADD, 12-52 Grouped data, 8-18 Grouped data statistics, 8-18 Grouped data variance, 8-18 GXOR, 22-32
HADAMARD, 11-5 HALT, L-2 Harmonic mean, 8-15 HEAD, 8-11 Header size, 1-29 Heaviside's step function, 16-15 HELP, 2-26 HERMITE, 5-11, 5-20 Hermite polynomials, 16-60 HESS, 15-2 Hessian matrix, 15-2 HEX, 19-2 HEX, 3-1 Hexadecimal numbers, 19-7
Graphs Graphs Graphs Graphs
truth plots, 12-29 bar plots, 12-30 histograms, 12-30 scatterplots, 12-30

#### Page M-7

Higher-order derivatives, 13-13 Higher-order partial derivatives, 14-3 HILBERT, 10-14 Histograms, 12-30 HMS-, 25-3 HMS+, 25-3 HMS-->, 25-3 HORNER, 5-11, 5-20 H-VIEW, 12-20 Hyperbolic functions graphs, 1216 Hypothesis testing, 18-34 Hypothesis testing errors, 18-35 Hypothesis testing in linear regression, 18-52 Hypothesis testing in the calculator, 18-42 Hypothesis testing on variances, 18-46 HZIN, 12-50 HZOUT, 12-50
i, 3-16 I/O functions menu, F-2 IR, 5-28 IABCUV, 5-11 IBERNOULLI, 5-11 ICHINREM, 5-11 Identity matrix, 10-1 Identity matrix, 11-6 IDIV2, 5-11 IDN, 10-9 IEGCD, 5-11 IF.THEN.ELSE.END, 21-48
IF.THEN.END, 21-47 IFERR sub-menu, 21-65 IFTE, 3-35 ILAP, 16-11 Illumination units, 3-20 IM, 4-6 IMAGE, 11-54 Imaginary part, 4-1 Implicit derivatives, 13-7 Improper integrals, 13-21 Increasing-power CAS mode, C-9 INDEP, 22-6, Independent variable in CAS, C-2, Infinite series, 13-21, 13-23 INFO, 22-4 INPUT, 21-22 , Input forms programming, 21-21 Input forms use of A-1 Input string prompt programming, 21-21 Input-output functions menu, F-2 INS , L-1 INT, 13-14 Integer numbers, C-5 Integers, 2-1 Integrals, 13-14 Integrals definite, 13-15 Integrals step-by-step, 13-17 Integrals improper, 13-21 Integrals double, 14-6 Integrals multiple, 14-6

A Graphing Calculator for Mathematics and Science Classes
The HP 38G calculator allows teachers to direct students and keep them focused while they explore mathematical and scientific concepts. It features aplets, which are small applications that focus on a particular area of the curriculum and can be easily distributed from the teachers calculator to the students.
by Ted W. Beers, Diana K. Byrne, James A. Donnelly, Robert W. Jones, and Feng Yuan
The HP 38G calculator is a graphing calculator for students and teachers in mathematics and science classes. It features aplets, which are small applications that focus on a particular area of the curriculum and can be easily distributed from calculator to calculator. This allows the teacher to send an electronic story problem to each student in the class. The HP 38G is built on the same software platform as the HP 48G family of graphing calculators,1 but has a simpler user interface and feature set. Equations are entered using algebraic format rather than the reverse Polish notation (RPN) found in most HP calculators. The features of the HP 38G include: Graphical user interface Function, polar, parametric, stairstep, cobweb, histogram, scatter, and box and whisker plots Side-by-side split screen Tables Unlimited, scrollable history stack Symbolic equations HP Solve numeric root finder EquationWriter display Statistics functions Matrix operations User programming. The hardware platform of the HP 38G is very similar to that of the HP 48G: they both have 32K bytes of RAM, 512K bytes of ROM, the same CPU and the same display (131 by 64 pixels). They both have a two-way infrared link for sending information to a printer and for transferring information between two calculators, and an RS-232 link for calculator-to-computer communications. An accessory that allows the calculator screen to be displayed with an overhead projector works with both the HP 48G and the HP 38G, but the HP 38G cable connector has been modified so that the overhead display accessory works with every HP 38G; no special handset is required. The HP 48 case was redesigned to include a sliding plastic cover to make the HP 38G more durable for use by younger students. Also, two keys were removed to give visual emphasis to the navigation keys and to make the keyboard look less complicated.
Designed for and with Teachers
We set out to design a graphing calculator for precalculus students and teachers. To help us do this, we formed an Education Advisory Committee consisting of eight high school, community college, and university teachers. We met with the teachers every few months, and between meetings we kept in touch by email. The teachers told us that they want to allow students to explore mathematical and scientific concepts, and at the same time they need to direct the students and keep them focused. In our first meeting with the teachers, we compared this to the idea of a childs sandbox: the child is given toys for playing and exploration, but within a protected, specialized environment. Thus, one of our main goals with the calculator software design was to encourage exploration by limiting choices. This led us to the concept of aplets: an aplet is a small application that focuses on a particular problem.

#### HP 38G Aplets and Views

We based the design of aplets on the National Council of Teachers of Mathematics three views: graphic, symbolic, and numeric. Each problem can be explored using these different representations. For example, a mathematical function can be expressed as a graph (Fig. 1a), in symbolic form (Fig. 1b), or using a table of numbers (Fig. 1c).

#### Article 6

June 1996 Hewlett-Packard Journal
Fig. 1. With the HP 38G calculator, a mathematical function can be expressed (a) as a graph, (b) in symbolic form, or (c) using a table of numbers. Aplets can be created by teachers (either directly on the HP 38G or with the assistance of a computer) and then beamed to the students calculators using infrared transfer. This way, a whole classroom full of students can have their calculators programmed identically at the beginning of a lesson. Then, the students can explore within the aplet on their own calculators. Each aplet packages the formulas, settings, and other information associated with a particular problem. If the user wants to switch from one aplet to another, this can be done without disturbing any individual aplets settings, since they are compartmentalized. Several aplets are built into the HP 38G. When the calculator is first turned on, these built-in aplets are empty. The user must add some information, such as equations, notes, or sketches to make these aplets come alive.

#### The Library Environment

This environment gives high-level access to aplets. The user can select an aplet and manage the current collection of aplets. From within the library, the user can take a snapshot of a built-in aplet, giving it a name and a directory of its own. This is how aplets are generated for dissemination and how users show their work. Also, the user can import or export aplets from the library to another HP 38G or to a computer.

#### Arrow Keys

The arrow keys are used for all direction-oriented operations such as tracing a function plot, moving among fields in an input form, and selecting commands from a pop-up menu. The shift key can be used as a modifier for the arrow keys that signals motion all the way in the direction indicated.

#### Home Calculator Keys

The home calculator environment gives a familiar tool with a nice graphical interface. The user invokes it by pressing the HOME key. Inputs are displayed on the left side of a line, with the results displayed on the right side of the next line. The calculator keys are used to type numbers and to access basic scientific calculator functions. The ENTER key is used to terminate data entry, to select operations from menus, and in general, to make things happen. Some mathematical operations are available on the keyboard and other operations and commands are available through the MATH pop-up menu. The ANSWER shifted key gives access to the variable called Ans, which always contains the last result.

#### Alpha Keys

The alpha shift key, A.Z, provides access to the alphabetic characters, which are labeled on the keyboard overlay. Pressing the CHARS shifted key invokes the character browser, which provides access to characters that are not on the keyboard. Unlike the HP 48G, there is no alpha lock key to confuse the user. The user can either press and release the alpha shift key before pressing each alpha character key, or hold the alpha shift key down while pressing as many alpha character keys as desired. However, an alpha lock toggle softkey is provided in some editing environments.

#### Editing Environments

The HP 38G has specialized environments for managing programs, matrices, lists, and notes. When the user invokes one of the editing environments, a scrolling choose list of all the existing objects of that type appears, together with a softkey menu. From this environment, objects can be transferred between the HP 38G and a computer or another HP 38G. The program environment provides tools for creating, editing, storing, sending, receiving, and running programs. Variables can be accessed through the VAR pop-up menu. Mathematical operations can be accessed from the keyboard or through the MATH pop-up menu, and programming commands can be accessed through the commands section of the MATH pop-up menu. The matrix environment provides a two-dimensional matrix editor for creating, editing, viewing, sending, and receiving matrices. The list environment provides a list editor for creating, editing, viewing, sending, and receiving lists. The notepad environment provides an environment for creating, editing, viewing, saving, sending, and receiving text documents. The tools for editing notes in the notepad environment are identical to the editor for the note view. The documents created in the notepad environment are not bundled with an aplet as they are in the note view. The notepad environment can be used for tasks such as creating, storing, and viewing lists or notes.

items in the selected category.
Fig. 12. A pop-up choose box in the MODES input form.
Fig. 13. The VAR menu, a two-column choose box.
As these examples illustrate, the look and feel of HP 48G/GX input forms and choose boxes remain largely unchanged in the HP 38G. However, substantial reengineering of the underpinnings of these tools was required to match other aspects of the HP 38Gs use model, as discussed in the next section.

#### Topic Outer Loop

Many of the custom interfaces developed for the HP 48S/SX used an RPL-language tool we developed called the parameterized outer loop.2 Parameterized outer loop applications depend on the parameterized outer loop for routine key and error handling and display management. The graphical user interface (GUI) elements introduced in the HP 48G/GX are also parameterized outer loop applications that automate routine matters of input entry, selection of options, and presentation of output. In both the HP 48S/SX and the HP 48G/GX, the user interface was based on the notion of having a central environment (the user stack) from which other applications are launched and to which applications return when completed. All applications on these platforms, including parameterized outer loop applications like the GUI tools, are based on this function call model: they start, run for a while, then end, returning the flow of control to where they started. We call such applications modal.

#### New Model, New Tool

When we were investigating the use model for the HP 38G, it became apparent that the function call approach to application management would not suffice. The HP 38G is a tool for exploration, so we wanted to provide an environment that promotes wandering from one subject area to another, or in HP 38G terms, from one view or aplet to another. To attain this goal we quickly determined that the modal nature of the parameterized outer loop and the applications based on it was too constraining, yet we werent prepared to discard the wealth of useful tools and concepts we had built up from the parameterized outer loop foundation. Furthermore, we knew there were still plenty of times when the modal call-andreturn interface would still apply, such as when pausing to get further input from the user before proceeding with a task. To accommodate all these needs, we developed the new topic outer loop.
Topic Outer Loop Overview
Where parameterized outer loop applications are designed to preserve the environment from which theyre launched and later restore that environment, topic outer loop topics are optimized for rapidly setting up and switching from one topic to the next. Except with regard to the home environment from which the topic outer loop is originally launched and to which it ultimately returnsafter running many topics, perhapsthe topic outer loop doesnt preserve or restore a previous user interface since there is none to go back to. The most obvious examples of topic outer loop topics in the HP 38G are aplets, but many other environments with similar behavior are also topic outer loop topicsfor example, the aplet library and the user program catalog (see Fig. 14). Like the parameterized outer loop on which its based, the topic outer loop is launched from the calculators system outer loop and temporarily redefines the current user interface until some exit condition is met. By design, the topic outer loop operates very similarly to the parameterized outer loop, but differs from the parameterized outer loop in two fundamental ways: To better support the standard two-tiered structure of HP 38G topics, the topic outer loop manages two nested user interface levels. The parameterized outer loop manages just one. The topic outer loop fully supports organized and efficient switching from one topic to another. The parameterized outer loop is designed to shut down completely before launching another application.

The operation of the topic outer loop for starting a topic can be summarized as follows: If a topic outer loop is already running { Evaluate the old view exit handler Evaluate the old topic exit handler Set the topic entry and exit handlers Evaluate the topic entry handler Set the view entry and exit handlers Evaluate the view entry handler Set the remainder of the view user interface } Else { Save the home user interface If error in { Set the topic entry and exit handlers Evaluate the topic entry handler Set the view entry and exit handlers Evaluate the view entry handler Set the remainder of the view user interface If error in { While not done with the topic outer loop { Evaluate the view display object Read a key and get its custom definition If error in Evaluate the key definition Then Evaluate the error handler object } Evaluate the view exit handler Evaluate the topic exit handler } Then { Evaluate the view exit handler Evaluate the topic exit handler Error } } Then { Restore the saved home user interface Error } Restore the saved home user interface } The code setting up the topic specifies the user interface and other environment elements unique to the topic, such as the topic entry handler and the view display object, when it runs the topic outer loop. This is how the behavior of the topic outer
Fig. 14. The user program catalog, a topic outer loop utility environment. loop is customized. The topic outer loop is responsible for the key-display loop, low-level error handling, and juggling the topic and view entry and exit handlers and the saved home user interface. When an event occurs that calls for running the topic outer loop, the topic outer loop may or may not already be running. As the first section of the topic outer loop overview illustrates, if a topic outer loop is already running, switching to a new topic is quick yet still gives the exiting topic an opportunity to shut down in an orderly fashion. Since its common with the HP 38G to move from topic to topic without first returning home, this efficiency translates to faster performance. Switching among views within the same topic is also common, and involves a similarly efficient set of operations: Evaluate the old view exit handler Set the view entry and exit handlers Evaluate the view entry handler Set the remainder of the view user interface
Reengineering the GUI Tools

Although very similar in specifications and use to the standard modal input form and choose box environments, versions of these environments based on the topic outer loop, which we call modeless environments, differ in the following ways: OK and cancel keys are nonfunctional. The default softkey set does not include OK and cancel keys. Task-switching keys are processed normally to allow task switching. The results returned by the input form or choose box engine always consist of the confirmed exit values. No flag indicating canceled or normal exit is returned. To support modeless views and utility environments based on HP 48G/GX GUI tools, we adapted the input form and choose box engines to use the topic outer loop. However, modal input forms and choose boxes are also employed by the HP 38G. Rather than simply switch the engines from using the parameterized outer loop to using the topic outer loop, we modularized the components of the engines to enable the use of either. We then repackaged the modal versions of the engines to ensure backwards compatibility for existing code using them. To make modeless input form and choose box programming as straightforward as possible for programmers familiar with the modal versions, and yet still meet the requirements of the topic outer loop, we developed tools to translate traditional modal input form and choose box arguments and results to and from the specifications required for topic outer loop applications. This greatly simplified the reengineering of existing user interface code to make use of new modeless input forms and choose boxes. The process was largely mechanical, requiring only that the developer follow a few well-documented steps.

#### Aplets and Views

One of the key ideas of aplets is that they provide different ways of looking at a problem. For example, when exploring a story problem about speed and distance, the student can look at a symbolic expression, a table of numbers, a graph of the distance function, or even a diagram showing a tortoise and a hare. These different ways of looking at an aplet are called views. The topic outer loop manages the transitions between the views of an aplet. The views are implemented using the graphical user interface tools plus aplet data. The data associated with an aplet is encapsulated in a directory structure inherited from the HP 48G/GX.1

#### Aplet Structure

Associated with each aplet is a standard set of information. The topic outer loop uses this aplet information for aplet directory checking, topic switching, resetting, and so on. Its also used by the VAR menu and the VIEWS choose box. The standard information is: Topic ID Initial view Topic name

editing and selection of symbolic expressions. Giving expressions names in the symbolic view allows them to be reused in other expressions, home calculations, and programming. Expressions entered in the symbolic view are checked for syntax errors and to a limited extent for semantic errors. Expressions defining a sequence are further classified and transformed into an internal form for cache-based iterative evaluation, saving both time and run-time RAM space. An EVAL menu key is provided in the symbolic view for constant expression evaluation, expression simplification, and function unfolding. Fig. 15 shows how the Fibonacci sequence can be defined and checked using ten keystrokes. (The EVAL menu key is shown when a command line is not active. It appears where OK appears in Fig. 15.)
Fig. 15. Using the symbolic view of the sequence aplet, the Fibonacci sequence can be defined and checked using ten keystrokes. The generic symbolic view is based on the choose box engine, which takes over display handling to maintain check marks on the left of the screen and takes over key mapping for dynamic menu changes and editing of expressions. Because of the different requirements for different aplets, the generic symbolic view is implemented as a derived instance of the symbolic view with several data fields and virtual routines to be overridden. The information for a symbolic view includes: Combine factor Total expression Group size Single-pick flag Softkey menu description Edit menu description Move focus procedure pointer Special initialization procedure pointer Edit terminator procedure pointer Expression checker Poststore procedure pointer. For example, the sequence aplet combine factor is 3 (three terms define one sequence). The total expression is 30 (up to 10 sequences allowed). The group size is 3 (every three terms will share one check mark). The edit terminator procedure transforms definitions into internal form. The move focus procedure updates menu softkeys with the current sequence name. The expression checker rejects list or matrix expressions and initial terms that depend on the sequence independent variable n. The symbolic view for the statistics aplet posed a new problem because we decided to show two expressions on one line, one for data and one for frequency, which is not supported by the choose box engine. The statistics symbolic view is implemented by customizing the input form to mimic a scrollable choose box with a check mark and two columns of data.

#### Setup Views

After expressions are set up, setup views are the natural places to go for setting the parameters for further explorations. The plot setup view is the main setup view, similar to the plot dialog box on the HP 48G, but enhanced with wider fields and a double-page design. The plot setup view, the symbolic setup view, and the numeric setup view are all based on the input form engine.

#### Plot View

The plot view is the most complicated of all aplet views. Students will spend most of their time here exploring the behavior of curves graphically and interactively. The HP 38G takes the DRAW command in the HP 48G/GX plot window and improves it by implementing a smart redraw. When switching back from other views, the picture, cursor position, and display mode are restored to the same state instantly, except when the defining parameters are changed. Plotting can be stopped and resumed later. When the user tries
Article 6 June 1996 Hewlett-Packard Journal 11
to move the cursor beyond the screen boundary, the graph shifts and redraws the scrolled-in portion. Zoom options are put into a choose box with more descriptive names. Instead of taking the current point as the first point, the box zoom prompts the user to select the first point. Tracing is improved and extended to statistics plots. Fig. 16 shows tracing on box and whisker plots.
Fig. 16. Box and whisker plot. For the function aplet, more areas of exploration are supported through the FCN menu key, which displays a choose box with choices of root, intersection, slope, area, and extremum. Fig. 17 shows the display for an area computation.
Fig. 17. Area computation accessible via the FCN softkey. The plot view has overridable routines for curve drawing, curve tracing, FCN key handling, DEFN key handing, and other functions. For example, the function, parametric, and polar aplets share the same plot loop with different preprocessing, but the sequence aplet uses another plot loop for handling the discrete independent variable n. For tracing, the sequence aplet implements four-way scrolling: the screen will scroll when the cursor is moved offscreen in all directions. The scatter plot overrides the FCN menu key to calculate and display a data-fitting curve. The information for a plot view includes: Draw procedure Independent variable ID Softkey menu description Display procedure pointer Key handler procedure pointer Pointer display procedure Draw axes flag Draw grid flag Axis labels Display coordinate procedure Tracing procedures Coordinate display procedures Equation display procedure.

#### Numeric View

The numeric view lets a student explore the functions defined in the symbolic view in numeric form. The leftmost column displays values of the independent variable (except for statistics) and adjacent columns represent function results. There are two basic forms of the numeric view: automatic (Fig. 18) and build-your-own (Fig. 19). The automatic view displays a series of independent values with a starting value and a step specified by either the numeric setup view or the variables NumStart and NumStep.

Fig. 18. Automatic numeric view.
Fig. 19. Build-your-own numeric view.
The BIG menu key lets the student display the numbers using a larger font. The ZOOM key provides a series of options for changing the start and step values for the independent variable display. When the cursor is moved to the upper or lower boundaries of the display the table scrolls to show adjacent values. The table can also be reset by entering a new value for the independent variable in the leftmost column. The build-your-own numeric view is useful for creating a table of interesting values. The values for the independent variable column in the build-your-own numeric view are accessible via the NumIndep variable. The information for a numeric view includes: Initialization procedure pointer Numeric zoom choices Softkey menu description Display procedure pointer Key handler procedure pointer Split plot-table configuration information.

#### Plot-Table View

The split plot-table view allows a student to combine the plot and numeric views (Fig. 20).
Fig. 20. Plot-table view. This view is implemented primarily as a plot view, with the right side of the display being a small numeric view that updates to reflect the position of the plot cursor. As the student moves the cursor from one function to another, the right side of the table changes to reflect the function being traced. The DEFN menu key displays the current function at the bottom of the display. This lets the student display the symbolic, plot, and numeric views of a function all at once.

#### Note View

Besides main aplet views like plot view, symbolic view, and so on, auxiliary views like the note view and sketch view are provided to add textual and pictorial descriptions to an aplet. The note view (Fig. 21) can be used to edit and display a text string attached to an aplet. The note can provide information about the aplets subject, a suggested sequence of exploration, or the supported keys. The note view is basically a word-wrapping text editor with a 6-line-by-22-character display. Although the original HP 48G/GX edit line supports multiple-line editing, individual lines are handled independently. When more than 22 characters are inserted into a line, that line gets scrolled to the left without affecting the rest of the lines. The HP 38G note view is implemented independently from the edit line code. Direct display routines are coded to show a character or a string at a specified location without generating intermediate GROBs. System-level keyboard handling code is modified to implement a general blinking cursor display scheme. Besides the text string to be edited, the note editor maintains a linewidth array for word-wrapping bookkeeping.

Fig. 21. Sample note view screen.

#### Sketch View

Some people believe that a picture is worth a thousand words, so the HP 38G generalizes the HP 48G/GXs bitmap editing features to form an aplet sketch view. With the sketch view, the user can edit and display a set of bitmaps attached to an aplet. Holding down the page-down or page-up key shows a prestored animation sequence (Fig. 22).
Fig. 22. An animation sequence in sketch view. Compared with the HP 48G/GX, the HP 38G limits the bitmap editing features and improves the user interface and implementation. The HP 38G implements a rubber band algorithm when the user drags the second point to define a line, rectangle, or circle. The circle drawing code uses a fast integer-based iterative algorithm. The user can drag a text string in the small or medium font to any location. The HP 38G can store a selected portion of a screen into a GROB variable and recall it. When bitmaps are stored back into an aplet directory, they are first trimmed to the minimum enclosing rectangle to save RAM space.

Each aplet type defines additional views available in the VIEWS menu. For example, the function aplet offers some hybrid views and some preconfigured plot views. Fig. 23 shows the function VIEWS menu. In addition, a user can define a new set of special views that provide high-level tools for an aplet. Such a custom interface makes the aplet easier to explore and hides details of the calculators operation.

#### The Home Environment

The freeform home environment fills the traditional calculator role of supporting quick calculations. The user enters expressions in algebraic form and the value of the expression (usually a number) is returned. Unlike aplets, the home environment provides access to all calculator resources, including lists, matrices, graphics objects, and programs.

#### The History Stack

The text of the input and the result are stored on a history stack (Fig. 24a). The user can review the items on the history stack and reuse those items as parts of the current input (Fig. 24b). Expressions and equations on the history stack can be shown in two-dimensional mathematical format (Fig. 24c).
Fig. 24. (a) History stack. (b) Previous result copied into the command line. (c) EquationWriter display of the same expression. The HP 38G includes special features to help beginners. To help students learn about fractions, the HP 38G has fraction number format, which uses continued fractions to convert results to rational form (Fig. 25). To help students unfamiliar with standard algebraic syntax, the HP 38G attempts to interpret ill-formed expressions as implied multiplication (Fig. 26).

Fig. 25. Fraction number format.
Fig. 26. (a) Implied multiply input. (b) Result.

#### The Variable Ans

Each time the user inputs an expression, the value of the expression is stored in a variable named Ans. This current value of Ans is placed on the history stack, and the name Ans can be used in the next calculation. Even when the user enters a command that performs some action but doesnt return a value, the current value of Ans is placed on the history stack. If the user starts an input with an infix function such as +, , *, or /, the calculator inserts the name Ans first. This saves keystrokes for tasks such as balancing a checkbook (Fig. 27). If the user presses ENTER without input, the previous input is repeated (Fig. 28). This saves keystrokes for iterative operations.
Fig. 27. Checkbook calculations in the home environment.
Fig. 28. If the user presses ENTER without input, the previous input is repeated. This saves keystrokes for iterative operations.

#### The VAR and MATH Menus

To organize its extensive resources, the HP 38G presents the most-used variables and functions on the keyboard. Additional resources are available in the VAR and MATH menus. These two-column menus offer specific items in the right column, categories of items in the left column, and broader choices on menu keys. In the VAR menu (Fig. 29) the user can choose to examine variables either from the current aplet or from the shared home variables. The user also can choose either the name or the value of a variable. In the HP 38G most variables are strongly typed, that is, for many variables the value must be a specific type. For example, the variable X must contain a real number, Z1 must contain a complex number, and M2 must contain a matrix. Several classes of variables contain exactly ten variables, such as the ten complex variables Z1, Z2,., Z9, Z0 (Fig. 30). Variables are used not only for mathematical objects, but also for modes. For example, storing the constant Degrees (whose numerical value is 1) into the variable Angle selects degrees angle mode. The classes of home variables include complex numbers (Z1 to Z0), graphics objects (G1 to G0), aplets (user-selected names), lists (L1 to L0), matrices (M1 to M0), modes (fixed descriptive names), notepad (user-selected names), programs (user-selected names), and real numbers (A to Z, ).

Fig. 29. VAR menu of the home environment.
Fig. 30. Most variable values must be a specific type and several classes of variables contain exactly ten variables. For example, Z1 to Z0 are complex variables.
The MATH menu (Fig. 31) offers additional functions, commands, and constants not available on the keyboard. The categories of functions are: calculus functions, complex-number functions, constants, hyperbolic functions, list functions, loop functions, matrix functions, functions of polynomials, probability functions, real-number functions, statistics functions, functions for symbolic manipulation, tests, and trigonometric functions.

Lists and Matrices
For these composite variable types there are catalogs that report the variables sizes, along with special editors to enter and modify the elements. The catalogs and editors are tasks, so the user can easily move among aplets, home, catalogs, and editors. The list editor (Fig. 32) is one-dimensional. The matrix editor is two-dimensional (Fig. 33).
Fig. 32. The list editor is one-dimensional.
Fig. 33. The matrix editor is two-dimensional.
Lists and matrices can also be used as functions of an index value. For example, L1 is a list, while L1(2) is an expression whose value is the second element of L1.

#### Notes and Programs

For these text variable types there are catalogs that show the user-selected names and editors that allow freeform text input. The notepad holds simple text files such as phone lists (Fig. 34). There is a program with the fixed name Editline, which holds the most recent input from the home environment. The user can choose to edit the most recent home input from within the program editor, or to execute the program Editline from the home environment by simply pressing ENTER. Programs arent parsed until the first time theyre run. Because of this, and because the program editor is a task, the user can write a program a little at a time, leaving the program in an invalid state between editing sessions. Fig. 35 shows part of a program.
Fig. 34. The notepad holds simple text files such as phone lists.
Fig. 35. Part of a program.
Commands that perform some action and return no result can appear only within programs (which includes Editline). The categories of commands are: commands to control aplets, branch commands, commands for scaled drawings, commands to manipulate graphics objects, loop commands, matrix commands, printing commands, prompt commands for input and output, and statistics commands.

### Tags

manuel d'instructions, Guide de l'utilisateur | Manual de instrucciones, Instrucciones de uso | Bedienungsanleitung, Bedienungsanleitung | Manual de Instruções, guia do usuário | инструкция | návod na použitie, Užívateľská príručka, návod k použití | bruksanvisningen | instrukcja, podręcznik użytkownika | kullanım kılavuzu, Kullanım | kézikönyv, használati útmutató | manuale di istruzioni, istruzioni d'uso | handleiding, gebruikershandleiding