
                    +---------------------------------+
                    |                                 |
                    |   XPRES PROGRAM TUTORIAL FILE   |
                    |                                 |
                    +---------------------------------+


The purpose of this file is to provide a tutorial lesson on all the basic
features of the program called XPRES.  While it is possible to learn how to
use the program by reading all the built-in help screens, if you are a
first-time user, we suggest you read this tutorial while first running the
program, and then later you can digest all the information contained in the
help functions within the program.

To begin the tutorial you must have access to this tutorial file XPRES.TXT,
you must have the compiled binary on-line help file called XPRES.HLP, and you
must have the program file XPRES.EXE.  We assume these three files are in the
current directory on the currently selected disk drive.  We suggest you first
print this tutorial file, XPRES.TXT, before using the XPRES program.  You
can then read the hard copy output while you learn how to run the program.


PRELIMINARY CONVENTIONS
=======================


USING A MOUSE
-------------

The XPRES program has been designed to be used with a mouse.  It provides
a standard windows interface.  If you are already familiar with either
Microsoft Windows or with a Macintosh interface, then we assume you know
how to work pull-down menus, and how to differentiate selecting things
with a mouse versus dragging things with a mouse.  We assume you know how
to work radio buttons, list boxes, and push buttons, and how to manipulate
the objects commonly found in dialog boxes.  XPRES operates in a text mode on
IBM-compatible computers.


USING THE PROGRAM WITHOUT A MOUSE
---------------------------------

If you do not have a mouse, you can still access all the features of the
program.  A mouse is recommended because its use makes things faster, but
for those times when you do not have a mouse you can accomplish everything
with a keyboard, at the cost of making a few more keystrokes.

As part of this tutorial we need to give directions on which keys to press on
your keyboard.  We will enclose in angle brackets single keystrokes that you
should type.  For example, if we ask you to type the first three letters
of the alphabet we will show <A> <B> <C>.  If we ask you to press the control
key, the alternate key, the backspace key, the space bar, the tab key, or the
enter (or return) key, we will show <CTRL>, <ALT>, <BACKSPACE>, <SPACEBAR>,
<TAB>, or <ENTER>.

Each enclosure in angle brackets should refer to exactly one keystroke or one
character.  Some characters like <+> or <*> can be entered in two different
ways on some keyboards, one way uses the <SHIFT> key, the other way does not.
In general, we would only show the single character in angle brackets and we
leave it up to you to decide whether or not the <SHIFT> is needed to enter the
character.  Function keys will be denoted by <Fn> where n is the corresponding
number.  In most situations pressing <F1> brings up the context sensitive help
system.

These keyboard conventions should make clear exactly how many and which keys
you press.  If it is necessary to press two keys simultaneously we will show
a connecting plus sign between the keystrokes.  This is done primarily with
the Control key <CTRL>, and the Alternate key <ALT>.  For example, when we
show <ALT>+<X> it means you should press both the Alternate key and key X at
the same time.  <ALT>+<X> is used to exit the program.

At other times we may need to refer to a keystroke without intending that you
actually press the keys.  If we mention the  ALT+X  command, but it is not
enclosed with angle brackets, then you should not press the keys.  You only
press the keys when the angle brackets surround the command.


DISPLAY STRINGS
===============

We also need to indicate the contents of text strings you might see on the
display screen.  Such text parts will always be displayed in double quotes in
this tutorial file.  You will not see the double quotes on the screen, and the
screen may contain other text parts that we do not show in this file.  The
double quotes are simply a convenient way to indicate parts of what you may
see on the display.


ADVICE FOR NOVICES AND EXPERTS
==============================

This tutorial file assumes you have the mathematical background required to
understand the features that will be demonstrated.  You may find some sections
more applicable to novices than experts, or vice versa, depending on your
background and experience.  If you encounter an example that is beyond your
understanding, you can either skip that example, or you can press the keys and
view the results, even though you may not fully comprehend the output.  This
tutorial does not discuss techniques on how to best use or apply the available
features.  It only serves to demonstrate the basic features and capabilities
which you can learn to apply to solve problems that are of interest to you.


GETTING STARTED
===============

