Кто нибудь помогите не могу решить задачу в понедельник

smilie, а я в Паскале воще не секу

1) Procedure
2) Function
числа m, n, x, a вводятся с клавиатуры
И еще если пришлите целый код. PlzzZZ
Заранее благодарен:-) :molitva: :molitva:
uses crt;
procedure factM (m: LongInt; var rezM: LongInt);
var i: integer;
begin
rezM := 1;
for i := 1 to m do
rezM := rezM * i;
end;
procedure factN (n: LongInt; var rezN: LongInt);
var j: integer;
begin
rezN := 1;
for j := 1 to n do
rezN := rezN * j;
end;
var
y, x, a: integer;
m, n: integer;
begin
writeln ('Input m', m);
readLn;
m := factM(????);
writeln ('Input n', n);
readLn;
n := factN(????);
writeln ('Input x', x);
readLn;
writeln ('Input a', a);
y := factM * sqrt(x * x - a * a) + factN * (x * x - a * a);
read (y);
end.
y := factM * sqrt(x * x - a * a) + factN * (x * x - a * a);
Ты не сможешь это делать при использовании процедур. Для такого использования factM и factN должны быть функциями...
function factM:Longint;
var i: integer;
rezm:longint;
begin
rezM := 1;
for i := 1 to m do rezM := rezM * i;
factM:=rezM;
end;
function factN:Longint;
var i: integer;
rezN:longint;
begin
rezN := 1;
for i := 1 to m do rezN := rezN * i;
factN:=rezN;
end;
y := factM * sqrt(x * x - a * a) + factN * (x * x - a * a);
writeln(y);
var y:longint;
m,n,a,x:integer;
begin
write('Give me A: ');readln(a);
write('Give me X: ');readln(x);
write('Give me M: ');readln(m);
write('Give me N: ');readln(n);
writeln('Y=', factM * sqrt(x * x - a * a) + factN * (x * x - a * a));
readkey;
end.
function fact(x: integer): Longint;
var i: integer; rez: longint;
begin
rez := 1;
for i := 1 to x do rez := rez * i;
fact := rez;
end;
...
z := sqr(x) - sqr(a); { чтобы не вычислять 2 раза }
write( 'y =', fact(M) * sqrt(z) + fact(N) * z )
procedure fact (m: LongInt; var rez: LongInt);
var i: integer;
begin
rez := 1;
for i := 1 to m do
rez := rez * i;
end;
var nF,mF:longint;
n,m,a,x,z:integer;
begin
write('Give me A: ');readln(a);
write('Give me X: ');readln(x);
write('Give me M: ');readln(m);
write('Give me N: ');readln(n);
fact(n,nF);
fact(m,mF);
z := sqr(x) - sqr(a); { чтобы не вычислять 2 раза }
Writeln('y =', mF * sqrt(z) + nF * z);
readkey;
end.