Поменять местами элементы матрицы - Pascal ABC
Формулировка задачи:
Поменять местами в двумерном массиве:
в каждом столбце первый принадлежащий отрезку [a, b] и первый отрицательный элементы;
Помогите пожалуйста, с меня спасибо.
Решение задачи: «Поменять местами элементы матрицы»
textual
Листинг программы
Program Matrix; uses Crt; var mas : array [1..10,1..10] of integer; x, a, b : integer; i, j, j_1, j_2, k_1, k_2, m, n : byte; BEGIN ClrScr; Write('Введите диапазон: '); Read(a, b); Write('Количество строк массива: '); ReadLn(m); Write('Количество столбцов массива: '); ReadLn(n); for i:=1 to m do begin WriteLn('Введите ', n, ' чисел:'); for j:=1 to n do Read(mas[i, j]); end; // вывод массива WriteLn('Исходный массив:'); for i:= 1 to m do begin for j:=1 to n do Write(mas[i, j]:4); WriteLn end; //сортировка Writeln; for j:=1 to n do begin for i:=1 to m do begin if (mas[i,j]<0) and (mas[i,j]=a) then break; // Если первый отрицательный = первому элементу диапазона, то // выход из цикла for i т.е. переходим на следующий столбец if (mas[i,j]<0) and (j_1 < 1) then begin Inc(j_1); if(j_2 = 1) then begin mas[k_2,j]:=mas[i,j]; mas[i,j]:=x; end else begin k_1:=i; x:=mas[i,j]; end end; if (mas[i,j]>=a) and (mas[i,j]<=b) and (j_2 < 1)then begin Inc(j_2); if(j_1 = 1) then begin mas[k_1,j]:=mas[i,j]; mas[i,j]:=x; end else begin k_2:=i; x:=mas[i,j]; end end end; j_1:=0; j_2:=0; end; // вывод массива WriteLn('Искомый массив:'); for i:= 1 to m do begin for j:=1 to n do Write(mas[i, j]:4); WriteLn end; END.
Объяснение кода листинга программы
В данном коде происходит следующее:
- Запрашивается диапазон чисел для заполнения матрицы.
- Запрашивается количество строк и столбцов матрицы.
- Заполняется матрица заданными числами.
- Выводится исходная матрица.
- Матрица сортируется по возрастанию.
- Для каждой строки матрицы выполняется проверка: если все элементы строки отрицательны и равны заданному диапазону, то происходит переход на следующий столбец.
- Если условие из п.6 выполняется, то происходит обмен элементов текущей строки и следующего столбца.
- Выводится отсортированная матрица.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д