Другие языки программирования и технологии

«Двумерные массивы» Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие на побочной диагонали и ниже

Иса Алиев
Иса Алиев
246
написал в личку :)
Эрик ...гайнуллин
Эрик ...гайнуллин
1 784
Лучший ответ
program project1;
var
m,//размер матрицы
col,//кол-во столбцов
row,//кол-во строк
k,//счетчик для инициализации нач. значений элементов матрицы
min_col://минимальный индекс столбца матрицы
Integer;
A: array of array of Integer; //матрица

//процедура вывода матрицы на экран
procedure Print();
begin
Writeln();
for row := 0 to m - 1 do
begin
for col := 0 to m - 1 do
begin
if col = m - 1 then
Write(A[row, col], #10#13)
else
Write(A[row, col], #9)
end;
end;
Writeln();
end;

//начало кода
begin
Write('Enter m: ');
Readln(m); //получение размера матрицы
SetLength(A, m, m); // выделение памяти для матрицы
k := 1; //инциализация значения первого элемента

//заполнение матрицы
for row := 0 to m - 1 do
begin
for col := 0 to m - 1 do
begin
A[row, col] := k;
Inc(k);
end;
end;
//вывод матрицы на экран
Write(#10#13, 'Source matrix:');
Print;

//ключевой код задачи/////////
min_col := 0;
row := m - 1;
col := m - 1;
while row > 0 do
begin
if col < min_col then
begin
Dec(row);
Inc(min_col);
col := m - 1;
end;
A[row, col] := 0;
Dec(Col);
end;
/////////////////////////

//вывод на экран модифицированной матрицы
Write(#10#13, 'Modified matrix:');
Print;

//освобождение памяти выделенной под матрицу
A := nil;

Write('Press Enter for exit...');
Readln();
end.
Lescha Kasminin
Lescha Kasminin
1 791

Похожие вопросы