miało być tak żeby wykonać to pierwsze zad z rzutami z 50 razy i wyniki miały być coś w stylu
ID | Wynik rzutu
Wynik rzutu miał być w okolicach 0.5 (ja zrobiłem koło 50 żeby potem sobie dzielić przez 100 bo nie umiem randoma dla floatów)
ja to zasymulowąłem :
create or replace FUNCTION symulate return boolean is x PLS_INTEGER; y pls_integer; z pls_integer; rn NUMBER(20); BEGIN dbms_random.initialize(4354543);
delete from wyniki where 1=1;
for j in 1..1000 loop x := SYS.dbms_random.value(45,55); insert into wyniki values (j, x); rn := x;
end loop; dbms_random.terminate; return true; END;
potem napisałem te procedurę
create or replace PROCEDURE Odchylenie ( var_a IN OUT float, var_b OUT float) IS srednia float; odchyl float; srBezw float; n number; excep1 exception; ex2 exception;
BEGIN
select avg(wynik/100) into srednia from wyniki;
select sum((wynik/100 - srednia)*(wynik/100 - srednia)) into odchyl from wyniki;
select count(*) into n from wyniki;
odchyl := sqrt(odchyl / n);
select sum(abs(wynik/100 - var_a)) into srBezw from wyniki;
srBezw:= srBezw/n;
var_a:=odchyl; var_b:=srbezw;
END ;
!!wynik dziele przez 100 bo miałem koło 50 w tabeli!!