home *** CD-ROM | disk | FTP | other *** search
- {***************************************************************************}
- {* TEST.INC *}
- {***************************************************************************}
- PROCEDURE signifikanz (VAR alpha : REAL);
-
- BEGIN
- REPEAT
- Write('Vorgabe der alpha-Signifikanz in % : '); ReadLn(alpha);
- UNTIL (alpha > 0.0) AND (alpha < 100.0);
- alpha := alpha/100.0;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE seitenanzahl (VAR seiten : INTEGER; VAR tcu, tco : BOOLEAN);
-
- BEGIN
- REPEAT
- Write('Einseitig oder zweiseitig (1 oder 2) ? '); ReadLn(seiten);
- IF seiten = 1 THEN
- BEGIN
- WriteLn(' <U> fuer Test auf Abweichungen nach unten ');
- Write(' <O> fuer Test auf Abweichungen nach oben ');
- Read(Kbd, ch); ch := UpCase(ch); Writeln(ch); Writeln;
- IF ch = 'U' THEN tcu := TRUE;
- IF ch = 'O' THEN tco := TRUE;
- END;
- UNTIL seiten IN [1..2];
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE nullhypothese (VAR h0 : REAL );
-
- BEGIN
- Write('Wert der zu testenden Hypothese ? '); ReadLn(h0);
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE zuruecklegen (VAR zurueck : BOOLEAN);
-
- BEGIN
- Write('Stichprobe mit Zuruecklegen (J/N) ? ');
- zurueck := Ja;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE Konfidenz (mw, cu, co : REAL);
-
- BEGIN
- GotoXY(20,18); WriteLn('Stichprobenmittelwert : ',mw:11:4);
- GotoXY(20,19); WriteLn('Untere Konfidenzgrenze : ',cu:11:4);
- GotoXY(20,20); WriteLn('Obere Konfidenzgrenze : ',co:11:4);
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE entscheidung ( test, alpha, h0, cu, co : REAL;
- seiten : INTEGER;
- tcu, tco : BOOLEAN);
-
- CONST msg = ' Die Hypothese wird abgelehnt ! ';
-
- VAR sig : REAL;
-
- BEGIN
- sig := (1.0-alpha*seiten)*100.0;
- IF seiten = 2 THEN
- IF ((test < cu) OR (test > co)) THEN WriteLn(msg)
- ELSE WriteLn(h0:11:2,' wird zum Niveau ',sig:4:2,'% akzeptiert.')
- ELSE IF seiten = 1 THEN
- IF tcu THEN
- IF test < cu THEN WriteLn(msg)
- ELSE WriteLn(h0:11:2,' wird zum Niveau ',sig:4:2,'% akzeptiert.')
- ELSE IF tco THEN
- IF test > co THEN WriteLn(msg)
- ELSE WriteLn(h0:11:2,' wird zum Niveau ',sig:4:2,'% akzeptiert.');
- warten;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE mitint (zurueck : BOOLEAN; n : INTEGER; alpha, h0, sx : REAL;
- VAR cu, co : REAL);
-
- VAR l, z : REAL;
- p : parametervector;
-
- BEGIN
- L := 0.0;
- REPEAT
- Write('Die Groesse des Loses ( > 0) ? '); ReadLn(L);
- UNTIL (L > 0.0);
- Write('Standardabweichung des Loses bekannt (J/N) ? ');
- IF Ja THEN
- BEGIN
- REPEAT
- Write('Wert der Standardabweichung des Loses ( > 0): ');
- ReadLn(sx);
- UNTIL sx >= 0.0;
- IF zurueck THEN sx := sx/Sqrt(n)
- ELSE IF (n / L < 0.05) THEN sx := sx/Sqrt(n)
- ELSE sx := sx/Sqrt(n)*Sqrt((L-n)/(L-1.0));
- z := quantil(nor, p, 1.0-alpha);
- END
- ELSE
- BEGIN
- IF zurueck THEN sx := sx/Sqrt(n-1.0)
- ELSE IF (n/L < 0.05) THEN sx := sx/Sqrt(n-1)
- ELSE sx := sx/Sqrt(n-1)*Sqrt((L-n)/L);
- IF n > 29 THEN z := quantil(nor, p, 1.0-alpha)
- ELSE BEGIN p[1] := n-1.0; z := quantil(stu, p, 1.0-alpha); END;
- END;
- cu := h0 - z * sx;
- co := h0 + z * sx;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE mitkonfidenz;
-
- VAR alpha, h0, mw, sx, cu, co, dummy : REAL;
- seiten : INTEGER;
- zur, tcu, tco : BOOLEAN;
- vec : vector;
-
- BEGIN
- readvector(vec); signifikanz(alpha); alpha := alpha/2.0;
- zuruecklegen(zur); mittel(vec, mw, dummy, sx); h0 := mw;
- mitint(zur, vec.n, alpha, h0, sx, cu, co);
- WriteLn('Stichprobenstandardabweichung : ',sx:11:4);
- Konfidenz(mw, cu, co);
- warten;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE mitteltest;
-
- VAR test, h0, alpha, cu, co, mw, sx, dummy : REAL;
- seiten : INTEGER;
- zur, tcu, tco : BOOLEAN;
- vec : vector;
-
- BEGIN
- readvector(vec); signifikanz(alpha); seitenanzahl(seiten, tco, tco);
- zuruecklegen(zur); alpha := alpha/seiten; nullhypothese(h0);
- mittel(vec, mw, dummy, sx); test := mw;
- mitint(zur, vec.n, alpha, h0, sx, cu, co);
- WriteLn('Stichprobenstandardabweichung : ',sx:11:4);
- Konfidenz(mw, cu, co);
- entscheidung(test, alpha, h0, cu, co, seiten, tcu, tco);
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE varianzint (VAR cu, co : REAL; n : INTEGER; alpha, vx : REAL);
-
- VAR p : parametervector;
-
- BEGIN
- p[1] := n-1.0;
- cu := p[1] * vx / quantil(chi, p, 1.0-alpha);
- co := p[1] * vx / quantil(chi, p, alpha);
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE varianzkonfidenz;
-
- VAR alpha, mw, vx, cu, co, dummy : REAL;
- seiten : INTEGER;
- tcu, tco : BOOLEAN;
- vec : vector;
-
- BEGIN
- readvector(vec); signifikanz(alpha); seitenanzahl(seiten, tcu, tco);
- alpha := alpha/seiten; mittel(vec, mw, vx, dummy);
- varianzint(cu, co, vec.n, alpha, vx);
- WriteLn('Stichprobenvarianz : ',vx:11:4);
- Konfidenz(mw, cu, co);
- warten;
- END;
- {---------------------------------------------------------------------------}
- PROCEDURE varianztest;
-
- VAR test, h0, mw, vx, cu, co, alpha, dummy : REAL;
- seiten : INTEGER;
- tcu, tco : BOOLEAN;
- vec : vector;
-
- BEGIN
- readvector(vec); signifikanz(alpha); seitenanzahl(seiten, tcu, tco);
- alpha := alpha/seiten; nullhypothese(h0); mittel(vec, mw, vx, dummy);
- test := vx; varianzint(cu, co, vec.n, alpha, vx);
- WriteLn('Stichprobenvarianz : ',vx:11:4);
- Konfidenz(mw, cu, co);
- entscheidung(test, alpha, h0, cu, co, seiten, tcu, tco);
- END;
- {---------------------------------------------------------------------------}
- { Ende TEST.INC }