Евразийский
научный
журнал

Алгоритм вывода объемных массивов спиральным методом и организация математических операций над ними.

Поделитесь статьей с друзьями:
Автор(ы): Зеленюк Дмитрий Олегович
Рубрика: Технические науки
Журнал: «Евразийский Научный Журнал №2 2018»  (февраль, 2018)
Количество просмотров статьи: 1323
Показать PDF версию Алгоритм вывода объемных массивов спиральным методом и организация математических операций над ними.

Зеленюк Дмитрий Олегович
Студент НИУ «БелГУ»
Направление: информационные системы и технологии,
2-й курс
Россия, г. Белгород
E-mail: zelenyuk.d@gmail.com

Массив является удобным способом хранения нескольких связанных элементов данных в едином контейнере для большего удобства и эффективности программирования. Объединяя массивы и циклы можно написать небольшое число операторов, которые обрабатывают большой объем данных.

Массив — упорядоченный набор данных, используемый для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

Над матрицами можно проводить различные математические операции, например : транспонирование, возведение в степень, приведение к угловому виду, вывод в строку различными способами Для того чтобы возвести матрицу А в степень n ее необходимо умножить саму на себя n раз. Транспонированием матрицы называется замена ее строк и столбов между собой. Верхнетреугольной называется матрица у которой все элементы ниже главной диагонали равны нулю

Например при выводе двумерного массива по спирали целесообразно использовать функции и циклы для обхода массива и дальнейшего вывода. Создается динамический массив размерностью NxN и заполняется случайными числами от −10 до 10. После этих действий вызывается функции spiralPrint, в которую передается размерность массива и его элементы через указатель. В самой функции использованы различные переменные для обозначения конца и начала строк и столбцов: где k — начало строки (равное 0), m — конец строки, l — начало столбца (равное 0), n — конец столбца. После начинается вывод массива в строку через цикл с неизвестным количеством повторений while. Условия это цикла — пока значение начала строки меньше значения конца строки и значение начала столбца меньше значения конца столбца. Так как вывод идет по часовой стрелке, то сначала выводится первая строка затем последний столбец минус один элемент (так как он входит в строку и выводить его дважды не имеет смысла), последняя строка минус элемент, входящий в последний столбец и наконец выводится первый столбец минус один элемент из последней строки. После каждого прохода по первой строке и столбцу их значения становятся меньше на одну единицу, чтобы переходить к выводу остальных элементов и двигаться к центру матрицы.

Вывод трехмерного массива по спирали осуществляется аналогично двумерному за исключением большего колличества циклов, добавляющих 3-й счетчик создания объмного массива.

Иницаилизация матрицы начинается с ввода размерности NxN и, в двух циклах с параметром от 0 до N, вводятся элементы матрицы. Затем получанная матрица выводится на экран и возвращается для дальнешй обработки.

Функция транспонирования начинается с вызова функции создания пустого динамического массива размером раннее введенной N. Далее значения созданной матрицы В присваиваются значениям исходной матрицы А двумя циклами. Однако индексы матрицы В имеют не стандартый вид [i][j], а обратный — [j][i], для правильной замены столбцов на строки и строк на столбцы.

Приведение к угловому виду так же начинается с создния динамического массива и присвоения это значений исходной матрице. Далее значения в строке текущего и следующего элемнта деляться и присваиваются переменной mu. После перехода на следующую строку разницы текущего и следующего элемента умножается на переменную mu.

При возведении матрицы в степень целесообразно использовать 2 дополнительные матрицы : вспомогательную и в степени. Они создаются в функции создания пустого динамического массива. После того, как матрицы созданы, их значения необходимо присвоить значениям исходной матрицы, матрица в степени остается равной 0. Далее с клавиатуры вводится степень m. После циклом от 1 до m и тремя циклами I, j, k от 0 до N значения матрицы в степени приравниваются значениям исходной матрицы [i][k], умноженной на вспомогательную матрицу [k][j] плюс исходная матрица [i][j].

Для ускорения работы программы и во избежание повторения одинаковых действий по созданию динамического массива целесообразно использовать отдельную функцию.