invalid floating point operation
Код
Program nomer10;
uses crt;
Type
mas=array [1..5,1..5] of real;
mas1=array [1..5] of real;
Procedure Matrix( var a:mas);
var
i,j,y:integer;
Begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=exp((-i+1)*ln(2))*(j-3.8)*(j*abs(2-3/j));
write('a[',i,',',j,']=',a[i,j]:2:2,' ');
end;
writeln;
end;
End;
Procedure Vector(var a:mas; var x:mas1);
var
i, j: integer;
Dv: real;
begin
Dv:=1;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
if a[i,j]<0 then Dv:=Dv*a[i,j];
x[i]:=Dv;
end;
end;
for i := 1 to 5 do
writeln('x[',i,']=',x[i]);
end;
Function G (x:mas1):real;
var
i,k:integer;
S,d:real;
Begin
d:=1;
S:=0;
for i:=1 to 5 do
begin
begin
for k:=1 to i do
d:=d*x[k];
end;
S:=S+(sqr(x[i])+exp((1/3)*ln(d)));{вот здесь ошибка}
end;
G:=S;
End;
VAR
b:mas;
x1:mas1;
i,j:integer;
BEGIN
clrscr;
matrix(b);
writeln;
vector(b,x1);
writeln;
writeln('G=',G(x1):2:4);
readkey;
END.
uses crt;
Type
mas=array [1..5,1..5] of real;
mas1=array [1..5] of real;
Procedure Matrix( var a:mas);
var
i,j,y:integer;
Begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=exp((-i+1)*ln(2))*(j-3.8)*(j*abs(2-3/j));
write('a[',i,',',j,']=',a[i,j]:2:2,' ');
end;
writeln;
end;
End;
Procedure Vector(var a:mas; var x:mas1);
var
i, j: integer;
Dv: real;
begin
Dv:=1;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
if a[i,j]<0 then Dv:=Dv*a[i,j];
x[i]:=Dv;
end;
end;
for i := 1 to 5 do
writeln('x[',i,']=',x[i]);
end;
Function G (x:mas1):real;
var
i,k:integer;
S,d:real;
Begin
d:=1;
S:=0;
for i:=1 to 5 do
begin
begin
for k:=1 to i do
d:=d*x[k];
end;
S:=S+(sqr(x[i])+exp((1/3)*ln(d)));{вот здесь ошибка}
end;
G:=S;
End;
VAR
b:mas;
x1:mas1;
i,j:integer;
BEGIN
clrscr;
matrix(b);
writeln;
vector(b,x1);
writeln;
writeln('G=',G(x1):2:4);
readkey;
END.
пробовал менять тип на extended не помогает...
