Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Урок'
Цели занятия: познакомить учащихся с тем, какое место занимает планиметрия в Ким – ах по математике 2010 года. Дать рекомендации по подготовке оценить...полностью>>
'Документ'
На регистрации Вы должны предоставить загранпаспорт, заполненную таможенную декларацию, авиабилет. Если у Вас всего 3 дол. США или менее на человека, ...полностью>>
'Документ'
Некоммерческая организация Благотворительный фонд «Счастливый мир», именуемый в дальнейшем Фонд, в лице в лице Президента Фонда Тупик Александра Алекс...полностью>>
'Документ'
3. 24 сентября 1782 года в Петербурге состоялась премьера комедии Д.И.Фонвизина «Недоросль». Театр был полон. Каким образом публика «аплодировала пиес...полностью>>

Главная > Контрольные вопросы

Сохрани ссылку в одной из сетей:
Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

Практическая работа

Тема: Массивы в VBA

Цель: Освоить технологию обработки массивов в VBA

Задачи

  1. Изучение теоретического материала

  2. Привитие навыков самостоятельной работы с электронными материалами

Задания

  1. Изучить предложенный материал

  2. Разобрать и проверить примеры

  3. Ответить в конспекте на контрольные вопросы

  4. Выполнить индивидуальные задания

Контрольные вопросы

  1. Что такое сортировка массива? Для чего она производится?

  2. Каким образом производится удаление элементов массива?

  3. Каким образом производится вставка элементов массива?

Массивы

Часто бывает необходимо работать с некоторым набором однотипных данных как с единым целым. В таких случаях используются массивы – структурированные боксы для хранения множеств элементов данных одинакового типа.

Массивы могут быть одномерными и многомерными.

Одномерные массивы

Одномерный массив – это набор однотпных значений, расположенных друг за другом в одной строке или столбце.

Пример

1 –34 8 2 6

или

1

2

8

-5

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

  • константой

Пример

P(1), C(5)

  • переменной целого типа

Пример

A(i), B(j)

  • арифметическим выражением (значение арифметического выражения должно быть целым)

Пример

A(i*2), Q(i^j)

Объявление массива

Как и обычные переменные, массивы должны быть объявлены. Описание массива выглядит следующим образом:

Dim Имя массива (Размерность массива) As Тип элементов.

Пример

Dim A (100) As Integer

Dim B (50) As Byte

Dim С (40) As Double

При таком описании массива его элементы индексируются (т.е. нумеруются), начиная с нуля.

Если оператор описания будет выглядеть следующим образом:

Dim A (1 To 100) As Integer,

то элементы массива индексируются с единицы.

Заполнение массива может происходить:

  • с клавиатуры

  • по некоторому алгоритму

  • случайными значениями при помощи генератора случайных чисел, который инициализируется инструкцией Randomize без аргумента, и активизируется функцией Rnd, возвращающей вещественное значение из диапазона [0;1).

Пример

Randomize

For i = 1 To 10

A(i) = Int(Rnd * 101) – 50 ‘заполнение массива целыми числами [-50;50]

Next i

Сортировка элементов одномерного массива методом “пузырька”

Рассмотрим одномерный массив А:

– 4 6 – 2 10

Нужно расставить элементы этого массива по убыванию.

Метод “пузырька” заключается в том, что сравниваются два соседних элемента массива и, если первый из них меньше второго, то их переставляют местами (сортировка по убыванию).

I просмотр


– 4 6 – 2 10


6 – 4 – 2 10


6 – 2 – 4 10

6 – 2 10 – 4

II просмотр

6 – 2 10 – 4

6 10 – 2 – 4

III просмотр

6 10 – 2 – 4

10 6 – 2 – 4

Для получения данного результата необходимо отладить следующую программу.

Option Explicit

Sub PR19()

Dim A(30) As Integer

Dim N As Integer

Dim I As Integer

Dim K As Integer

Dim R As Integer

N = Val(InputBox("Введите N"))

For I = 1 To N

Cells(1,I) = Int(Rnd * 100 – 50) ‘ Заполнение ячеек рабочего листа

‘ случайными числами

A(I) = Cells(1,I) ‘ Заполнение массива

Next I

‘ Сортировка массива

For K = 1 To N–1

For I = 1 To N–K

If A(I) < A(I+1) Then

R = A(I) ‘ Перестановка элементов

A(I) = A(I+1)

A(I+1) = R

End If

Next I

Next K

‘ Распечатка полученного массива на рабочем листе Excel

Cells(3,3) = "Упорядоченный массив"

For I = 1 To N

Cells(5,I) = A(I)

Next I

End Sub

Самостоятельная работа № 10

В 1

  1. Упорядочить элементы массива по возрастанию и вычислить сумму первого и последнего элементов.

  2. Упорядочить элементы массива по убыванию и переставить местами первый и последний элементы.

В 2

  1. Упорядочить элементы массива по возрастанию и найти максимальный из двух первых элементов.

  2. Упорядочить элементы массива по убыванию и вычислить произведение первого и последнего элементов.

