Вычислить сумму элементов на данной картинке
procedure TForm1.Button1Click(Sender: TObject);
var a: array of array of integer;
n, i, j, s: integer;
begin
n := StrToInt(Edit1.Text);
Setlength(a, n, n);
stringGrid1.colcount := n;
stringGrid1.RowCount := n;
stringGrid1.Width := stringGrid1.DefaultColWidth * n + n + 2;
stringGrid1.height := stringGrid1.Defaultrowheight * n + n + 2;
for i := 0 to n - 1 do
for j := 0 to n - 1 do
begin
a[i, j] := i * n + j + 1;
stringGrid1.cells[j, i] := IntToStr(a[i, j]);
end;
s := 0;
for i := 0 to n - 1 do
for j := 0 to n - 1 do
if i < n - 1 - j then
s := s + a[i, j];
i := 0;
for j := 0 to n - 1 do
s := s + a[i, j];
i := n - 1;
for j := 0 to n - 2 do
s := s + a[i, j];
j := 0;
for i := 0 to n - 2 do
s := s + a[i, j];
j := n - 1;
for i := 0 to n - 1 do
s := s + a[i, j];
StaticText1.Caption:=IntToStr(s);
end;
Посчитать сумму элементов в крестообразной области матрицы, центральные элементы необходимо суммировать без повторов.
Нужно сделать 4 теста:
- Матрица для 1-го теста, размер матрицы 11х11.(единицы)
- Матрица для 2-го теста, размер матрицы 11х11.(цифры по порядку)
- Матрица для 3-го теста, размер матрицы 15х15.(единицы)
- Матрица для 4-го теста, размер матрицы 15х15.(цифры по порядку)
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
s := 0;
for i := 0 to n - 1 do
for j := 0 to n - 1 do
if (i >= crossStart and i <= crossEnd) or (j >= crossStart and j <= crossEnd) then
s := s + a[i, j];
