home *** CD-ROM | disk | FTP | other *** search
- (* Test und Demonstration der math. Funktions-Bibliothek: *)
-
- PROGRAM mathfunc_test (INPUT, OUTPUT);
-
- VAR wahl, taste: CHAR;
-
- (*$I MATHFUNC.PAS *) (* INCLUDE: Bibliothek einlesen. *)
-
- (****************************************************************************)
-
- PROCEDURE loesche_bildschirm; (* ev. an Ihre Pascalversion anpassen ! *)
-
- BEGIN
- ClrScr;
- END;
-
- (****************************************************************************)
-
- PROCEDURE zeige_menu;
-
- BEGIN
- loesche_bildschirm;
- WriteLn('< Programm beenden durch Eingabe von "/" >'); WriteLn;
- WriteLn('0.) ggT A.) ld K.) artanh');
- WriteLn('1.) kgV B.) logarithmus L.) arcoth');
- WriteLn('2.) altgrad C.) e_hoch M.) sin ');
- WriteLn('3.) radiant D.) x_hoch_y N.) cos ');
- WriteLn('4.) fakultaet E.) sinh O.) tan ');
- WriteLn('5.) kehrwert F.) cosh P.) cot ');
- WriteLn('6.) sqr G.) tanh Q.) arcsin');
- WriteLn('7.) sqrt H.) coth R.) arccos');
- WriteLn('8.) ln I.) arsinh S.) arctan');
- WriteLn('9.) lg J.) arcosh T.) arccot');
- WriteLn;
- END;
-
- (****************************************************************************)
-
- PROCEDURE berechnen;
-
- VAR n1, n2: INTEGER;
- x1, x2: REAL;
-
-
- PROCEDURE write_funktionsergebnis;
-
- BEGIN
- CASE wahl OF
- '0': n1 := ggT(n1, n2);
- '1': n1 := kgV(n1, n2);
- '2': x1 := altgrad(x1);
- '3': x1 := radiant(x1);
- '4': x1 := fakultaet(n1);
- '5': x1 := kehrwert(x1);
- '6': x1 := sqr(x1);
- '7': x1 := sqrt(x1);
- '8': x1 := ln(x1);
- '9': x1 := lg(x1);
- 'A': x1 := ld(x1);
- 'B': x1 := logarithmus(x1, x2);
- 'C': x1 := exp(x1);
- 'D': x1 := x_hoch_y(x1, x2);
- 'E': x1 := sinh(x1);
- 'F': x1 := cosh(x1);
- 'G': x1 := tanh(x1);
- 'H': x1 := coth(x1);
- 'I': x1 := arsinh(x1);
- 'J': x1 := arcosh(x1);
- 'K': x1 := artanh(x1);
- 'L': x1 := arcoth(x1);
- 'M': x1 := sin(x1);
- 'N': x1 := cos(x1);
- 'O': x1 := tan(x1);
- 'P': x1 := cot(x1);
- 'Q': x1 := arcsin(x1);
- 'R': x1 := arccos(x1);
- 'S': x1 := arctan(x1);
- 'T': x1 := arccot(x1);
- END;
- IF wahl IN ['0','1'] THEN
- WriteLn(n1)
- ELSE
- WriteLn(x1:0:9);
- END; (* write_funktionsergebnis *)
-
- BEGIN (* berechnen *)
- WriteLn; WriteLn; WriteLn;
- Write('Argument');
- IF wahl IN ['0','1','B','D'] THEN
- BEGIN
- Write(' 1 : ');
- IF wahl IN ['0','1'] THEN
- ReadLn(n1)
- ELSE
- ReadLn(x1);
- Write('Argument 2 : ');
- IF wahl IN ['0','1'] THEN
- ReadLn(n2)
- ELSE
- ReadLn(x2);
- END
- ELSE
- BEGIN
- Write(' : ');
- IF wahl = '4' THEN
- ReadLn(n1)
- ELSE
- ReadLn(x1);
- END;
- WriteLn;
- Write('Funktionsergebnis = ');
- write_funktionsergebnis;
- WriteLn; Write(' weiter -> RETURN druecken...');
- ReadLn(taste);
- END;
-
- (****************************************************************************)
-
- BEGIN (* mathfunc_test *)
- REPEAT
- zeige_menu;
- Write('Funktionskennzeichen eingeben >>> ');
- REPEAT
- ReadLn(wahl);
- IF wahl IN ['a'..'z'] THEN
- wahl := Chr(Ord(wahl)-Ord('a')+Ord('A'));
- UNTIL wahl IN ['0'..'9','A'..'T','/'];
- IF wahl <> '/' THEN
- berechnen;
- UNTIL wahl = '/';
- END.