В 3

  1. Упорядочить элементы массива по возрастанию и вычислить сумму первых трех элементов.

  2. Упорядочить элементы массива по убыванию и переставить местами второй и предпоследний элементы.

В 4

  1. Упорядочить элементы массива по возрастанию и вычислить минимальный из четных элементов.

  2. Упорядочить элементы массива по убыванию и найти произведение первого и третьего элементов.

В 5

  1. Упорядочить элементы массива по возрастанию и найти сумму первого и четвертого элементов.

  2. Упорядочить элементы массива по убыванию и поменять местами первый и пятый элементы.

В 6

  1. Упорядочить элементы массива по возрастанию и найти максимальный элемент в первой половине массива.

  2. Упорядочить элементы массива по убыванию и найти произведение последних двух элементов.

В 7

  1. Упорядочить элементы массива по возрастанию и поменять местами второй и последний элементы.

  2. Упорядочить элементы массива по убыванию и найти минимальный из первого и пятого элементов.

В 8

  1. Упорядочить элементы массива по возрастанию и найти сумму положительных элементов.

  2. Упорядочить элементы массива по убыванию и переставить местами второй и минимальный элемент.

В 9

  1. Упорядочить элементы массива по возрастанию и найти сумму второго и пятого элементов.

  2. Упорядочить первую половину массива по убыванию и переставить первый и последний элементы.

В 10

  1. Упорядочить вторую половину массива по возрастанию и найти произведение первого и шестого элементов.

  2. Упорядочить элементы массива по убыванию и поменять местами максимальный и минимальный элементы.

Самостоятельная работа № 11

В 1

Задан целочисленный массив А(10). Упорядочить по убыванию четные элементы.

В 2

Задан целочисленный массив А(10). Упорядочить по возрастанию нечетные элементы.

В 3

Задан целочисленный массив А(10). Упорядочить по убыванию элементы массива, кратные 7.

В 4

Задан целочисленный массив А(10). Упорядочить по убыванию положительные элементы.

В 5

Задан целочисленный массив А(10). Упорядочить по возрастанию те элементы массива, которые стоят на четных местах.

В 6

Задан целочисленный массив А(10). Упорядочить по возрастанию те элементы массива, которые стоят на нечетных местах.

В 7

Задан целочисленный массив А(10). Упорядочить элементы, стоящие на четных местах, по возрастанию, а стоящие на нечетных местах, по убыванию.

В 8

Задан целочисленный массив А(10). Упорядочить положительные элементы по возрастанию, а отрицательные по убыванию.

В 9

Задан целочисленный массив А(10). Упорядочить элементы, кратные 3, по убыванию, а некратные 3 по возрастанию.

В 10

Задан целочисленный массив А(10). Упорядочить по возрастанию элементы кратные 5.

В 11

Задан целочисленный массив А(10). Упорядочить по убыванию элементы, принадлежащие интервалу (–2; 12).

Удаление одного или группы элементов из одномерного массива

Удаление одного элемента из одномерного массива происходит по следующей схеме:

  1. указывается или ищется порядковый номер элемента, который необходимо удалить из массива;

  2. все элементы, стоящие за удаляемым элементом сдвигаются на одну позицию влево;

  3. количество элементов уменьшается на единицу.

Удаление одного элемента из одномерного массива

Пример 1

Дан массив Х = (– 4 8 – 6 5 8 4).

Удалить из массива элемент, стоящий на третьем месте.

Фрагмент программного кода, в котором удаляется третий элемент массива Х, выглядит следующим образом:

k = 3

For i = k To N – 1 ‘ начиная с k-го и до предпоследнего элемента

X(i) = X(i + 1) ‘ сдвигаем элементы массива влево

Next i

N = N – 1 ‘уменьшаем длину массива на 1

Пример 2

Сформировать одномерный массив из случайных чисел. Удалить из массива минимальный и максимальный элементы.

Программный код

Sub PR20()

Dim x(40) As Integer

Dim n As Integer

Dim i As Integer

Dim Min As Integer, Max As Integer

Dim IMin As Integer, IMax As Integer

n = Val(InputBox("Введите число элементов N"))

Label1.caption = "Исходный массив"

For i = 1 To n

x(i) = Int(Rnd * 100) – 50

ListBox1.AddItem Str(x(i))

Next i

‘ Поиск минимального и максимального элементов

Min = x(1): Max = x(1)

For i = 2 To n

If x(i) < Min Then Min = x(i): IMin = i

If x(i) > Max Then Max = x(i): IMax = i

Next i

MsgBox()

‘ Удаление минимального элемента

For i = IMin To n – 1

x(i) = x(i + 1)

Next i

n = n – 1

‘ если максимальный элемент стоял правее минимального, то он

‘ сдвигается влево на одну позицию

If IMax > IMin Then IMax = IMax – 1

‘ Удаление максимального элемента

For i = IMax To n – 1

x(i) = x(i + 1)

Next i

n = n – 1

Label2.caption = "Полученный массив"

For i = 1 To n

ListBox2.AddItem Str(x(i))

