Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

странности

14K
27 января 2006 года
Inferno_2006
4 / / 11.01.2006
при исполнении этого простенького кода компилятор
выдает ошибки (например если нажать кнопку где 14 раз подряд)

var
i,j,p,l,h : Integer;
mas1 : array[1..40, 1..40] of Integer;
mas2 : array[1..40, 1..40] of Integer;
mas3 : array of Integer;
mas4 : array[1..4] of Integer;

begin

h := stolbecA*strokaA*stolbecB;
SetLength(mas3, h);

/////////////////////////////////////////////////////

for i := 1 to strokaA do
for j := 1 to stolbecA do
mas1[j,i] := StrToInt(StringGrid1.Cells[i,j]);
for i := 1 to strokaB do
for j := 1 to stolbecB do
mas2[j,i] := StrToInt(StringGrid2.Cells[i,j]);

/////////////////////////////////////////////////////

l:=0;
for j := 1 to stolbecA do
for i := 1 to strokaA do
for p := 1 to stolbecB do
begin
l := l + 1;
mas3[l]:= mas1[i,j] * mas2[j,p];
end;

for l := 1 to 4 do
mas4[l]:= mas3[l] + mas3[l+4];
l:=0;
for i:=1 to strokaA do
for j:=1 to stolbecB do
begin
l := l + 1;
StringGrid3.Cells[j,i]:= IntToStr(mas4[l]);
end;

почему??????????????????????7
247
27 января 2006 года
wanja
1.2K / / 03.02.2003
Ну, во первых здесь:
Цитата:

l:=0;
for j := 1 to stolbecA do
for i := 1 to strokaA do
for p := 1 to stolbecB do
begin
l := l + 1;
mas3[l]:= mas1[i,j] * mas2[j,p];
end;


array of type начинается с нуля и идет до n-1(Где n - размер массива)
А что это, кстати? Произведение матриц?

5
27 января 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Inferno_2006

SetLength(mas3, h);


Измени на

 
Код:
SetLength(mas3, h+1);
И всё должно работать - не будет происходить выхода заграницы mas3
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог