Форум: "Основная";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
ВнизПроблема с глобальным динамическим массивом3 Найти похожие ветки
← →
Max1111 (2003-04-04 12:42) [0]Уважаемые мастера. Помогите Плиззз. Почему при обращении к одному из элементов глобально описанного массива , возникает ошибка:
Проект Project3.exe вызвал исключение класса EAccessViolation с сообщением ‘Access violation at address 0045E0CA in module Project3.exe’. Read of address 3FF5EB8d…
Код:
Procedure Poisk;
var j,k1,k2:byte;
Begin
{Нахождение f(X)}
for j:=0 to m do
Begin
k1:=0;
k2:=0;
for i:=1 to (n+a1+n+1) do
Begin
if i<=n then
mf[j]:=mf[j]+(sqr(mx[i-1])*ma[i-1,i-1,j]);
if (i>n) and (i<=(n+a1)) then
Begin
if k2<(n-1) then
k2:=k2+1
else
Begin
k1:=k1+1;
k2:=k1+1;
end;
if (k2<n) and (k1<=n) then
mf[j]:=mf[j]+2*ma[k1,k2,j]*mx[k1]*mx[k2];
end;
if (i>(n+a1)) and (i<=(n+a1+n)) then
mf[j]:=mf[j]+mx[i-n-a1-1]*mb[i-n-a1-1,j];
if i=(n+a1+n+1) then
mf[j]:=mf[j]+mc[j];
end;
showmessage("mf["+inttostr(j)+"]="+floattostr(mf[j]));
end;
{Нахождение F (большое)(mfb)}
{данная процедура использует локальную матрицу mfloc вместо глобальной
mf, тк при использовании последней, возникает неизвестная ошибка.Переприсваивание после
процедуры также не удается}
for j:=0 to 7 do
Begin
mfb[j]:=mf[0];
for i:=1 to m do
if mf[i]>0 then !!!Ошибка здесь
mfb[j]:=mfb[j]+exp(j*ln(10))*sqr(mf[i]);
showmessage("mfb["+IntToStr(j)+"]="+FloatToStr(mfb[j]));
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var k1,k2,j,all,d1,d2,d3:byte;
{ed:TEdit;}
lb:TLabel;
{l,t,}k:Integer;
mfloc,mxloc,delta:array of real;
mfsloc:array of array of real;
maloc:array of array of array of real;
{F1:TextFile;}
begin
m:=5;
SetLength(mf,m+1);
poisk;
end;
← →
Palladin (2003-04-04 12:46) [1]не вижу определиения переменной I в процедуре,
как она у тебя работает?
← →
Max1111 (2003-04-04 12:47) [2]Все осталные глобальные
← →
Palladin (2003-04-04 12:49) [3]делфи не позволяет использовать в циклах переменные не local scope
← →
Max1111 (2003-04-04 12:52) [4]Palladin
дело в том, что чуть выше в цикле массив абсолютно нормально заполняется...
Хотя он глобально-динамический.
Что значит local scope?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c