• Предмет: Информатика
  • Автор: Metalalchemist
  • Вопрос задан 9 лет назад

Pascal. Нужно сформировать двумерный массив размерности n x n, при этом каждый элемент массива должен заполняться в зависимости от его места в массиве:
1 2 3 ... n-1 n
0 1 2 ... n-2 n-1
0 0 1 ... n-3 n-2
. . . . .
. . . . .
. . . . .
0 0 0 ... 0 1

Нужна только формула, по которой заполняется массив, мой вариант: j-i+1 где j - координата абсцисс, а i - координата биссектрисс, но у меня получаются кое-где отрицательные значения вместо нуля

Ответы

Ответ дал: Segrif
0
Почему бы просто не использовать условный оператор?

If j >= i then
  a[i,j] := j - i + 1
else
 a[i,j] := 0

Если важно именно в виде одной формулы,
a[i,j] := max(i - j + 1, 0)
Ответ дал: Metalalchemist
0
Спасибо, сказали обойтись без условного оператора, одной формулой обязательно
Ответ дал: Segrif
0
А обязательно по одной формуле? В смысле, можно сделать два цикла
Ответ дал: Segrif
0
for i := 1 to n do
  begin
  for j := 1 to i-1 do a[i,j] := 0
  for j := i to n do a[i,j] := j - i + 1
  end
Ответ дал: Metalalchemist
0
Два цикла + формула, просто формулу в цикл запихиваешь и все
Ответ дал: Metalalchemist
0
Но уж циклы-то я напишу
Вас заинтересует