
Лекция_4-1_VBA_программирование_4-1_одном_массив.ppt
- Количество слайдов: 20
4. ОБРАБОТКА МАССИВОВ 2/6/2018 Массивы 1
Массив – это упорядоченный набор данных одного типа , например, А 1, А 2, А 3, …, АN. • Одномерный массив А из 7 элементов целого типа A 1 2 3 4 5 6 7 44 22 10 11 14 30 19 • Двумерный массив А из 6 элементов 2/6/2018 Массивы 2
Определение 1 Массив –упорядоченная последовательность величин, обозначаемая одним именем. Упорядоченность -элементы массива располагаются в последовательных ячейках памяти. 1 2 3 4 5 6 7 44 22 10 Индекс14 30 19 11 Имя массива (порядковый номер) элемента массива А Значение элемента массива A ( 4 ) = 11 2/6/2018 Массивы 3
Описание массива 2 При работе с массивами их следует описывать в начале программы с указанием размерности. Синтаксис описания массивов: Dim имя(N) AS тип; Имя массива Верхняя граница индекса Например: Dim A(10) as Integer; Dim X(100) as Single; 2/6/2018 Массивы Тип элементов 4
Чтобы получить доступ к нужному элементу массива нужно указать имя массива и индекс этого элемента. Имя массива образуется также как имя переменой. A(5)=3, B(2, 3)=6 2/6/2018 Массивы 5
Различают одномерные и двумерные массивы. Одномерный массив – это список переменных. Часто используется для обозначения векторов в математике. Элементы одномерного массива снабжаются одним индексом, заключенным в круглые скобки. Он определяет порядковый номер элемента в массиве. A(7)=19 • Одномерный массив А из 7 элементов целого типа A 1 2 3 4 5 6 7 44 22 10 11 14 30 19 2/6/2018 Массивы 6
нение массива 1. Заполнение массива с клавиатуры For i=1 To N Stro = “Введите С(" + Str(i) + ")" C(i) = Input. Box(Stro) Next i = 1, N Ввод C i 2/6/2018 Массивы 7
Отладчик Debug 5 1. Посмотреть значения переменных - открыть окно Watches For i=1 To N Stro = “Введите С(" + Str(i) + ")" C(i) = Input. Box(Stro) Next i = 1, N Ввод C i 2/6/2018 Массивы 8
нение массива 1. Заполнение массива с клавиатуры i = 1, N Ввод C i С(0) ? ? ? 2/6/2018 Массивы 9
Размерность массива. Dim C(4) As Integer Одномерный массив (вектор) из 5 целых чисел. По умолчанию первый элемент массива будет C(0) а последний C(4). В этом случае говорят, что 0 - базовый индекс. Изменить базовый индекс - написать в области описания модуля инструкцию Option Base 1. Индексы массивов нумеруется с единицы. Другой способ изменения базового индекса использование ключевого слова To при объявлении массива: Dim C(1 To 4) As Integer 2/6/2018 Массивы 10
нение массива 1. Заполнение массива с клавиатуры i = 1, N Ввод C i С(1) первый в массиве 2/6/2018 Массивы 11
нение массива 2. Заполнение массива случайными числами. A(i)=Rnd() случайное число из интервала (0; 1) Int((B- A+ 1) * Rnd() + A) случайное число из интервала (A ; B) i = 1, N Before calling Rnd, use the Randomize statement without an argument to initialize the randomnumber generator with a seed based on the system 2/6/2018 Массивы timer A i = случайное (A ; B) Вывод a i 12
Заполнение массива 2. Заполнение массива случайными числами. 6 i = 1, N A i = случайное (0 ; 1) Вывод A i 2/6/2018 Массивы 13
Заполнение массива 3. Заполнение массива при помощи прогрессии. Заполнить массив числами 3, 5, 7, 9, 11 и т. д. На первом месте стоит 3 На втором 3+2 = 5 На третьем 5+2 = 7 и т. д. То есть ai = ai - 1 + 2 Это арифметическая прогрессия. 2/6/2018 Массивы a 1 = 3 Вывод a 1 i = 2, N ai = ai-1 + 2 Вывод a i 14
Заполнение массива 3. Заполнение массива при помощи прогрессии. a 1 = 3 Вывод a 1 i = 2, N ai = ai-1 + 2 Вывод a i 2/6/2018 Массивы 15
Заполнение массива 5 4. Заполнение массива из ячеек ЭТ MS Excel For i = 1 To N ' Заполнение массива из ячеек ЭТ MS Excel C(i) = Cells(4, i) Next i = 1, N Ввод C i 2/6/2018 Массивы 16
Операции с массивами 5 Алгоритмы обработки одномерных массивов 1. 2. 3. 4. Поиск максимального и минимального элемента; Вычисление произведения элементов массива Вычисление суммы элементов массива Поиск количества элементов по данному правилу или номер (например Посчитать количество отрицательных элементов в массиве или Указать индекс первого нулевого элемента в массиве ); 5. Нахождение элементов массива по элементам другого массива; 6. Умножение двух векторов (Найти скалярное произведение); 7. Сортировка массива чисел методом ‘’пузырька 2/6/2018 Массивы 17
Сортировка массива по возрастанию 21 For i=1 to N-1 For j=i to Перебираем элементы от N первого If (a(i)>a(j)) then до Перебираем от i-ого p=a(i)предпоследнего элемента до конца a(i)=a(j) Если в оставшейся a(j)=p строке находится элемент End If Сортировка массива: меньше чем i. Next j ый … То меняем их 4; -2; 6; -5 Next i поместами возрастанию с 2/6/2018 Массивы изменениями происходящими в массиве 18
ировка массива i, 1, N-1 j, i, N Нет ai>aj Да p=ai ai=aj aj=p Общая идея алгоритма: 1. Берем i-ый элемент 2. Последовательно сравниваем его со всеми элементами с права 3. Если находится элемент меньший чем i-ый, то они меняются местами 4. Так на i-ом месте окажется самый маленький элемент 5. i увеличиваем на единицу и повторяем процесс…
ровка массива Упорядочить по возрастанию: 4 -2 6 -5 i ai j aj ai>aj 1 1 2 2 2 3 3 4 4 -2 -2 4 4 4 6 6 1 2 3 4 3 4 4 -2 6 -5 4 6 -2 6 4 4>4 нет 4> -2 да -2 > 6 нет -2 > -5 да 4>4 нет 4>6 нет 4> -2 да 6>6 нет 6>4 да Массив 4 -2 -2 4 -5 4 -5 -2 6 -5 6 -2 6 4 4 6
Лекция_4-1_VBA_программирование_4-1_одном_массив.ppt