Удалить те строки и столбцы матрицы, в которых значения главной диагонали равны нулю - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дана квадратная матрица порядка n. Как строки со столбцами удалять из матрицы?

Решение задачи: «Удалить те строки и столбцы матрицы, в которых значения главной диагонали равны нулю»

textual
Листинг программы
var a:array[1..20,1..20] of integer;
    n,m,i,j,k:integer;
begin
randomize;
write('Введите размер матрицы: ');
readln(n);
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(5);
    write(a[i,j]:3);
   end;
  writeln;
 end;
i:=n;
while i>=1 do
if a[i,i]=0 then
 begin
  if i=n then
   begin
    n:=n-1;
    i:=i-1;
   end
  else
   begin
    for j:=i to n-1 do
    for k:=1 to n do
    a[j,k]:=a[j+1,k];
    for j:=i to n-1 do
    for k:=1 to n do
    a[k,j]:=a[k,j+1];
    n:=n-1;
    i:=i-1;
   end;
 end
else i:=i-1;
writeln('Удаление строк и столбцов с 0 на главной диагонали');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
end.

Объяснение кода листинга программы

  1. Создается переменная a типа array[1..20,1..20] of integer, которая представляет собой матрицу размером 20x20.
  2. Задаются три переменные n, m, i, j, k типа integer. Они будут использоваться для итерации по матрице и выполнения различных операций.
  3. Выводится сообщение Введите размер матрицы: и считывается значение переменной n от пользователя.
  4. Выводится сообщение Исходная матрица и происходит итерация по матрице a от 1 до n. В каждой итерации заполняются значения матрицы случайными числами от 1 до 5.
  5. После завершения итерации выводится символ новой строки.
  6. Переменная i устанавливается равной n и начинается цикл while. Цикл выполняется до тех пор, пока i больше или равно 1.
  7. Внутри цикла while проверяется условие if a[i,i]=0 then. Если это условие истинно, то выполняется блок кода внутри блока begin. В этом блоке устанавливаются значения матрицы a путем копирования значений из соседних строк и столбцов.
  8. После выполнения блока begin устанавливаются значения переменных i и j на единицу меньше их текущих значений.
  9. Если условие if i=n then истинно, то устанавливается значение переменной i на единицу меньше и выполняется блок кода внутри блока begin. В этом блоке устанавливаются значения матрицы a путем копирования значений из соседних строк и столбцов.
  10. После выполнения блока begin устанавливаются значения переменных i и j на единицу меньше их текущих значений.
  11. Если условие else i:=i-1; истинно, то переменная i уменьшается на 1.
  12. Выводится сообщение Удаление строк и столбцов с 0 на главной диагонали.
  13. Выполняется итерация по матрице a от 1 до n. Выводятся значения матрицы a с помощью функции write.
  14. После завершения итерации выводится символ новой строки.

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы