Преобразование матрицы.

Пример 1:

Перестановка двух строк, номера n1 и n2 которых извстны.

Решение от преподавателя:

Перестановка двух строк, номера n1 и n2 которых извстны, выполняется следующим образом.

Составим функцию для перестановки двух целых чисел:

void RR( int &x, int &y) { int t=x; x=y; y=t; }

В другой функции или в main выполняем поэлементную перестановку каждой пары элементов:

for (int j=0; j

Пример 2:

Удаление k–й строки, где k известно.

Решение от преподавателя:

Удаление k–й строки, где k известно.

for (int i=k; i

for (int j=0; j

Здесь на место k–й строки помещаем каждый элемент (k+1)–й строки, на место (k+1)–й — (к+2)–ю строку и так далее. Наконец, на место (n-2)–й копируем (n-1)–ю строку.

Таким образом, все строки, начиная с (к+1)–й, “поднимаем на од-ну вверх”.

Но объём зарезервированной памяти для матрицы не изменяется, то есть физически ни одну строку из памяти мы не удаляли. Но после “удаления” одной строки количество обрабатываемых строк надо на одну уменьшить. Последняя строка в обработке уже не должна участвовать.

Например, выводить надо (n-1) строку.

Пример 3:

Вставка строки матрицы.

Решение от преподавателя:

Для вставки одной строки после к-й на первом этапе необходи-мо все строки с n–й до (к+1)-й в обратном порядке “опустить вниз”:

for (int i=n; i>=k+1; i--)

for (int j=0; j

Затем на место освободившейся (k+1)–й строки надо поместить вставляемую строку, например, одномерный введённый массив B такой же размерности m, что и строка матрицы:

for (int j=0; j

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн