Обработка двумерного массива — КиберПедия 

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Обработка двумерного массива

2017-12-22 195
Обработка двумерного массива 0.00 из 5.00 0 оценок
Заказать работу

Обработка двумерных массивов производится аналогичным образом. Например, если мы хотим записать в массив таблицу умножения, то есть присвоить элементу A[i][j] значение i * j, это можно сделать следующим образом при помощи вложенных циклов:

for (i = 0; i< n; ++i)

{

for (j = 0; j < m; ++j)

{

A[i][j] = i * j;

}

}

Рассмотрим более сложную задачу и несколько способов ее решения. Пусть дан квадратный двумерный массив int A[n][n]. Необходимо элементам, находящимся на главной диагонали проходящей из левого верхнего угла в правый нижний (то есть тем элементам A[i][j], для которых i==j) присвоить значение 1, элементам, находящимся выше главной диагонали – значение 0, элементам, нахощящимся ниже главной диагонали – значение 2. То есть получить такой массив (пример для n==4):

1 0 0 0

2 1 0 0

2 2 1 0

2 2 2 1

Рассмотрим несколько способов решения этой задачи. Элементы, которые лежат выше главной диагонали – это элементы A[i][j], для которых i<j, а для элементов ниже главной диагоналиi>j. Таким образом, мы можем сравнивать значения i и j и по ним определять значение A[i][j]. Получаемследующийалгоритм:

for (i = 0; i< n; ++i)

{

for (j = 0; j < n; ++j)

{

if (i< j)

{

A[i][j] = 0;

}

else if (i> j)

{

A[i][j] = 2;

}

else

{

A[i][j] = 1;

}

}

}

Данный алгоритм плох, поскольку выполняет одну или две инструкции if для обработки каждого элемента. Если мы усложним алгоритм, то мы сможем обойтись вообще без условных инструкций.

Сначала заполним главную диагональ, для чего нам понадобится один цикл:

for (i = 0; i< n; ++i)

{

A[i][i] = 1;

}

Затем заполним значением 0 все элементы выше главной диагонали, для чего нам понадобится в каждой из строк с номером i присвоить значение элементам A[i][j] для j=i+1,..., n-1. Здесь нам понадобятся вложенные циклы:

for (i = 0; i < n; ++i)

{

for (j = i + 1; j < n; ++j)

{

A[i][j] = 0;

}

}

Аналогично присваиваем значение 2 элементам A[i][j] для j=0,..., i-1:

При вводе массива необходимо последовательно вводить 1-й, 2-й, 3-й и т.д.

элементы массива, аналогичным образом поступить и при выводе. Следовательно,

необходимо организовать цикл.

Блок-схемы алгоритмов ввода элементов массива изображены на рис. 6.3-6.4.

 

Рис 6.3 Алгоритм ввода массива Рис. 6.4. Алгоритм ввода массива

с использованием цикла с использованием

с предусловием безусловного цикла

Как видно, безусловный цикл удобно использовать для обработки всего

массива, и в дальнейшем при выполнении таких операций будем применять

именно его. Вывод массива организуется аналогично вводу.

Рассмотрим несколько примеров обработки массивов. Алгоритмы, с

помощью которых обрабатывают одномерные массивы, похожи на обработку

последовательностей (вычисление суммы, произведения, поиск элементов по

определенному признаку, выборки и т. д.). Отличие заключается в том, что в

массиве одновременно доступны все его компоненты, поэтому становится

возможной, например, сортировка его элементов и другие, более сложные

преобразования.

 

Основные сведения о динамичном массиве.

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

Декларация динамического массива в VBA.

DimИмя_Массива() As Тип

Переопределение массива. Для этого используется оператор Redim. Если переобозначение одного и того же массива происходит несколько раз то для сохранения данных используется оператор Preserve.

RedimPrserveИмя_Массива(n) [As Тип]

 

 

Сортировка массива методом пузырька массива

Сортировка массива методом пузырька – медленная, но если скорость не главное, можно применить и его. Алгоритм очень прост – если два соседних элемента расположены не по порядку, то меняем их местами. Так повторяем до тех пор, пока в очередном проходе не сделаем ни одного обмена, т.е. массив будет упорядоченным.

 

 

Сортировка масива методом нахождения минимального элемента массива

Сортировка массива методом нахождения минимального элемента этот вариант сортировки более быстрый, чем метод пузырька. Заключается он в следующем: при каждом просмотре массива находим минимальный элемент и меняем местами его с первым на первом проходе, со вторым - на втором и т.д.

 

 

Экранная форма

ЭКРАННАЯ ФОРМА Окно с полями для ввода или исправления в них значений полей записи, называют экранной формой. Если в одной форме собрана информация сразу из нескольких таблиц базы, то такая форма называется составной. Форма, в которой каждое поле помещено на отдельной строке, а каждая запись - на отдельной странице, называется простой формой.

 


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

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

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.