... program1
This program is included as prog1.c in this distribution.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... (GUI),2
This program is distributed as prog2.c with this distribution.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...curve2d_.3
There are several other types corresponding to two-dimensional density and vector plots, three-dimensional graph representations, three-dimensional contour plots, etc. This is discussed in section 5.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Events()4
Whenever there are new data the argument of Events() should be nonzero. This will set the requests for data so that you can calculate them on demand only. For this simple program you can always set it to one.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... displayed.5
But why is this not simply part of the Events() function? The reason lies in the following consideration: often there are quantities that you want to monitor, but that are not actually required for the computation. Having two routines allows you to calculate only when they are needed. This is the reason that each data is associated with a request flag. If the user chose to observe this data, the request flag would be set in the Events() routine and you could write a routine that would calculate this data before you called the DrawGraphs(); routine.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.