Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
-articles-311059-pril1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
460.8 Кб
Скачать

Лабораторная работа № 6 Тема: Использование массивов на языке vba.

Цель: Научиться элементам углубленных методов программирования. Овладеть способами работы с массивами на VB, в том числе научиться описывать массивы, присваивать им значения, операциям над множествами.

Ход занятия:

  1. Решение задач с помощью массивов в среде vba.

Создать макросы, использующие тип данных массив и функцию Array в приложении MS Excel с помощью Visual Basic for Application.

    1. Массив элементов

      Набор значений одного типа с одним именем, но разным порядковым номером.

      Dim Mas1(1 To 20) As Singl

      Dim Mas2 (1000) As Long

      Dim Mas3(1 To 25, 1 To 5) As Integer

      О

      Сортировка – распределение элементов множества по группам в соответствии с определенными правилами.

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

Создать макрос, который в одномерном массиве сортирует данные по возрастанию.

      1. Загрузите программу MSExcel.

      2. З аполните столбец А ячейкам со 2 по 21 случайными числами вещественного типа до 6 с помощью макроса и функции RND().

      3. Добавьте к макросу описание массива Mas1(1 to 20) вещественного типа.

      4. П рисвойте элементам массива значения всех ячеек столбца А:

      5. For I = 1 To 20

        MyValue = 6 * Rnd

        Cells(I + 1, 1) = MyValue

        Mas1(I) = MyValue

        Next I

        Проверьте работу программы.
      6. Чтобы убедиться в том, что массив получил свои значения, добавьте временно строку во внутрь цикла: Cells(I + 1, 3) = Mas1(I).

      7. П роверьте работу программы и удалите временную строку, а также результат ее работы (данные столбца С).

      8. Добавьте цикл к программе, который располагает элементы массива по возрастанию. Для этого воспользуйтесь одним из методов сортировки – методом пузырька. В этом методе сравниваются много раз соседние элементы со сдвигом и переставляются при необходимости:

        For J = 1 To 20

        For I = 1 To 19

        If Mas1(I) > Mas1(I + 1) Then Max = Mas1(I):Mas1(I) = Mas1(I + 1): Mas1(I + 1) = Max

        Next I

        Next J

      9. Разберитесь с алгоритмом самостоятельно, учитывая, что J – количество «перетаскиваний» максимальных элементов, I – количество позиций для сравнивания.

      10. П роверьте работу программы. Результата не видно.

      11. Дополните ниже программу еще одним циклом, который заполняет третий столбец элементами массива, расположенными по возрастанию: Cells(I + 1, 3) = Mas1(I)

      12. Проверьте работу программы. Подпишите столбцы в ячейках.

      13. Самостоятельно напишите к макросу дополнение, в котором аналогично сортировке по возрастанию будет производится сортировка по убыванию и заполнит столбец В. (См рисунок).

Dim Mas2(4) As String

For I = 1 To 5

Mas2(I – 1) = Cells(I + 1, 1)

Next I

For J = 0 To 4

For I = 0 To 3

If Mas2(I) > Mas2(I + 1) Then Max = Mas2(I) _

: Mas2(I) = Mas2(I + 1): Mas2(I + 1) = Max

Next I

Next J

F or I = 1 To 5

Cells(I + 1, 3) = Mas2(I – 1)

Next I