home *** CD-ROM | disk | FTP | other *** search
- (*****************************************************************************)
- (* MENU3.INC *)
- (* *)
- (* Menuesteuerung der Kurvendiskussion *)
- (*****************************************************************************)
-
- Procedure Menu;
-
- Var Key :Char;
- ValidKey :Boolean;
- I :INTEGER;
-
- Const MenuItems = 10;
- MenuText :Array [0..MenuItems] of String [18] = (
- 'Programmende <Q>',
- 'Funktionsterm <F>',
- 'Term ausgeben <L>',
- 'Wertetabelle <T>',
- 'Nullstellen <N>',
- 'Extremwerte <E>',
- 'Wendestellen <W>',
- 'Integral <I>',
- 'Symmetrie <S>',
- 'Monotonie <M>',
- 'Graph zeichnen <Z>');
-
-
- Procedure SetUpScreen;
-
- Var i :Integer;
-
- Begin
- ClrScr;
- WriteLn; WriteLn; WriteLn;
- WriteLn ('-----------------------------------------------':64);
- WriteLn ('>>>>> K u r v e n d i s k u s s i o n <<<<<':64);
- WriteLn ('-----------------------------------------------':64);
- WriteLn; WriteLn;
- For i:=0 to MenuItems do
- Begin
- WriteLn (MenuText[i]:44);
- End;
- WriteLn;
- Write ('Bitte waehlen : ':42);
- End;
-
-
- Begin
- CalcDecMod := TRUE; (* nur vereinbarte Variable zulassen *)
- vartable := newvartab; (* Variablenliste anlegen *)
- ArgPos := AddToVarTab(vartable,'X'); (* Variable ist 'X' *)
- FOR I := 0 to maxgrad do
- FormProg[I] := Nil; (* noch keine Funktion eingegeben *)
- Hello;
- { GetFunction;
- WriteLn; Write ('Weiter mit beliebiger Taste .....');
- Read (KBD, Key);
- } key := '@';
- validkey := false;
- Repeat
- SetUpScreen;
- REPEAT
- Case Key of
- 'F': GetFunction;
- 'L': ShowFunction;
- 'T': Table;
- 'N': FindRoots;
- 'E': FindExtremeValues;
- 'W': FindFlexPoints;
- 'I': Integrate;
- 'S': CheckSymmetry;
- 'M': CheckMonotony;
- 'Z': PlotFunction;
- End;
- if validkey THEN
- BEGIN
- WriteLn; Write ('Weiter mit beliebiger Taste .....');
- END;
- Read (KBD, Key);
- key := upcase(key);
- ValidKey := key in ['F','L','T','N','E','W','I','S','M','Z'];
- until not validkey
- until key = 'Q';
- ClrScr
- End;