![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Преобразование матриц, сортировка.
В каждой строке матрицы поменять местами наибольший элемент с наименьшим элементом. Если в строке несколько наибольших элементов и (или) несколько наименьших, то поменять местами первый наибольший с последним наименьшим этой строки.
1. Поменять местами строки матрицы, в которых находятся первое отрицательное число первого столбца и последнее положительное число этого же столбца. Если в первом столбце нет отрицательных чисел, то первую строку матрицы поменять местами с той, в которой находится последнее положительное число первого столбца. Если в первом столбце нет положительных чисел, то последнюю строку матрицы поменять местами с той, в которой находится первое отрицательное число первого столбца.
2. В квадратной матрице поменять местами строку и столбец, на пересечении которых находится наибольший элемент всей матрицы. Если наибольших чисел несколько, то переставить строку с наименьшим индексом со столбцом с наибольшим индексом.
3. Из матрицы “удалить” строку и столбец, на пересечении которых находится наибольший элемент всей матрицы, “подтянув” элементы матрицы к левому верхнему углу. Элементам последней строки и последнего столбца присвоить нулевое значение.
4. Рассортировать строки целочисленной матрицы по следующему параметру строки:
1) количеству четных чисел в строке;
2) количеству чисел, у которых первая слева цифра четная;
3) наибольшей сумме цифр чисел строки;
4) сумме наибольших цифр чисел строки;
5) наибольшему элементу строки.
Замечание. Для решения подобных задач сортировки эффективнее использовать указатели и динамические матрицы, которые рассматриваются во второй части книги.
Матрицы специального вида.
6. Квадратная матрица A[n][n] называется симметричной относительно главной диагонали, если Aij = Aji для i < j. Записать такую матрицу в одномерный массив размерности n ∙(n +1)/2, сохранив в нем элементы главной диагонали и расположенные выше ее. Вывести такой одномерный массив в виде симметричной матрицы.
7. Решить такую же задачу (см. 6), если матрица симметрична относительно побочной диагонали.
Указание к задачам 8 — 19. Симметричную относительно главной или побочной диагонали квадратную матрицу A[n][n] хранить в виде одномерного массива размерности n ∙(n +1)/2, поместив в него элементы одного треугольника и диагонали.
8 — 9. Найти произведение вектора на симметричную относительно главной (побочной) диагонали матрицу.
10 —11. Найти произведение симметричной относительно главной (побочной) диагонали матрицы на вектор.
12 — 13. Найти сумму двух матриц, первая из которых симметрична относительно главной (побочной) диагонали.
14 — 15. Найти произведение двух матриц, первая из которых симметрична относительно главной (побочной) диагонали.
16 —17. Найти сумму двух матриц, симметричных относительно главной (побочной) диагонали.
18 — 19. Найти произведение двух матриц, симметричных относительно главной (побочной) диагонали.
20 — 21. Дана треугольнаяматрица, т. е. такая квадратная матрица, в которой все элементы выше главной (побочной) диагонали, имеют одинаковые значения, например, нуль. Записать такую матрицу в одномерный массив размерности n∙ (n +1)/2, где n — количество строк и столбцов матрицы, сохранив в нем только элементы, расположенные ниже главной (побочной) диагонали. Вывести такой одномерный массив в виде матрицы, выводя и одинаковые (например, нулевые) ее значения.
22 — 33. Решить задачи 8 — 19 для треугольной матрицы с нулевым вторым треугольником со следующим требованием. Треугольную относительно главной (побочной) диагонали квадратную матрицу A[n][n] хранить в виде одномерного массива размерности n ∙(n +1)/2, поместив в него элементы одного ненулевого треугольника.
СПИСОК РЕКоМЕНДУЕМОЙ ЛИТЕРАТУРЫ
Аленский, Н. А. Основы программирования на языке С++: учеб. пособие / Н. А. Аленский. — Минск: АПО, 2005. — 148 с.
Аленский, Н. А. Практическое руководство по языку C++: учеб. пособие / Н. А. Аленский. — Минск: АПО, 2007. — 276 с.
Крэйг, А. Освой самостоятельно Borland C++5 / А. Крэйг. — М.: Бином, 1997. — 719 с.
Дейтел, Х. М. Как программировать на С++ /Х. М. Дейтел, П. Дж Дейтел. — М.: Бином, 1998. — 1020 с.
Демидович, Е. Н. Основы алгоритмизации и программирования. Язык Си: пособие для студентов БГУИР / Е. Н. Демидович.— Минск, 2001. — 440 с.
Керниган Б. Язык программирования Си / Керниган Б. и др. — М.: Финансы и статистика, 1992.
Подбельский В. В. Программирование на языке Си / В. В. Подбельский, С. С. Фомин — М.: Финансы и статистика, 1999. — 600 с.
Подбельский В. В. Язык С++: учеб. пособие / В. В. Подбельский. — М.: Финансы и статистика, 2000. — 560 с.
Шилдт, Г. Программирование на BORLAND C++ для профессионалов / Г. Шилдт. — Минск: ООО «Попурри», 1999. — 800 с.
Шилдт, Г. Самоучитель С++ / Г. Шилдт. — СПб.: БХВ, 2002. — 688 с.
Дата публикования: 2015-02-18; Прочитано: 485 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!