Next i

End Sub

Удаление из массива группы элементов

Пример

Задан одномерный массив 6 – 4 – 9 9 2 7 4 8. Удалить из него все элементы, кратные 3.

I удаление 6 – 4 – 9 9 27 4 8

результат – 4 – 9 9 27 4 8

II удаление – 4 – 9 9 27 4 8

результат – 4 9 27 4 8

III удаление – 4 9 27 4 8

результат – 4 27 4 8

IV удаление – 4 27 4 8

результат – 4 4 8

Для реализации данного алгоритма воспользуемся следующим фрагментом программы.

i = 1

While i <= n

If x(i) Mod 3 = 0 Then

For j = i To n – 1

x(j) = x(j + 1)

Next j

n = n – 1

Else

i = i + 1

End If

Wend

Вставка одного элемента в массив

При вставке одного элемента в массив необходимо сначала освободить место для вставляемого элемента, т.е. “раздвинуть” элементы, а затем вставить новый элемент в массив.

Вставка группы элементов в массив

Пример

В одномерный массив перед каждым числом 0 вставить сумму всех элементов массива.

Фрагмент программы, в котором происходит вставка элементов, выглядит следующим образом:

i = 1

While i <= n

If x(i) = 0 Then

For j = n + 1 To i + 1 Step -1

x(j) = x(j – 1)

Next j

x(i) = s

n = n + 1

i = i + 2

Else

i = i + 1

End If

Wend

Практическая работа № 12

В 1

  1. Удалить последний четный элемент массива.

  2. Вставить 2 перед каждым элементом большим заданного числа В.

В 2

  1. Удалить все элементы кратные 3.

  2. Вставить 3 перед каждым элементом большим заданного числа В.

В 3

  1. Удалить все нечетные элементы.

  2. Вставить заданное число В после каждого элемента, меньшего В.

В 4

  1. Удалить первый элемент кратный 5.

  2. Вставить заданное число В, после первого отрицательного элемента массива.

В 5

  1. Удалить все отрицательные элементы массива.

  2. Вставить3 после max и перед max элементом массива.

В 6

  1. Удалить первый отрицательный элемент массива.

  2. Вставить 100 перед 5 элементом массива

В 7

  1. Удалить последний элементы массива больше заданного числа С.

  2. Вставить перед каждым отрицательным элементом массива заданное число В.

В 8

  1. Удалить все элементы массива, которые больше заданного числа.

  2. Вставить заданное число B, после первого четного числа в массиве.

В 9

  1. Удалить все четные элементы массива.

  2. Вставить перед последним отрицательным элементом массива число В.

В 10

  1. Удалить последний нечетный элемент массива.

  2. Вставить перед последним отрицательным элементом массива число В.

В 11

  1. Удалить все четные отрицательные элементы.

  2. Вставить число А, перед каждым отрицательным элементом кратным Д, а число В после каждого положительного элемента, кратного Д.

В 12

  1. Удалить первый положительный четный элемент.

  2. Вставить 1 после всех элементов, больших P.



Похожие документы:

  1. Темы анализа и типы факторов 45 Этапы ситуационного анализа 47

    Программа
    ... уметь находить информацию по теме исследования в массиве этих данных. Специалист, использующий ... это все именно для вашего VIP-бюллетеня. Не стоит транслировать ... ­кровенность. О. Д. Всего доброго. Интервью VIP-бюллетеню «Время Езразин*. Бюллетень N° 2, ...
  2. Барнаул 2011 РЕФЕРАТ дипломной работы на тему «Разработка модуля расчета показателей финансовой устойчивости компании (на примере ООО «Евросвязь»)»

    Документ
    ... средств вычислительной техники. Актуальность темы исследования заключается в отсутствии ... разработчику. Несомненным достоинством VBA является возможность его совместного ... обязательства 515 0,0 0,0 Прочие долгосрочные массивы 520 0,0 0,0 Итого по разделу ...
  3. Детальное планирование темы Основы визуального программирования (желательный минимум 34 часа ). Впланировании имеются ссылки

    Урок
    ... exe файл primer1.exe смотри тему 4). Тема 2. Объекты: свойства, способы размещения. Событийные ... \PRJ_FOR\Project1.vbp Нахождения минимального элемента массива. Нахождения максимального элемента массива. Вывести на ...
  4. Расчетно-пояснительная записка к курсовому проекту по теории машин и механизмов на тему задание

    Пояснительная записка
    ... по теории машин и механизмов на тему « » задание вариант Выполнил: ... VBPbV, (0) VB___ мc VBAabV, (0) VBA___ мс. Скорость точки S2 находим ... T и максимальное T значение из массива T, а затем максимальное изменение кинетической ...
  5. Решение экономических задач компьютерными средствами > Информатика в экономике: Учебное пособие

    Решение
    ... и сетевые). Линейные одномерные массивы Данная структура предполагает размещение ... пользователями и программным продуктом. Тем самым определяются функциональные требования к ... этого используется среда программирования VBA (Visual Basic for Applications ...

Другие похожие документы..