Паскаль. Работа с массивами
наваял тут лабу. вроде со всем справился. но вы уж проанализируйте пожалуйста. может, что-то не учёл.
задание: дана квадратная матрица А порядка n. сформировать вектор d из сумм элементов столбцов А, отсортировать вектор и сформировать из его элементов диагональную матрицу С. И окончательно найти след матрицы
наваял тут лабу. вроде со всем справился. но вы уж проанализируйте пожалуйста. может, что-то не учёл.
задание: дана квадратная матрица А порядка n. сформировать вектор d из сумм элементов столбцов А, отсортировать вектор и сформировать из его элементов диагональную матрицу С. И окончательно найти след матрицы
Код:
program laba;
var
a: array [1..5, 1..5] of integer;
c: array [1..5, 1..5] of integer;
d: array [1..5] of integer;
i, j, n, s, k, h, p: integer;
begin
Write(' ввод размерности матрицы n= ');
Readln(n);
for i := 1 to n do
for j := 1 to n do
begin
write('A[', i, ',', j, ']=');
Readln(a[i, j]);
end;
writeln(' полученная матрица ');
for i := 1 to n do
begin
for j := 1 to n do
Write(' ', a[i, j], ' ');
writeln;
end;
writeln;
for j := 1 to n do
begin
s := 0;
for i := 1 to n do
s := s + a[i, j];
d[j] := s;
end;
Write('вектор d--> ');
for j := 1 to n do
write(d[j]:4);
writeln; writeln;
for j := 1 to n - 1 do
for k := 1 to n - j do
if d[k] > d[k + 1] then begin
h := d[k];
d[k] := d[k + 1];
d[k + 1] := h
end;
write('Отсортированный массив: ');
for j := 1 to n do
write(d[j]:4);
writeln;
for i := 1 to n do
for j := 1 to n do
begin
if i = j then c[i, j] := d[j] else c[i, j] := 0;
end;
writeln(' полученная матрица c:');
for i := 1 to n do
begin
for j := 1 to n do
Write(' ', c[i, j], ' ');
writeln;
end;
p := 0;
for i := 1 to n do
p := p + c[i, i];
writeln('след матрицы = ', p);
end.