home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qpdemo / beispiel / fktspar.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-08-24  |  1.3 KB  |  70 lines

  1.  
  2. PROGRAM FunktionsParameter;
  3. USES Crt;
  4. {$F+}
  5.  
  6. TYPE Funktion=FUNCTION (i:Integer):Real;
  7.  
  8. VAR a,e,d:Integer;
  9.    ch:Char;
  10.  
  11. FUNCTION Sinus (Winkel:Integer):REAL;
  12. BEGIN
  13.  Sinus:=Sin(Winkel * PI / 180)
  14. END;
  15.  
  16. FUNCTION Cosinus (Winkel:Integer):REAL;
  17. BEGIN
  18.  Cosinus:=Cos(Winkel * PI / 180)
  19. END;
  20.  
  21. FUNCTION Tangens (Winkel:Integer):REAL;
  22. BEGIN
  23.  Tangens:=Sinus(Winkel)/Cosinus(Winkel)
  24. END;
  25.  
  26. FUNCTION Quadrat (Zahl:Integer):REAL;
  27. BEGIN
  28.  Quadrat:=Sqr(Zahl)
  29. END;
  30.  
  31. PROCEDURE Tabelle (Anfang,Ende,Differenz:Integer;
  32.            Operation:Funktion);
  33. VAR i:Integer;
  34. BEGIN
  35.  Writeln ('Wert:':10,' ':10,'Ergebnis:':10);
  36.  i:=Anfang;
  37.  WHILE i<=Ende DO BEGIN
  38.   Writeln (i:10,' ':10,Operation(i):20:10);
  39.   i:=i+Differenz
  40.  END
  41. END;
  42.  
  43. BEGIN
  44.  REPEAT
  45.   ClrScr;
  46.   Writeln ('Auswahl:');
  47.   Writeln;
  48.   Writeln ('S(inus');
  49.   Writeln ('C(osinus');
  50.   Writeln ('T(angens');
  51.   Writeln ('Q(uadrat');
  52.   Writeln ('/ Ende');
  53.   REPEAT ch:=ReadKey UNTIL ch
  54.           IN ['s','S','c','C','t','T','q','Q','/'];
  55.   IF ch<>'/' THEN BEGIN
  56.    Write ('Anfangswert:':15); Readln (a);
  57.    Write ('Endwert:':15); Readln (e);
  58.    Write ('Schrittweite:':15); Readln (d);
  59.    CASE ch OF
  60.    's','S':Tabelle (a,e,d,Sinus);
  61.    'c','C':Tabelle (a,e,d,Cosinus);
  62.    't','T':Tabelle (a,e,d,Tangens);
  63.    'q','Q':Tabelle (a,e,d,Quadrat)
  64.    END;
  65.    Readln
  66.   END
  67.  UNTIL ch='/'
  68. END.
  69.  
  70.