home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 04 / quellen / menu3.inc < prev    next >
Encoding:
Text File  |  1988-10-10  |  2.7 KB  |  86 lines

  1. (*****************************************************************************)
  2. (*                                 MENU3.INC                                 *)
  3. (*                                                                           *)
  4. (*                     Menuesteuerung der Kurvendiskussion                   *)
  5. (*****************************************************************************)
  6.  
  7. Procedure Menu;
  8.  
  9.    Var   Key           :Char;
  10.          ValidKey      :Boolean;
  11.          I             :INTEGER;
  12.  
  13.    Const MenuItems  = 10;
  14.          MenuText   :Array [0..MenuItems] of String [18] = (
  15.                     'Programmende   <Q>',
  16.                     'Funktionsterm  <F>',
  17.                     'Term ausgeben  <L>',
  18.                     'Wertetabelle   <T>',
  19.                     'Nullstellen    <N>',
  20.                     'Extremwerte    <E>',
  21.                     'Wendestellen   <W>',
  22.                     'Integral       <I>',
  23.                     'Symmetrie      <S>',
  24.                     'Monotonie      <M>',
  25.                     'Graph zeichnen <Z>');
  26.  
  27.  
  28.    Procedure SetUpScreen;
  29.  
  30.       Var i :Integer;
  31.  
  32.       Begin
  33.       ClrScr;
  34.       WriteLn; WriteLn; WriteLn;
  35.       WriteLn ('-----------------------------------------------':64);
  36.       WriteLn ('>>>>>   K u r v e n d i s k u s s i o n   <<<<<':64);
  37.       WriteLn ('-----------------------------------------------':64);
  38.       WriteLn; WriteLn;
  39.       For i:=0 to MenuItems do
  40.          Begin
  41.          WriteLn (MenuText[i]:44);
  42.          End;
  43.       WriteLn;
  44.       Write ('Bitte waehlen :       ':42);
  45.       End;
  46.  
  47.  
  48.    Begin
  49.    CalcDecMod := TRUE;                  (* nur vereinbarte Variable zulassen *)
  50.    vartable := newvartab;               (* Variablenliste anlegen *)
  51.    ArgPos := AddToVarTab(vartable,'X'); (* Variable ist 'X' *)
  52.    FOR I := 0 to maxgrad do
  53.       FormProg[I] := Nil;               (* noch keine Funktion eingegeben *)
  54.    Hello;
  55. {   GetFunction;
  56.    WriteLn; Write ('Weiter mit beliebiger Taste .....');
  57.    Read (KBD, Key);
  58.  }  key := '@';
  59.    validkey := false;
  60.    Repeat
  61.     SetUpScreen;
  62.      REPEAT
  63.       Case Key of
  64.          'F': GetFunction;
  65.          'L': ShowFunction;
  66.          'T': Table;
  67.          'N': FindRoots;
  68.          'E': FindExtremeValues;
  69.          'W': FindFlexPoints;
  70.          'I': Integrate;
  71.          'S': CheckSymmetry;
  72.          'M': CheckMonotony;
  73.          'Z': PlotFunction;
  74.        End;
  75.        if validkey THEN
  76.          BEGIN
  77.            WriteLn; Write ('Weiter mit beliebiger Taste .....');
  78.          END;
  79.        Read (KBD, Key);
  80.        key := upcase(key);
  81.        ValidKey := key in ['F','L','T','N','E','W','I','S','M','Z'];
  82.      until not validkey
  83.    until key = 'Q';
  84.    ClrScr
  85.    End;
  86.