home *** CD-ROM | disk | FTP | other *** search
- { --------------------------------------------------------------- }
- { File : REGUTIL.PAS ( gehört zu REG.PAS ) }
- { Copyright (c) : 1988 Heinz Hagemeyer & TOOLBOX }
- { Sprache : TURBO PASCAL 4.0 (oder 3.0) }
- { Ein Programm zur Auswertung von Meßwerten }
- { mit Hilfe von GRAPH.PAS }
- { --------------------------------------------------------------- }
-
- { Schreibt in die Datei REG.dat die Meßpunkte ein. Stellt den x }
- { und y - Werten ein 'P' voran. }
-
- PROCEDURE Punkte (n : Index ; VAR x,y : Messwerte ; VAR t : Text );
- VAR i : Index;
- BEGIN
- FOR i := 1 TO n DO WriteLn (t,'P',x[i],' ',y[i] );
- WriteLn (t);
- END;
-
- { --------------------------------------------------------------- }
- { Sucht die kleinste Zahl inerhalb des Arrays Meßwerte }
-
- FUNCTION Minimum (n1,n2 : Index; x : Messwerte) : Real ;
- VAR i,min : Index;
- BEGIN
- min := n1;
- FOR i := n1 + 1 TO n2 DO
- IF x[i] < x[min] THEN min := i;
- Minimum := x[min];
- END;
-
- { --------------------------------------------------------------- }
- { dto. die größte Zahl }
-
- FUNCTION Maximum (n1,n2 : Index; x : Messwerte) : Real ;
- VAR i,max : Index;
- BEGIN
- max := n1;
- FOR i := n1+1 TO n2 DO
- IF x[i] > x[max] THEN max := i;
- Maximum := x[max];
- END;
-
- { --------------------------------------------------------------- }
- { Gibt Fehlermeldungen aus }
- PROCEDURE Fehler (FehlerNr : Byte);
- CONST Klingel = #07;
- VAR Art : STRING [11];
- BEGIN
- Window (15,10,65,20);
- ClrScr;
- Window (17,11,64,20);
- WriteLn (Klingel,' Fehler :');
-
- CASE FehlerNr OF
- 1,4,5,6 : BEGIN
- WriteLn ('Lineare Regression nicht möglich.');
- WriteLn ('Ursache : Anzahl < 2 . (Gleiche Punkte dabei ');
- WriteLn ('nur einmal zählen.)');
- END;
- 2 : BEGIN
- WriteLn ('Quadratische Regression nicht möglich.');
- WriteLn ('Ursache : Anzahl < 2 . (Gleiche Punkte dabei ');
- WriteLn ('nur einmal zählen.)');
- END;
- 3 : BEGIN
- WriteLn ('Interpolation mit kubischen Splines nicht mög-');
- WriteLn ('lich. x - Wert doppelt eingegeben. Keine Funk-');
- WriteLn ('tion oder Anzahl der Werte > ',Spline_Max);
- END;
- END;
-
- CASE FehlerNr OF
- 4 : Art := 'Logarithmus';
- 5 : Art := 'Potenz';
- 6 : Art := 'Exponential';
- END;
-
- IF FehlerNr > 3 THEN
- BEGIN
- WriteLn ('Gilt auch für die ',Art,'funktion, die auf');
- WriteLn ('eine lineare Funktion zurückgeführt wird.');
- END;
- ReadLn;
- END;
-
- { -------------------------------------------------------------------------- }
- { -- Ende von REGUTIL.PAS -- }