Страница 1 из 1

массив

Добавлено: 08 май 2005, 00:50
Wudro
Привет всем! кто-нибудь решите мне ,пожайлуста, задачку по паскалю!
Задача пр массивы.

Квадратная матрица,симметричная относительно главной диагонали,
задана верхним треугольником в виде одномерного массива.
Восстановить исходную матрицу и напечатать по строкам.
Заранее благодарен!

Добавлено: 08 май 2005, 02:16
Vovik
Если дана сторона матрици N, то:
var A : array[1..скоко надо] of че надо.
i,j : integer;
s : array[1..maxN+1] of integer;
begin
{ввели N и A}
s[1]:=0;
for j:=1 to n do
begin
for i:=1 to n do
if i>=j then
write(A[i+s[j]],' ')
else
write(A[s+j],' ');
writeln;
s[j+1]:=s[j]+N+1-j;
end;
end.

Это если дано N, если же дана только длинна масива А -- M, то N вычисляем по формуле N: = (1 + sqrt(1+4*M))/2; а дальше см. выше :)