home *** CD-ROM | disk | FTP | other *** search
- {
- F i l e I n f o r m a t i o n
-
- * DESCRIPTION
- Include source code file for curve.
-
- * ASSOCIATED FILES
- CURVE.PAS
- ASSAY.TXT
- CURVE.COM
- CURVE4.EXE
- CURVE4.PAS
- PRINTOUT.INC
- PT.LAS
- README
- SAMPLE.INC
- SAMPLE2.INC
- SAMPLE4.INC
- SAMPLE4B.INC
- SPACER.INC
- TOOLS.INC
- TOOLS4.INC
-
- ==========================================================================
- }
- { SAMPLE2.INC }
-
- { SPACE.INC used like the basic command spc() to add spaces }
- PROCEDURE SPC ( FIELD : INTEGER);
-
- VAR
- SPACES : STRING[80];
- I , SPACEONLINE : INTEGER;
-
- BEGIN
- SPACES :=' ';
- SPACEONLINE := FIELD;
- FOR i := 1 TO SPACEONLINE DO SPACES := SPACES + ' ';
- WRITE (LST,SPACES);
- END;
-
- PROCEDURE Y_SINGLE_SAMPLE(TOTAL : INTEGER; FIT : INTEGER);
- VAR
- SAMPLE, SPACER, PACE : INTEGER;
- XV, YV, DIL : ARRAY[1..50] OF REAL;
- T1, T2, DILUTION : ARRAY[1..50] OF STR25;
- SPECIMEN : ARRAY[1..50] OF STR25;
- CHOICE : CHAR;
- BEGIN
- CLRSCR;
- FOR SAMPLE := 1 TO TOTAL DO
- BEGIN
- WRITE('SPECIMEN ? ');
- READLN(SPECIMEN[SAMPLE]);
- WRITELN;
- WRITE('ENTER TEST Y ? ');
- READLN(YV[SAMPLE]);
- WRITE('ENTER DILUTION FACTOR [ UND = 1 ] ');
- READLN(DIL[SAMPLE]);
- WRITELN
- END;
- CASE FIT OF
- 1 : BEGIN
- DISPLAY_CURVE(1);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := (YV[SAMPLE] - B[FIT] / M[FIT]);
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END;
- 2 : BEGIN
- DISPLAY_CURVE(2);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := SQR((YV[SAMPLE] / B[FIT] * (1 / M[FIT])));
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- write('# ',sample,' ');
- writeln(specimen[sample],' = ',xv[sample]:2:2)
- END;
- PAUSE
- END;
- 3 : BEGIN
- DISPLAY_CURVE(3);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := EXP((YV[SAMPLE]-B[FIT])/M[FIT]);
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END;
- 4 : BEGIN
- DISPLAY_CURVE(4);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := LN(YV[SAMPLE] / B[FIT]) / M[FIT];
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END
- END; { CASE }
- { HARDCOMPY }
- WRITELN; INVERSE;
- WRITE(' do you want a hardcopy? [ Y/N ] '); NO_inverse;
- READLN(CHOICE);
- IF CHOICE IN ['Y','y'] THEN BEGIN
- WRITE(LST,'---------------------------');
- WRITE(LST,'---------------------------');
- WRITELN(LST); WRITELN(LST);
- WRITELN(LST,'SAMPLES'); WRITELN(LST);
- WRITE(LST,'# '); SPC(14);
- WRITE(LST,'SAMPLE'); SPC(6);
- WRITE(LST,'DILUTION'); SPC(11);
- WRITE(LST,' t '); SPC(11);
- WRITE(LST,' UNITS/ML');
- WRITE(LST);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- WRITE(LST,SAMPLE);
- PACE := LENGTH(SPECIMEN[SAMPLE]);
- SPACER := 20 - PACE;
- SPC(SPACER);
- WRITE(LST,SPECIMEN[SAMPLE]);
- STR(DIL[SAMPLE],DILUTION[SAMPLE]);
- PACE :=LENGTH(DILUTION[SAMPLE]);
- SPACER := 19 - PACE;
- SPC(SPACER);
- WRITE(LST,DIL[SAMPLE]:2:2);
- STR(XV[SAMPLE],T1[SAMPLE]);
- PACE := LENGTH(T1[SAMPLE]);
- SPACER := 22 - PACE;
- SPC(SPACER);
- WRITE(LST,YV[SAMPLE]:2:2);
- SPC(12);
- WRITELN(LST,XV[SAMPLE]:2:2);
- END;
- END
- END;
-
-
- PROCEDURE Y_PAIRED_SAMPLE (TOTAL, FIT : INTEGER);
- VAR
- SAMPLE, SPACER, PACE : INTEGER;
- YV1, YV2, XV, YV, DIL : ARRAY[1..50] OF REAL;
- T1, T2, DILUTION : ARRAY[1..50] OF STRING[10];
- SPECIMEN : ARRAY[1..50] OF STR25;
- CHOICE : CHAR;
- BEGIN
- CLRSCR;
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- WRITE('SPECIMEN NAME ? ');
- READLN(SPECIMEN[SAMPLE]);
- WRITELN;
- WRITE('ENTER TEST Y1 ? ');
- READLN(YV1[SAMPLE]);
- WRITE('ENTER TEST Y2 ? ');
- READLN(YV2[SAMPLE]);
- WRITE(' enter dilution factor [ und = 1 ] ');
- READLN(DIL[SAMPLE]);
- WRITELN;
- YV[SAMPLE] := (YV1[SAMPLE] + YV2[SAMPLE]) / 2
- END;
- { DISPLAY & COMPUTATIONS }
- CASE FIT OF
- 1 : BEGIN
- DISPLAY_CURVE(1);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := (YV[SAMPLE] - B[FIT]) / M[FIT];
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END;
- 2 : BEGIN
- DISPLAY_CURVE(2);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := SQR( (YV[SAMPLE] / B[FIT]) * (1 / M[FIT]) );
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- write('# ',sample,' ');
- writeln(specimen[sample],' = ',xv[sample]:2:2)
- END;
- PAUSE
- END;
- 3 : BEGIN
- DISPLAY_CURVE(3);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := EXP((YV[SAMPLE]-B[FIT])/M[FIT]);
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END;
- 4 : BEGIN
- DISPLAY_CURVE(4);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- XV[SAMPLE] := LN(YV[SAMPLE] / B[FIT]) / M[FIT];
- XV[SAMPLE] := XV[SAMPLE] * DIL[SAMPLE];
- WRITE('# ',SAMPLE,' ');
- WRITELN(SPECIMEN[SAMPLE],' = ',XV[SAMPLE]:2:2)
- END;
- PAUSE
- END
- END; { CASE }
- { HARDCOPY }
- WRITELN; INVERSE;
- WRITE(' do you want a hardcopy? [ Y/N ] '); NO_inverse;
- READLN(CHOICE);
- IF CHOICE IN ['Y','y'] THEN BEGIN
- WRITE(LST,'------------------------------------');
- WRITE(LST,'------------------------------------');
- WRITELN(LST); WRITELN(LST);
- WRITELN(LST,'SAMPLES'); WRITELN(LST);
- WRITE(LST,'# '); SPC(11);
- WRITE(LST,'SAMPLE'); SPC(7);
- WRITE(LST,'DILUTION'); SPC(6);
- WRITE(LST,' T1 '); SPC(6);
- write(lst,' T2 '); spc(4);
- WRITE(LST,' UNITS/ML');
- WRITELN(LST);
- FOR SAMPLE := 1 TO TOTAL DO BEGIN
- WRITE(LST,SAMPLE);
- PACE := LENGTH(SPECIMEN[SAMPLE]);
- SPACER := 20 - PACE;
- SPC(SPACER);
- WRITE(LST,SPECIMEN[SAMPLE]);
- STR(DIL[SAMPLE],DILUTION[SAMPLE]);
- PACE :=LENGTH(DILUTION[SAMPLE]);
- SPACER := 15 - PACE;
- SPC(SPACER);
- WRITE(LST,DIL[SAMPLE]:2:2);
- STR(XV[SAMPLE],T1[SAMPLE]);
- PACE := LENGTH(T1[SAMPLE]);
- SPACER := 18 - PACE;
- SPC(SPACER);
- WRITE(LST,YV1[SAMPLE]:2:2);
- SPC(5);
- write(lst,yv2[sample]:2:2);
- spc(6);
- WRITELN(LST,XV[SAMPLE]:2:2);
- END;
- END
- END;
-
- procedure x_samples(var total : integer);
- var
- choice : char;
- begin
- writeln; inverse;
- write('computation of x points'); NO_INVERSE;
- writeln;
- write('HOW MANY SAMPLES TO BE CALCULATED ? ');
- READLN(TOTAL);
- WRITE('ARE PAIRS OF NUMBERS TO BE CALCULATED [Y/N ] ');
- READLN(CHOICE);
- IF CHOICE IN ['N','n'] THEN X_SINGLE_SAMPLE(TOTAL,FLAG)
- ELSE
- X_PAIRED_SAMPLE(TOTAL,FLAG)
- END;
-
- procedure y_samples(var total : integer);
- var
- choice : char;
- begin
- writeln; inverse;
- write('COMPUTATIONS OF Y POINTS'); NO_INVERSE;
- WRITELN;
- WRITE('HOW MANY SAMPLES TO BE CALCULATED ? ');
- READLN(TOTAL);
- WRITE('ARE PAIRS OF NUMBERS TO BE CALCULATED ? [ Y/N ] ');
- READLN(CHOICE);
- IF CHOICE IN ['N','n'] THEN y_SINGLE_SAMPLE(TOTAL,FLAG)
- ELSE
- Y_PAIRED_SAMPLE(TOTAL,FLAG)
- END;
-
-
- PROCEDURE SAMPLE_PREP (VAR FIT : INTEGER);
- VAR
- X, Y, CHOICE : CHAR;
- BEST_FIT : INTEGER;
- TITLE : MARK;
- BEGIN
- CLRSCR;
- INVERSE;
- WRITE('* use this routine only after computations * '); NO_INVERSE;
- WRITE(' CONTINUE ? [ Y/N ] ');
- READLN(CHOICE);
- IF CHOICE IN ['N','n'] THEN MENU
- ELSE
- BEGIN
- FOR BEST_FIT := 1 TO 4 DO
- IF C[BEST_FIT] <> 0 THEN BEGIN
- WRITE('( ',BEST_FIT,' ) ');
- LABELS(BEST_FIT,TITLE)
- END;
- WRITELN; WRITE('ENTER WHICH ? ');
- READLN(FIT);
- IF (C[FIT] = 0) OR (FIT > 4) THEN SAMPLE_PREP(FIT);
- WRITE('ENTER X TO Y [ press x ] or Y TO X [ press y ] ');
- readln(choice);
- IF CHOICE IN ['X','x'] THEN X_SAMPLES(FIT)
- ELSE Y_SAMPLES(FIT)
- END
- END;
-