Witam. Potrzebuje delikatnej optymalizacji kodu liczenia średniej macierzy 3x3
1 2 3
4 5 6
7 8 9
na
srednia
* * *
* s *
* * *
Mój kod do robienia tego zadania wygląda tak i wcale nie jest mi takie rozpisywanie na rękę a nie mogę wpaść na nic lepszego :)
for i:=Low(r)+1 to High(r)-1 do
for j:=Low(r[1])+1 to High(r[1])-1 do
begin
suma := 0;
suma := suma + r[i-1,j];
suma := suma + r[i,j-1];
suma := suma + r[i+1,j];
suma := suma + r[i,j+1];
suma := suma + r[i-1,j-1];
suma := suma + r[i+1,j+1];
suma := suma + r[i-1,j+1];
suma := suma + r[i+1,j-1];
r[i,j] := round(suma / 8);
suma := 0;
suma := suma + g[i-1,j];
suma := suma + g[i,j-1];
suma := suma + g[i+1,j];
suma := suma + g[i,j+1];
suma := suma + g[i-1,j-1];
suma := suma + g[i+1,j+1];
suma := suma + g[i-1,j+1];
suma := suma + g[i+1,j-1];
g[i,j] := round(suma / 8);
suma := 0;
suma := suma + b[i-1,j];
suma := suma + b[i,j-1];
suma := suma + b[i+1,j];
suma := suma + b[i,j+1];
suma := suma + b[i-1,j-1];
suma := suma + b[i+1,j+1];
suma := suma + b[i-1,j+1];
suma := suma + b[i+1,j-1];
b[i,j] := round(suma / 8);
end;