- •Тема: «Разработка приложений с использованием одномерных массивов»
- •1. Массивы
- •1.1. Общие принципы организации массивов
- •1.2. Обращение к элементу массива имя_массива(Индекс)
- •1.3. Статический массив
- •1.4. Динамический массив
- •1.5. Типовые приемы работы с одномерными массивами
- •1. Заполнение массива данными
- •2. Преобразование массива (действия с элементами массива)
- •3. Вывод массива или отдельных его элементов
- •1.6. Массивы однотипных элементов
- •2. Типовые задачи на обработку одномерных массивов
- •2.1. Поиск максимального (минимального) значения в массиве
- •2.2. Подсчет суммы значений элементов массива и среднего значения для элементов массива
- •2.3. Перестановка элементов массива в обратном порядке
- •2.4. Циклический сдвиг элементов массива
- •2.5. «Сжатие» массива
- •2.6. Сортировка элементов массива
- •3. Упражнения
- •4. Задания для самостоятельного выполнения
- •1. Выполните следующие задания на заполнение массива
- •4. Выполните следующие задания на обработку элементов одномерного массива. Дополнительный массив не использовать.
- •5. Выполните следующие задания на обработку элементов одномерного массива. Дополнительный массив не использовать.
1.4. Динамический массив
В случае, когда размер массива заранее неизвестен, Visual Basic позволяет использовать динамические массивы, размеры которых можно изменять во время выполнения.
Применение динамических массивов позволяет эффективно управлять памятью, выделяя память под большой массив лишь на то время, когда этот массив используется, а затем освобождая ее.
Создание динамического массива:
1. Объявляется массив в разделе (General) (Declaration). При объявлении глобального массива необходимо выбрать ключевое слово Public, при объявлении массива на уровне модуля – Dim. Список размерностей массива остается пустым.
Dim ИмяМассива( ) As Тип
2. Перед присвоением значений элементам массива в ходе выполнения программы необходимо указать размер массива в процедурах. С помощью выполняемого оператора ReDim указывается размерность массива в виде числа или выражения.
ReDim ИмяМассива(100),
или ReDim ИмяМассива(1 To 100),
или ReDim ИмяМассива(X),
где X – переменная, имеющая некоторое целое числовое значение.
Далее идут операторы присвоения значений элементам массива, операторы изменения значений элементов массива, другие операции.
3. При ПОВТОРНОМ выполнении оператора ReDim данные, размещенные в массиве ранее, ТЕРЯЮТСЯ.
Это удобно в том случае, если данные больше не нужны и необходимо переопределить размерность массива и подготовить его для размещения новых данных.
4. Если необходимо изменить размер массива, не потеряв при этом данных, то необходимо воспользоваться оператором ReDim с ключевым словом Preserve.
ReDim Preserve ИмяМассива(150)
Замечание. Использование оператора ReDim с ключевым словом Presterve позволяет изменять только верхнюю границу последней размерности многомерных размеров.
1.5. Типовые приемы работы с одномерными массивами
1. Заполнение массива данными
Способы ввода данных в массив:
1) С клавиатуры:
For i = 1 To n
A(i) = InputBox("Введите" & Str(i) & "-й элемент массива", _
"Ввод элементов массива")
Next i
2) С помощью генератора случайных чисел:
Randomize ' инициализация датчика случайных чисел
For i = 1 To n
' заполнение случайными целыми числами из отрезка [1;100]
A(i) = Int(Rnd * 100)+1
Next i
3) С помощью вычисления элементов:
For i = 1 To n
A(i) = 2 ^ i
Next i
2. Преобразование массива (действия с элементами массива)
1) Выборочное изменение отдельных элементов
Примеры:
1. Присвоение элементу массива конкретного значения
A(1) = 5
2. Присвоение элементу массива значения переменной
B(1) = X
2) Операции с отдельными элементами массива
Примеры:
1. Присвоение переменной значения суммы двух элементов массива
X = A(1) + A(2)
2. Присвоение значения одного элемента массива другому элементу того же массива
A(1) = A(2)
3. Присвоение значения, увеличенного на 5, одного элемента массива другому элементу другого массива
A(100) = B(50) + 5
3) Комплексное присвоение значений всех элементов одного массива всем элементам другого массива такого же размера
Мвссив_B = Массив_A
4) Комплексное изменение значений элементов по заданному закону с применением циклического алгоритма
Примеры:
1. Поэлементное присвоение значений элементов одного массива всем элементам другого массива
For i = 0 To n
B(i) = A(i)
Next i
2. Поэлементное присвоение числовых значений, кратных 10, элементам массива
For i = 0 To n
A(i) = 10 * i
Next i
3. Увеличение каждого элемента массива на единицу
For i = 0 To n
A(i) = A(i) + 1
Next i
