Подскажите почему ошибка: const x=0.2; y : array[1..9]of real=(0.1,0.2,-0.3,-0.04,5,6,-7.03,8,9); function t(u: real): real; begin t: =sin(u)+cos(u); end; function p(a,b: integer; s: array[1..9] of real): real; var i: integer; d: real; begin d: =1; for i: = a to b do d: =d*v[i]; p: =d; end; begin cls; writeln('z(x,y)=',exp(ln(t(x))*3)/p(y,1,9)+sqr(p(y,1,9))/exp(ln(t(x))*2/3)); end.
Объяснение:
Тут смысла нет передавать массив в качестве параметра, т.к. он описан как const .
Текст будет примерно такой
const x=0.2;
y :array[1..9]of real=(0.1,0.2,-0.3,-0.04,5,6,-7.03,8,9);
function t(u:real):real;
begin
t:=sin(u)+cos(u);
end;
function p(a,b:integer):real;
var i:integer; d:real;
begin
d:=1;
for i:= a to b do
d:=d*y[i];
p:=d;
end;
Begin
cls;
writeln('z(x,y)=',exp(ln(t(x))*3)/p(1,9)+sqr(p(1,9))/exp(ln(t(x))*2/3):6:4);
readln;
End.
Если нужно массив передать в функцию, то его описывают как новый тип переменной и передают
Вот так, например:
const z=9;
type mas=array[1..z] of integer;
var
u :mas;
i:integer;
// Вывод массива на экран
// a -массив n-размер,text - что хотим написать
procedure showmas(b:mas;n:integer;text:string);
var
i:integer;
begin
writeln(text);
for i:=1 to n do
write(b[i],' ');
readln;
end;
begin
for i:=1 to 9 do
u[i]:= random(20);
showmas(u,10,'Исходный массив u');
end.