ЛАБОРАТОРНАЯ РАБОТА 2
ТЕМА: Моделирование представления в памяти векторов и массивов
- Цель работы
Приобретение и закрепление навыков размещения в памяти векторов и массивов. Получение начальных представлений о модульности программы с точки зрения обрабатываемых данных.
- Прорабатываемые темы
Простейшие статические структуры данных
- Постановка задачи
Разработать способ экономного размещения в памяти заданного разреженного массива.
Разреженный массив - массив, большинство элементов которого равны между собой, так что хранить в памяти достаточно лишь небольшое число значений отличных от основного (фонового) значения остальных элементов.
Разработать процедуры/функции, обеспечивающие доступ к элементам массива по номерам строки и столбца. В контрольной программе обеспечить запись и чтение всех элементов массива.
Элементы, значения которых являются фоновыми, называют нулевыми; элементы, значения которых отличны от фонового, - ненулевыми. Но нужно помнить, что фоновое значение не всегда равно нулю.
Ненулевые значения хранятся, как правило, в одномерном массиве, а связь между местоположением в исходном, разреженном, массиве и в новом, одномерном, описывается математически с помощью формулы, преобразующей индексы массива в индексы вектора.
На практике для работы с разреженным массивом разрабатываются функции:
- для преобразования индексов массива в индекс вектора
- для получения значения элемента массива из ее упакованного представления по двум индексам (строка, столбец)
- для записи значения элемента массива в ее упакованное представление по двум индексам
При таком подходе обращение к элементам исходного массива выполняется с помощью указанных функций.
- все нулевые элементы расположены в левой части матрицы
- все нулевые элементы расположены в правой части матрицы
- все нулевые элементы расположены выше главной диагонали
- все нулевые элементы расположены в верхней части матрицы
- все нулевые элементы расположены в нижней части матрицы
- все элементы нечетных строк – нулевые
- все элементы четных строк – нулевые
- все элементы нечетных столбцов – нулевые
- все элементы четных столбцов – нулевые
- все нулевые элементы расположены в шахматном порядке, начиная с 1-го элемента 1-й строки
- все нулевые элементы расположены в шахматном порядке, начиная со 2-го элемента 1-й строки
- все нулевые элементы расположены на местах с четными индексами строк и столбцов
- все нулевые элементы расположены на местах с нечетными индексами строк и столбцов
- все нулевые элементы расположены выше главной диагонали на нечетных строках и ниже главной диагонали - на четных
- все нулевые элементы расположены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных
- все нулевые элементы расположены на главной диагонали, в первых 3 строках выше диагонали и в последних 2 строках ниже диагонали
- все нулевые элементы расположены в столбцах, индексы которых кратны 2
- все нулевые элементы расположены на главной диагонали и в нижней половине области ниже диагонали
- все нулевые элементы расположены на строках, индексы которых кратны 3
- матрица разделена диагоналями на 4 треугольника, элементы верхнего и нижнего треугольника нулевые
- все нулевые элементы расположены в столбцах, индексы которых кратны 4
- все нулевые элементы расположены в столбцах, индексы которых кратны 3
- матрица разделена диагоналями на 4 треугольника, элементы левого и правого треугольника нулевые
- все нулевые элементы расположены на главной диагонали
- все нулевые элементы расположены на строках, индексы которых кратны 2
- все нулевые элементы расположены на главной диагонали и в верхней половине области выше диагонали
- Все нулевые элементы размещены квадратами 2x2 в шахматном порядке (сначала 2 нулевых)
- Все нулевые элементы на диагоналях
- Все нулевые элементы на побочной диагонали