You should first print the file XPRES.TXT on your printer by giving the
command:

  <C> <O> <P> <Y> <SPACEBAR> <X> <P> <R> <E> <S> <.> <T> <X> <T> <SPACEBAR>

  <P> <R> <N> <ENTER>

and then you should read the contents of this file as the printed output while
you begin running the XPRES program.


To begin running the XPRES program type the command:

                          <X> <P> <R> <E> <S> <ENTER>


The entire screen can be considered to be divided into three distinct sections.
The very top line on the screen is what is called the Menu Bar.  The very
last line is called the Status Line.  The area of the screen between the Menu
Bar and the Status Line is called the Desktop, and it is within the Desktop
that your numbers will be displayed.  Each number is displayed in a separate
window that is surrounded by a border or what will be called the window frame.
The default configuration has 8 windows labeled as Stack T, Stack Z, Stack Y,
Stack X, Last X, Memory, Clipboard, and Status.  These windows are a working
model of a Hewlett-Packard calculator with a 4-level stack.  With a few
exceptions (notably the division operation which computes both a quotient and
a remainder) this model operates exactly as a normal Reverse Polish logic
calculator.  Each window can hold a number except the Status window.  The
purpose of the Status window is to display messages which report on the status
of the current calculation.


THE MAIN MENU BAR AND SELECTING SUBMENU ITEMS
=============================================

Commands are always selected from items on the Menu Bar.  If you have a mouse
then you exercise each pull-down menu by clicking or selecting the text of the
menu titles.  If you do not have mouse you can use the ALT key together with
the highlighted letter of each menu item.  For example, pressing  Alt+F  will
cause the File menu item to display its list of contents.  Pressing  Alt+O
will show the items under the Options menu.

To further select an item under any menu (what is called a submenu item), use
the down arrow or up arrow keys to move the highlighting to the item you wish
to select and then press the ENTER key to execute the corresponding command.


KEYBOARD ACCELERATORS
=====================
Many of the menu items are labeled with keys that are called keyboard
accelerators.  When you press one of these keys the command is immediately
executed without going through the pull down menu.  For example, pressing
the key  !  causes the factorial function to be executed.  Other examples
are the +, - * and / keys for adding, subtracting, multiplying, and dividing
numbers.


INDICATORS FOR MENU COMMANDS
============================

Most of the commands of the XPRES program are derived from menu items.  To
indicate the selection of a command in this tutorial file that is associated
with one or more menu commands we will show the menu titles in all upper case
letters.  Submenu commands will be preceded by their parent menu titles, with
a vertical line | separating the items.  For example,

                          OPTIONS | 5-DIGIT GROUPS ( )

refers to the main menu command OPTIONS and then the further submenu command
under OPTIONS that is titled 5-DIGIT GROUPS ( ).

Most commands use two levels of depth within the menus.  In any case, each
capitalized title represents a menu command that you should select.  We will
not show the keystrokes if you have only a keyboard.  In this tutorial file
we prefer to show the command names which are meaningful for both mouse and
keyboard users.  After a little use you will recognize the menu names and the
submenu items and you will feel more comfortable with the command organization
and the logical grouping of the menus and commands.


THE STATUS LINE
===============

The Status Line at the bottom of the screen is used to give you hints or
messages about the actions you are performing.  The hints are context
sensitive.  Usually the left side of the Status Line shows the two commands
ALT+X EXIT  and  F1 Help.  If you have a mouse, you can click the mouse over
the text of these commands without using the keyboard.


THE ACTIVE WINDOW
=================

Although the Desktop contains several windows, only one will show a double-
line frame.  This window is called the active window.  The other windows will
be drawn with frame borders that show single thin lines.  The active window
border is also highlighted; the other window borders will appear more plain.
The initially highlighted window is labeled as Stack X.


COMPUTING 100!
==============

The first example we give will show how to use the program to compute the
exact value of 100 factorial, denoted by 100!.

Press                               <ENTER>

and a dialog box will appear into which you are to type the number 100.


DIALOG BOXES AND THEIR CONTROLS
===============================

