![]() |
|
|
|
|
#1
|
|||
|
|||
|
Код:
procedure TForm1.Button2Click(Sender: TObject); Type Tmas=array[0..14] of integer; Var a,b:array[0..14] of Tmas; x:array[0..14] of integer; l:boolean; i,j:integer; begin for i:=0 to n-1 do for j:=0 to n-1 do a[i,j]:=StrToInt(StringGrid1.Cells[j,i]); for i:=0 to n-1 do for j:=0 to n-1 do b[i,j]:=StrToInt(StringGrid2.Cells[j,i]); for i:=1 to n do begin l:=true; for j:=1 to n do if (a[i,j]>=0) and (b[i,j]>=0) then l:=false; if l=true then x[i]:=1 else x[i]:=0 ; end; for i:= 1 to n do memo1.Lines.Add(inttostr(x[i])); end; обьясните почему в обоих случаях одномерный масив x[i]:=0 ???? реально замахался ![]() Последний раз редактировалось Admin, 14.12.2009 в 20:35. |
|
#2
|
|||
|
|||
|
Включи конроль границ в опциях проекта. Тогда поймешь.
У тебя выход за границу массива. |
|
#3
|
|||
|
|||
|
ниче не понял =) можно поподробнее ? =)
|
|
#4
|
|||
|
|||
|
У тебя массивы длинной от 0 до 14 (всего 15 элементов). И при их чтении ты честно идешь от индекса 0 до n-1 (подозреваю, что n = 15).
А при вычислении, ты идешь с индекса 1 до n (который = 15). Т.е. у тебя не рассчитывается первый элемент, зато идет обработка памяти за границей массива. Что там на самом деле находится - никто не знает. Может поэтому и не работает. |
|
#5
|
|||
|
|||
|
можно подробнее?? project/options там??7 если да то че именно ?
|
|
#6
|
|||
|
|||
|
ой сори 2 сообщения вышло =)) спс я всё понял =)))
|
|
#7
|
|||
|
|||
|
Ты проверь, мож и не в этом дело. Протсо это первое, что в глаза бросилось.
|
|
#8
|
||||
|
||||
|
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;Код:
if l=true then Код:
if l then Код:
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;Последний раз редактировалось Страдалецъ, 14.12.2009 в 23:28. |