Задание для курсовой работы по разделу «Разреженные матрицы и ортогональные списки» Требования, указания и рекомендации

Вид материалаДокументы
Подобный материал:
Задание для курсовой работы

по разделу «Разреженные матрицы и ортогональные списки»

Требования, указания и рекомендации

  1. Требуется разработать программу, реализующую заданную (непустую) последовательность действий над разреженными матрицами (с вещественными или целочисленными элементами) и позволяющую продемонстрировать корректность программной реализации этих действий. Разреженные матрицы представляются и реализуются одним из двух рассмотренных на лекции способов (по указанию преподавателя).
  2. Основные операции с матрицами должны быть оформлены в виде модуля (в смысле языка Борланд Паскаль). Основная программа, по сути, является тестирующим драйвером, реализующим простой, удобный и функционально достаточный интерфейс и обеспечивающим процесс демонстрации преподавателю проверки корректности вычислительного ядра программы.
  3. В разработанной программе необходимо обеспечить ввод исходных данных и вывод результатов в удобной и соответствующей поставленным задачам форме. По согласованию с преподавателем дополнительно должна быть реализована наглядная демонстрация вычислительного процесса (вывод промежуточных данных).
  4. Во всех случаях необходимо продумать, предложить и после согласования с преподавателем реализовать состав и форму представления входных и выходных данных. В первую очередь это относится к внешнему представлению разреженных матриц. Рекомендуется для визуализации матриц в режиме диалога задавать и отображать часть матрицы (прямоугольный блок или подматрицу), определяемую соответствующими параметрами (в частных крайних случаях блоком может быть либо один элемент, либо вся матрица). Блок матрицы можно изображать как в виде профиля (нулевые элементы – пробелом, а ненулевые – специальным символом, например, *), так и стандартным цифровым способом.
  5. Последовательность действий над матрицами задается преподавателем из следующего далее списка заданий.


Список заданий

  1. Подсчитать следующие характеристики заданного блока матрицы:
    1. Сумму и произведение всех элементов.
    2. Максимальный и минимальный элементы.
    3. Последовательность элементов, полученную при обходе по строкам (по столбцам).
    4. Список локальных максимумов (минимумов). Локальным максимумом называется элемент, не имеющий соседей больших (меньших), чем он сам. Соседями элемента являются элементы, ближайшие по вертикали, горизонтали или диагонали (если таковые имеются).
    5. Минимум из максимальных элементов строк.
    6. Максимум из минимальных элементов столбцов.
    7. Список седловых точек. Седловой точкой называют элемент блока, такой, что он является наименьшим в своей строке и одновременно наибольшим в своем столбце, или, наоборот, наибольшим в своей строке и наименьшим в своем столбце.
  2. Для двух заданных матриц A и B, имеющих согласованные размеры, вычислить:
    1. Сумму A+B и разность AB.
    2. Произведение A*B.
    3. Матрицу С, такую, что Cij = Min k=1..K {Aik + Bkj}, где K – число элементов в строках матрицы A, равное числу элементов в столбцах матрицы B.
    4. Матрицу A*B – B*A (здесь A и B – квадратные матрицы).
  1. Для заданной матрицы вычислить новую матрицу того же размера:
    1. Переставив несколько заданных пар столбцов.
    2. Переставив несколько заданных пар строк.
    3. Переставив несколько заданных пар столбцов и пар строк.
    4. Элементы новой матрицы Cij = yтi xj , где yтi – i-ая строка, а xj – j-й столбец исходной матрицы, и запись yтi xj означает скалярное произведение вектора-строки yтi на вектор-столбец xj. Исходная матрица – квадратная.
    5. Вычислив матричное произведение заданного вектора-столбца на заданный вектор-строку исходной матрицы.
    6. Применив операцию сглаживания матрицы, при которой каждый элемент новой матрицы получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы (включая сам этот элемент).
  1. Для заданной матрицы с неотрицательными элементами вычислить «укрупненную» новую матрицу меньшего размера, разбив исходную матрицу на прилегающие блоки заданного (согласованного) размера и заменив каждый такой блок на следующую величину:
    1. Сумму элементов блока.
    2. Максимум среди элементов блока.
    3. Количество ненулевых элементов в блоке.
    4. Среднее арифметическое ненулевых элементов блока.
    5. Количество элементов блока, величина которых принадлежит заданному диапазону.