Most dialog boxes have two special buttons marked OK and CANCEL.  If you have
only a keyboard then you should know that the ENTER key normally selects the
OK pushbutton and the ESC key selects the CANCEL pushbutton.  If a dialog box
also has a Help pushbutton then you can press function key F1 to execute that
pushbutton.

You should also note that when a dialog box contains several controls, you can
use the Tab key to move the focus from one control to the next.  Most controls
are labeled with a text title that contains a highlighted letter.  Pressing
the Alt key simultaneously with that letter will move the focus directly to
that control.  If the control is a pushbutton you can further press the space
bar to execute the button.


The focus should already be in the input line which shows the number 0 so
press


                                <1> <0> <0> <ENTER>


After pressing ENTER (this pushes the OK button) the dialog box will disappear
and you should see the Stack X window now holds the number 100.  The very
first line in the window indicates that the number 100 is 3 digits long.


                                 "(3 digits)
                                  100"


The factorial command is the last item under the Calculate menu.  With a
mouse you can issue the command

                                 CALCULATE | X! FACTORIAL

or with a keyboard you can simply press

                                      <!>



When the calculation ends the program will sound a short beep and the Status
window will indicate the elapsed time in seconds it took to compute 100!.

The Stack X window will change and hold the entire number.


                 100! = (158 digits)
                         93,326,215,443,944,152,681,
                        699,238,856,266,700,490,715,
                        968,264,381,621,468,592,963,
                        895,217,599,993,229,915,608,
                        941,463,976,156,518,286,253,
                        697,920,827,223,758,251,185,
                        210,916,864,000,000,000,000,
                        000,000,000,000


If you don't see the entire number because the bottom edge of the Stack X
window has cut off the trailing digits, then press

                                     <F5>

to zoom the Stack X window so that it fills the entire Desktop.


"(158 digits)
  93,326,215,443,944,152,681,699,238,856,266,700,490,715,968,264,381,621,
 468,592,963,895,217,599,993,229,915,608,941,463,976,156,518,286,253,697,
 920,827,223,758,251,185,210,916,864,000,000,000,000,000,000,000,000"


Now you should see all of the digits of the number.  The first line is a
comment enclosed in parentheses which indicates the number holds 158 digits.


ALTERNATIVE DISPLAY FORMATS
===========================

Select the command

                         OPTIONS | CONTIGUOUS DIGITS


and the number's displayed format should change to the following.  You should
see the same number displayed as a sequence of continuous digits.  Wherever
the digits end at the right window edge they continue in the next row down
starting at the left window edge.  This example contains two completely filled
rows and one partial row.


"(158 digits)
 933262154439441526816992388562667004907159682643816214685929638952175999932
 299156089414639761565182862536979208272237582511852109168640000000000000000
 00000000"


Next select the command

                        OPTIONS | 5-DIGIT GROUPS ( )


This indicates the digits will be displayed in groups of 5, separated by
spaces.


"(158 digits)
   933 26215 44394 41526 81699 23885 62667 00490 71596 82643 81621 46859
 29638 95217 59999 32299 15608 94146 39761 56518 28625 36979 20827 22375
 82511 85210 91686 40000 00000 00000 00000 00000"


The groupings are made starting with the least significant digits and continue
up through the most significant digits (MSD) which you read first.  The very
first most significant 5-digit group is the only group that may have fewer
than 5 digits. (in this case the 3 digits in the MSD group are 933).

Finally, give the command

                          OPTIONS | 3-DIGIT GROUPS (,)

which means the number should be displayed with the digits in groups of 3,
separated by commas.  This is the default display mode.


"(158 digits)
  93,326,215,443,944,152,681,699,238,856,266,700,490,715,968,264,381,621,
 468,592,963,895,217,599,993,229,915,608,941,463,976,156,518,286,253,697,
 920,827,223,758,251,185,210,916,864,000,000,000,000,000,000,000,000"

In this case the MSD group holds only the two digits 93.


Now press                             <F5>

to zoom the Stack X window back to its original size.  The number in the
window should appear as shown in the box below.


                     +-----------------------------------+
                     | (158 digits)  [158-121]           |
                     |   93,326,215,443,944,152,681,     |
                     |  699,238,856,266,700,490.....     |
                     +-----------------------------------+


