1. Как к элементу массива Ray прибавляют число 1000, ведь тип элементов массива Ray это байты, а байт может иметь максимальное значение 255?
2. Переменная jj в цикле инкрементируется от 0 до 255, как же тогда присваивается значение переменной sj:=lin[s11[jj],jjj]? Переменной sj присваивается значение байта из массива lin, адрес этого байта - это строка s11[jj], и столбец jjj, Нестыковка именно со значением строки, значение строки это jj-й элемент массива s11, но в массиве s11 всего 4 элемента(байта), а переменная jj инкрементируется до 255.
Код
type
position=array [1..9] of byte;
var
Kl : position;
Ray: position;
s00,s11,s44: array [0..3] of byte;
s0,s1,s4,ssj,ii,j,jj,jjj,sj: byte;
const
lin : array[1..8,1..3] of byte =
((1,2,3),(4,5,6),(7,8,9),
(1,4,7),(2,5,8),(3,6,9),
(1,5,9),(3,5,7));
begin
s00[s0]:=ssj;
inc(s0);
for jj:=0 to s4-1 do
for jjj:=1 to 3 do begin
sj:=lin[ssj,jjj];
if sj<>ii then Ray[sj]:=Ray[sj]+1000
end
for jj:=0 to s1-1 do begin
for jjj:=1 to 3 do begin
sj:=lin[ssj,jjj];
Ray[sj]:=Ray[sj]+10;
end
for jjj:=1 to 3 do begin
sj:=lin[s11[jj],jjj];
if (sj<>ii)and(Kl[sj]=0) then
Ray[sj]:=Ray[sj]+10
end
end
end;