Работа 3.7 Упр.25 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 25. Расположить столбцы матрицы D[M, N] в порядке возрастания элементов k-й строки (1 < = k < = М). *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-7/25 98
Нужно переставить столбцы матрицы так, чтобы элементы k-й строки в них шли по возрастанию. Удобно сделать это последовательными обменами соседних столбцов, если в выбранной строке левый элемент больше правого.
Для матрицы $$D[M,N]$$ алгоритм такой:
- считываем или задаём матрицу;
- вводим номер строки $$k$$;
- сравниваем элементы $$D[k,j]$$ и $$D[k,j+1]$$;
- если $$D[k,j] > D[k,j+1]$$, то меняем местами все элементы столбцов $$j$$ и $$j+1$$;
- после прохода по всем соседним парам столбцов получаем нужный порядок.
Программа на Pascal:
const n=5;
var a:array[1..n,1..n] of integer;
i,j,k,l,buf:integer;begin
randomize;writeln(‘Исходная матрица’);
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(1000);
write(a[i,j]:4);
end;
writeln;
end;writeln(‘Номер строки -> ‘);
readln(k);for i:=1 to n do
for j:=1 to n-1 do
if a[k,j] > a[k,j+1] then
begin
for l:=1 to n do
begin
buf:=a[l,j];
a[l,j]:=a[l,j+1];
a[l,j+1]:=buf;
end;
end;writeln(‘Преобразованная матрица’);
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
readln;
end.
В этой программе сортировка столбцов выполняется по значениям выбранной строки $$k$$, а при обмене меняются элементы всех строк в двух соседних столбцах.
Ответ
Столбцы матрицы переставляются по возрастанию элементов $$k$$-й строки; приведённая программа выполняет это с помощью последовательных обменов соседних столбцов.