The right end of the last line shows 5 periods.  This means there are more
digits in the number that have been cut off by the window's right and bottom
edges.

The first line indicates the number has 158 digits, and the numbers inside
the square brackets, [158-121],  mean the first and last digits you see are
the 158th through the 121st.

This extra information is useful when you are scrolling the number in a
window.  The first number before the dash is the digit count of the digit
in the upper left window corner.  The number following the dash is the
digit count of the last digit you see in the window's lower right corner.
In this example, the digit 0 in the last group 490 is the 121st digit in the
entire number.  This digit range value disappears whenever the entire number
fits within the window and the ..... disappears as well.


CONTROLLING THE SPEAKER
=======================

The program normally beeps after it finishes any calculation.  If this
beeping of the speaker bothers you, you can turn the speaker permanently
off by selecting the command

                          OPTIONS | SPEAKER...

which brings up a dialog box.

This dialog box allows you to control the use of the speaker.  When performing
some time-consuming operations you may wish to leave your machine and do
something else.  But you can have the program beep to alert you when it
finishes the calculation.  This is what the Longer Beep option is for.  If you
select the Longer Beep option, the program will sound 10 short beeps at the
conclusion of each calculation.  For now, leave the option as Short Beep.


Press                              <ESC>

to close the Speaker Control Dialog Box.


GETTING HELP
============

With a mouse click on the text Help in the bottom status line.  Without a
mouse you can press
                                     <F1>

A Help window will appear on the screen which shows a list of topics.

Press                               <ENTER>

to select the first topic which is about the System Menu.

Then press                           <TAB>

to move the highlighting to the Help option under the System menu and again
press

                                    <ENTER>

to jump to the topic that had the highlighted word HELP.

Now read about how to use Help.  When you get to the last line on the screen
press one of the down-arrow keys on your keyboard or use your mouse with the
vertical scroll bar to scroll the remaining text into view.  The scrolling
will automatically stop when you get to the bottom of the Help window.  Read
all of the information.

With a mouse you can click the close box in the upper left window title frame,
or with a keyboard press
                                     <ESC>

to quit Help.

Later, if you want to read all of the on-line help, you can start with the
first item in the index and then select each Next topic until you get back to
the first item.


WINDOW MANAGEMENT
=================

We would next like to demonstrate how to move and resize the active window.
Note the shape and color of the window frame.  Then select the command

                         WINDOW | MOVE/RESIZE WINDOW

(With a keyboard <Ctrl>+<F5>)

The window frame should change and if you now use the four arrow keys on
the keyboard you should be able to move the window anywhere, up or down or
left or right on the desktop.  The Status Line indicates the use of the
arrow and shift keys.

Now move the window so it is nearly in the center of the entire desktop and
then start holding down and continue to hold a <SHIFT> key while you press the
arrow keys.

You should now see the window size is being changed.  The right arrow key
makes the window wider, the down arrow key makes it taller.  The left and up
arrow keys have the opposite effects and make the window smaller.  If you let
up on the SHIFT key and continue to press the arrow keys the window position
changes.

To quit the moving and resizing press

                                    <ENTER>

The window frame should now be a highlighted double line.

If you have a mouse, you can move the window position by grabbing and
dragging the the top of the title frame.  You can reshape the window by
grabbing and then dragging the lower right window frame corner.

It is important to know how to resize a window because when you save a number
to a disk file, the written format uses the column width of the window to
determine how many digits fill a line in the file.  File saves should make
numbers that appear formatted exactly as they appear in a window, but the file
will hold the entire number.


COMPUTING COMBINATIONS
======================

Next we will compute the number of combinations of 200 elements selected 100
at a time.  This is a number which appears in the middle of the 200th row
of Pascal's Triangle.  This number may be denoted by C(200,100).


Press                               <ENTER>

to edit the number in the Stack X window.


Type in                           <2> <0> <0>

and then press                      <ENTER>

to close the dialog box.


Next press                        <SPACEBAR>

to copy the number 200 into the Stack Y window.  Both the Stack Y and Stack X
windows should now contain the number 200.  Next press

                                    <ENTER>

to again edit the Stack X window number.


Then type in                      <1> <0> <0>

and press                           <ENTER>


Now you should have 200 in Stack Y and 100 in Stack X.  Select the command

                       CALCULATE | C(Y,X) COMBINATIONS


Observe the Status window.  It will contain a counter which starts at 1
and advances to 200.  The counter indicates a long time-consuming operation is
progressing normally.  This particular counter will show all the prime numbers
up to 200.  When this counter reaches 200 the calculation will end and the
Status window will show the elapsed time of the calculation.  Depending on the
speed of your computer, the elapsed time will probably be between 5 and 10
seconds.  The answer should appear in the Stack X window.


                      "(59 digits)
                        90,548,514,656,103,281,165,
                       404,177,077,484,163,874,504,
                       589,675,413,336,841,320"



MORE WINDOW MANAGEMENT
======================

At this point we have 8 windows on the desktop.  Give the command

                           WINDOW | TILE ALL WINDOWS

and you should see the 8 windows that cover the entire desktop like tiles
cover a floor.

Now select the command

                           WINDOW | CASCADE ALL WINDOWS

and you should see the 8 windows stacked one on top of the other, but in a
in a cascaded form.  You could now press key F6 several times to select each
window in turn.

Now select the command

                           WINDOW | INITIAL CONFIGURATION

and this time all 8 windows will be returned to their initial configuration.


A COUPLE MORE SAMPLE CALCULATIONS
=================================

Let's use the program to multiply one thousand factorial by the value of 2
raised to the 2000th power; that is, (1000!)*(2^2000).

Begin by pressing

                                    <ENTER>

and when the edit dialog box comes up type in

                             <1> <0> <0> <0> <ENTER>

The Stack X window should now contain the number 1,000.  Press

                                      <F>

to compute 1000 factorial.  (Note that F and ! are keystroke aliases for the
factorial command).


When the calculation ends 1000! should be 2,568 digits long.

Press
                                  <SPACEBAR>

which raises the numbers in the stack and pushes 1000! into Stack Y.  Then
press

                              <ENTER> <2> <ENTER>

to place the base 2 in Stack X.  Press

                                  <SPACEBAR>

again to raise the stack and then press

                       <ENTER> <2> <0> <0> <0> <ENTER>

to place the exponent 2,000 in Stack X.


The stack should now contain 1000! in Z, 2 in Y and 2,000 in X.


Press                                 <^>

to execute the power function which raises Y to the power of X.  2 raised to
the 2,000th power is only 603 digits long.

Now you should have 1000! in Y and 2^2000 in X.

Press                                 <*>

to multiply these two numbers.  The result of the multiplication should be a
number 3,170 digits long.


COMPARING NUMBERS
=================

The last calculations we will perform will demonstrate the stack comparison
function.

Press                         <ENTER> <5> <ENTER>

                                  <SPACEBAR>

                          <ENTER> <5> <0> <0> <ENTER>

to place the number 5 in Y and the number 500 in X.  Press

                                      <^>

to raise the number 5 to the 500th power.  The result should be a number 350
digits long.

Now press                         <SPACEBAR>

to duplicate this number in Y and then press

                                      <*>

to square 5^500.

The resulting number should be 699 digits long.  This number should be 5
raised to the 1,000th power, but how can we check this?

Press                             <SPACEBAR>

to raise and preserve the number in Stack Y.  Press

                              <ENTER> <5> <ENTER>

                                  <SPACEBAR>

and then                <ENTER> <1> <0> <0> <0> <ENTER>

You should now have 5 in X and 1,000 in Y.  Press

                                      <^>

to directly compute 5^1000.

Now the Stack X and Y windows should hold the two numbers we wish to compare.
The window contents may look the same, but let's make sure.

Give the command

                            STACK | COMPARE X & Y

(you could also just press <?>) and an information box should appear with the
message

                                    "X = Y"

meaning the two numbers in the Stack X and Y windows are in fact identical.

Press
                                    <ENTER>

to make the information box disappear.


INTERRUPTING LONG CALCULATIONS
==============================

Sometimes you may find it desirable to abort a long time-consuming
calculation.  You can do this by pressing the keys

                                  CTRL+BREAK

at any time in the middle of the calculation.  The program will then stop
with an error message indicating it was interrupted.  Once interrupted, you
cannot continue where you left off.  The stack will be left in an
intermediate state.


DISK FILE FORMATS
=================

When you save a number to a disk file, the number is saved in an ordinary
ASCII text file which can be edited with your favorite word processor.

You can learn the disk file format by using the program's Save As function
and studying the resulting file.  The first line may be a comment which
describes the number of digits in the number, but this line is not required.

In fact, you can place a comment anywhere in the file as long as you follow
two rules.  A comment must be the only thing on the line that contains it.
The comment must be enclosed between two parentheses.

Otherwise, only digits that comprise the number are allowed on a line.  The
digits may be separated by spaces or commas, but the program will ignore all
commas and all spaces when it reads in a file number.  Thus you can place
commas or spaces with any frequency you like anywhere within your file.
Each file line written by XPRES will be no longer than 80 characters per line
but you can create file lines with up to 127 characters per line.

In fact, when you save a file with this program, the line width and formatting
are both determined by the window display of the window that contains the
number.  So if you want to have a maximum number of digits per line, you
should first maximize the display window before you save the number.  The
contents of the file written should appear identical to what you see in the
window, except the file will contain all the digits of the number.



CONCLUSION
==========

This concludes the XPRES program tutorial.  If you haven't done so already,
you can now read the help information.  Many of the basic features have been
covered here, but you will gain more insight by reading all the help
information available to you.  If after all this you still have questions,
you can contact the author at the address given below.


To quit the XPRES program press

                                   <ALT>+<X>


The XPRES program is periodically updated to make improvements, add new
features, (and sometimes to correct bugs!).  You may also wish to contact the
author to check if you have the latest version of the program.  The author
also invites your comments about how you liked the program and will consider
any suggestions you may wish to offer for making the program even more useful.



OTHER PROGRAMS
==============

If you enjoy using the XPRES program you may be interested to know there
is a whole suite of mathematical programs made by the author of XPRES.
These programs are intended to help motivate an interest in mathematics and
computer science.  Some of the titles of these programs and a brief
description of each is given below.


 1. MATRIX - a program that teaches row operations with matrices.  Features
    include fractions and decimal modes, determinants, inverses, Gram-Schmidt
    orthogonalization, eigenvectors and eigenvalues and both standard and
    non-standard linear programming problems.


 2. YFUNX - a program for graphing and analyzing functions in rectangular
    form, Y=F(X).  Includes coordinate trace and tangent/normal line modes,
    zooming in and out, scalable axes, numerical integration including the
    standard approximations together with Gaussian Quadrature and Romberg
    approximations.  Animation features include plane areas, plane arc length,
    3D volumes and 3D surface areas, Newton's Method and the Method of
    Successive Bisections for solving F(X)=0, and automatic search for max/min
    extrema.


 3. POLAR - a program for graphing and analyzing functions in polar form,
    R=F(@) or R^2=F(@).  Similar to YFUNX, includes coordinate trace and
    tangent/normal line modes, zooming in and out, scalable axes, numerical
    integration for polar areas and arc length, automatic search for max/min
    extrema over any section of a curve.


 4. PARAM - a program for graphing and analyzing functions in parametric form,
    X=F(T) and Y=G(T).  Similar to YFUNX, includes coordinate trace and
    tangent/normal line modes, zooming in and out, scalable axes, numerical
    integration for areas and arc length, automatic search for max/min
    extrema over any section of a curve.


 5. POLPM - a program for graphing and analyzing functions in polar
    coordinates, but that have been parametrized, say R=F(T) and @=G(T).
    Similar to the POLAR and PARAM programs, this program includes coordinate
    trace and tangent/normal line modes, zooming in and out, scalable axes,
    numerical integration for areas and arc length, automatic search for
    max/min extrema over any section of a curve.


 6. DIFEQ - a program related to 1st order differential equations.  Includes
    graphing the direction field and solves initial value problems using
    Euler methods and a 4th order Runge-Kutta method.  Includes coordinate
    trace mode, zooming in and out, and scalable axes.


 7. CURVE3D - a program for making 3D graphs of curves given in the parametric
    form X=f(t), Y=g(t), and Z=h(t).  The resulting curve may be viewed from
    any position, and the drawing is a true-perspective 3D picture.


 8. SURF3D - a program to graph 3-dimensional surfaces of the form Z=F(X,Y).
    The resulting surface may be viewed from any position, and the drawing is
    a true-perspective 3D picture.  The surface may be displayed using lines
    of constant x, or constant y, or a fishnet.  Included is a hidden line
    algorithm for more realistic pictures.


 9. CFIT - a program which performs curve fits to data.  Includes linear
    regression for linear, exponential, logarithmic, and power functions.
    Graphs scatter diagrams and the fitted function curves and performs
    a statistical analysis, including an automatic best fit selection.  Data
    may be saved to or read from disk files.


