Strona 1 z 1

[Pascal] program liczący wariancję pascal

: 24 lis 2012, o 11:59
autor: musol22
problem z wariancją w pascalu

Kod: Zaznacz cały

program wariarncja;
uses crt;
function silnia (n:integer):integer;
begin
writeln('podaj n');
readln(n);
if (n=0) or (n=1) then
silnia:=1
else silnia:= silnia(n-1)*n;
end;
function silniam (k,n,z:integer):integer;
begin
writeln ('podaj k');
readln(k);
z:=n-k;
silniam:= silniam(z-1) *z;
end;
function wariancja (w,silnia,silniam:integer ):integer;
w:=silnia/silniam;
begin
writeln('silnia wynosi',silnia(n));
silnia(n);
writeln('silnia manownika wynosi',silniam(z));
silniam(k,n,z);
writeln('wariancja wynosi');
wariancja(w)
readln;
end.
błąd wyskakuje 16 linijce

[Pascal] program liczący wariancję pascal

: 24 lis 2012, o 17:13
autor: abc666
Wywołujesz w 16 linijce procedurę silniam, która przyjmuje 3 parametry, a ty podajesz jeden. Może chodziło o wywołanie procedury silnia?

[Pascal] program liczący wariancję pascal

: 24 lis 2012, o 21:50
autor: pawel_wr
Błąd jest takze w linii 19 : -> wywołanie funkcji
bez parametrów.

Także w 18 : podwojenie nazw

[Pascal] program liczący wariancję pascal

: 29 lis 2012, o 00:08
autor: ksisquare
Po drobnym przeredagowaniu:

Kod: Zaznacz cały

program wariarncja;
uses crt;
 
function silnia (n:integer):integer;
begin
    writeln('podaj n');
    readln(n);
    if (n=0) or (n=1) then silnia:=1
    else silnia:= silnia(n-1)*n;
end;
 
function silniam (k,n,z:integer):integer;
begin
    writeln ('podaj k');
    readln(k);
    z:=n-k;
    silniam:= silniam(z-1) *z;
end;
 
function wariancja (w,silnia,silniam:integer ):integer;
    w:=silnia/silniam;
begin
    writeln('silnia wynosi',silnia(n));
    silnia(n);
    writeln('silnia manownika wynosi',silniam(z));
    silniam(k,n,z);
    writeln('wariancja wynosi');
    wariancja(w)
    readln;
end.
Kompilator podpowiada:

Kod: Zaznacz cały

prog.pas(17,26) Error: Wrong number of parameters specified for call to "silniam"
prog.pas(21,5) Warning: Unknown procedure directive had to be ignored: "identifier"
prog.pas(21,5) Fatal: Syntax error, "BEGIN" expected but "identifier W" found
Wariancja, a jakieś silnie?