Необходимо заполнить двумерный массив, как указано задании, в Pascal.
I - отвечает за номер строки.
J - отвечает за номер столбца.
Заполненные массивы должны выглядеть так:
a) при const n=3, m=3
1 2 1
2 3 2
1 2 1
в) при const n=5, m=5
1 2 3 2 1
2 1 2 1 2
3 2 1 2 3
2 1 2 1 2
1 2 3 2 1

1
Главное
Ура, готово! Но вместо 3 в центре, в первом случае пишет 1. Там точно 3? Если да то я доработаю алгоритм. просто есть 2 варианта :)
Точно 3
Ну что?
Я дал ответ, вы проверяли?

Ответы и объяснения

2013-11-10T17:00:54+00:00
Program Task;
Const N = 3;
Var A: Array [1..N, 1..N] of Integer;
d, p, n
First, nLast, I, J, K: Integer;
Begin
nFirst := 1;
nLast := N;
p := (N Div 2 + 1);
For K := 1 To p Do Begin
If K = p Then
Begin
d := p + 1;
If d > 3 Then
d := 1;
A[nFirst, nLast] := d;
Break;
End;
For J := nFirst To nLast Do
Begin
If J <= p Then
Begin
d := d + 1;
End
Else
Begin
d := d - 1;
End;
A[nFirst, J] := d;
A[nLast, J] := d;
End;
d := 0;
For I := nFirst To nLast Do
Begin
If I <= p Then
Begin
d := d + 1;
End
Else
Begin
d := d - 1;
End;
A[I, nFirst] := d;
A[I, nLast] := d;
End;
d := 0;
nFirst := n
First + 1;
nLast := nLast - 1;
End;
For I := 1 To N Do
Begin
For J := 1 To N Do
Write(A[I, J], ' ');
WriteLn;
End;
ReadLn;
End.
Хотя не думаю, что центральная цифра правильным образом высчитывается... Но результат правильный :)