10. GALTON - simulates coin tossing experiments related to probabilities and
    demonstrates graphically a binomial distribution and its relation to the
    standard normal Gaussian bell-shaped curve.  Also compares results with
    the numbers generated by Pascal's Triangle.  Either coins or ping-pong
    balls may be used in simulated experiments.


11. PROPC - a symbolic logic program that calculates truth tables, analyzes
    tautologies, parses infix formulas and displays their Polish notation
    form, and generates Karnaugh maps from either tables or formulas.


12. RPNDEMO - a program which simulates how a calculator with RPN logic works.
    This program includes its own language and is similar in power to the
    HP-41 calculator.  Programs may be animated to show the internal workings
    of the machine.  Can also be used to teach assembly language concepts.


13. CALC - a reverse Polish logic calculator that operates on 5 data types.
    Included are real and complex numbers, fractions, binary integers and
    polynomials.  Special features include factoring integers and
    polynomials, analyzing repeating decimals and working with continued
    fractions.


14. LOAN - a finance program that handles the two standard cases of compound
    interest.  Uses the 5 standard financial variables n i PV PMT FV found
    on most financial calculators.  Can determine payment schedules for
    loans and annuities and can print amortization schedules for loans.


15. FCARD - simple flash card type of program that can be used to memorize
    any simple series of facts, with one item per line of text.  Items can
    be presented in a random order with timing if desired.


16. THANOI - an example of a recursive process that is in the form of a game
    known as the Towers of Hanoi game.


17. TRIANGLE - a simple program which solves triangle problems in which one
    is given 3 facts about a triangle and must solve for all the remaining
    parts.  Handles all 19 cases of triangle inputs and includes the Law of
    Cosines and the ambiguous case of the Law of Sines.  Can automatically
    determine and display a 2nd valid triangle solution.


18. EXPMCON - a utility type of program that works with the above MATRIX
    program and the commercial scientific word processor called EXP.  This
    program converts MATRIX files from an ASCII format to the EXP format.


19. BMPLOT - a utility type of program that makes high resolution monochrome
    bitmap function plots, identical to the kinds of graphs made by the
    programs YFUNX, POLAR, PARAM, and POLPM.  The bitmaps may be read into
    other programs such as paint or drawing or desktop publishing programs
    which can be used to add labels and titles.  The monochrome bitmaps may
    be of any size or resolution.  The file formats supported include PCX,
    TIFF, and BMP.  Even the HP-GL/2 plotter language can be used to make a
    graph on any PCL 5 LaserJet printer.


20. XPRES - a simple program which computes large integers.  Numbers may
    contain up to 20,000 digits.  The program computes exact values of
    factorials, permutations, combinations, and powers of integers.  You can
    use this program to compute 1000! exactly or to compute the exact value
    of 999 raised to the 1000th power.  Numbers may be saved to or read from
    disk files.


For more information about any of these programs contact the author at the
address below.

                          John Kennedy
                          Mathematics Department
                          Santa Monica College
                          1900 Pico Blvd.
                          Santa Monica, CA  90405

                          Phone (310) 450-5150 Ext. 9721
                          A message may be left at any time of day or night.
