1. Непонятно чему равно n на входе в TForm1.Button2Click
2. Нафига делать два цикла на заполнение a и b если это можно сделать одним:
Код:
for i:=0 to n-1
do for j:=0 to n-1
do begin
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
b[i,j]:=StrToInt(StringGrid2.Cells[j,i]);
end;
3. Никогда не пишите условие так:
Переменная L у вас логическое и писать надо так:
4. У меня есть стойкое подозрение, что надо так:
Код:
for i:=0 to n-1
do begin
l:=true;
for j:=0 to n-1
do if (a[i,j]>=0) and (b[i,j]>=0)
then begin
l:=false;
break;
end;
if l then x[i]:=1 else x[i]:=0 ;
end;
Т.е. выход за границы, да еще из внутреннего цикла не выходите.