Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8998

.pdf
Скачиваний:
1
Добавлен:
25.11.2023
Размер:
2.12 Mб
Скачать

сообщение.

9.Дан массив из N вещественных чисел. Написать программу, в

которой решается задача: если очередной элемент массива четный, то прибавить к нему первый, если нечетный - прибавить последний. Первый и последний элементы не изменять.

10.Даны два одномерных массива одинаковой размерности.

Написать программу получения третьего массива такой же размерности,

каждый элемент которого равен сумме соответствующих элементов

данных массивов.

11.Дан массив из N вещественных чисел. Написать программу,

которая позволяет найти количество положительных и отрицательных

элементов в массиве и номер последнего отрицательного элемента.

12.Дан массив А из 10 целых чисел. Написать программу подсчета суммы элементов, расположенных между максимальным и минимальным элементами.

13.Написать программу замены вещественных чисел массива А,

состоящего из десяти элементов, следующим образом: числа, большие

единицы, уменьшить вдвое, а числа, меньшие единицы, увеличить вдвое.

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

15.Дан массив из N вещественных чисел. Написать программу вычисления произведения и количества положительных элементов массива.

16.Дан массив из N вещественных чисел. Написать программу вычисления произведения отрицательных и положительных элементов массива.

17.Дан массив из N вещественных чисел. Написать программу определения числа отрицательных, положительных и нулевых элементов массива.

71

18. Дан массив из N вещественных чисел. Написать программу решения следующей задачи: если первый элемент массива положительный,

то каждый второй элемент массива заменить числом 55, иначе выдать сообщение: «все без перемен».

19.Дан массив из N вещественных чисел. Написать программу вычисления сколько раз число 11 встречается среди элементов массива, в

противном случае вывести сообщение: «таких элементов в массиве нет».

20.Дан массив из N вещественных чисел. Написать программу вычисления количества всех элементов, значения которых меньше среднего значения всех элементов массива.

Лабораторная работа 8. Двумерные массивы

Цель: овладеть навыками программирования на языке VBA с

использованием двумерных массивов

Теоретические сведения

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

Пример объявления двумерного массива:

Dim А (3, 3) As Integer

Dim А(1 То 5, 1 То 5) As Integer

Dim А(5, 1 То 5) As Integer

Два последних примера иллюстрирую задание нижней границы в двумерном массиве.

Ввод/вывод массивов

Ввод/вывод массива осуществляется поэлементно, а для этого нужно использовать два уровня вложения циклов (по строкам и столбцам).

Пример ввода элементов массива с клавиатуры в ячейки таблицы

Sub matrix()

Dim A(3, 3) As Double

Dim i As Byte

72

Dim j As Byte

Dim Index1 As Integer

Dim Index2 As Integer

For i = 1 To 3

A(1, i) = InputBox("Введите элементы первого столбца")

Worksheets("лист1").Cells(i, 1) = A(1, i)

Next

For i = 1 To 3

A(2, i) = InputBox("Введите элементы второго столбца")

Worksheets("лист1").Cells(i, 2) = A(2, i)

Next

For i = 1 To 3

A(3, i) = InputBox("Введите элементы третьего столбца") Worksheets("лист1").Cells(i, 3) = A(3, i)

Next

End Sub

Функции для работы с массивами

Для работы с массивами можно использовать ряд функций такие как:

Array(), LBound(), UBound(), Join(), Split().

Функция Array() автоматически создает массив типа Variant и нужного размера и заполняет его переданными значениями.

Пример:

Sub Пример_функции()

Dim a() As Variant

‘ввод элементов массива

a = Array(11, 25, 33, 35.62, 55)

‘вывод в диалоговом окне построчно элементов массива

MsgBox a(0) & vbNewLine & a(1) & vbNewLine _

& a(2) & vbNewLine & a(3) & vbNewLine & a(4)

73

End Sub

Функции LBound() и UBound() информируют о нижней или верхней границе массива соответственно, т.е. возвращают номер минимального или максимального элемента массива.

Join() ‒ объединяет в одну строковую переменную строки из массива, где в качестве разделителя по умолчанию используется пробел, но при необходимости этот символ можно заменить.

Split() ‒ выполняет обратное действие, а именно разъединяет строку символов на массив строк.

Пример:

Sub Пример_функции()

'инициализация переменных типа Variant

Dim ar, tr

‘ввод элементов масса

ar = Array("Первый элемент", "Второй элемент", "Третий элемент", "Четвертый элемент", "Последний элемент")

'отображение первого элемента массива

MsgBox ar(LBound(ar))

'отображение последнего элемента массива

MsgBox ar(UBound(ar))

'отображение элементов массива с разделителем "‒"

MsgBox Join(ar, "-")

'разбиение указанного текста массива

tr = Split("Первый элемент-Второй элемент-Третий элемент-

Четвертый элемент-Последний элемент", "-")

отображение третьего по порядку элемента массива

MsgBox tr(2)

End Sub

Пример использования двумерного массива

74

Дана двумерная матрица ar(3,3). Определить количество отрицательных и

положительных элементов массива.

Sub massiv()

Dim ar(3, 3) As Integer

p = 0

n = 0

‘ввод элементов массива

For i = 0 To 2

For j = 0 To 2

ar(i, j) = InputBox("Введите элемент массива")

Worksheets("Лист1").Cells(i + 1, j + 1) = ar(i, j)

Next

Next

‘анализ элементов массива

For i = 0 To 2

For j = 0 To 2

If ar(i, j) > 0 Then p = p + 1

Else

If ar(i, j) < 0 Then n = n + 1

End If

End If

Next

Next

‘вывод в ячейки таблицы соответствующей информации

Worksheets("Лист1").Cells(1, 5) = "Количество отрицательных

элементов ="

Worksheets(""Лист11").Cells(1, 9) = n

75

Worksheets(""Лист1").Cells(2, 5) = " Количество положительных

элементов ="

Worksheets(""Лист11").Cells(2, 9) = p

End Sub

В результате работы этой программы:

в область А1:С3 будут введены элементы массива;

в ячейке Е1 будет введена фраза «Количество отрицательных элементов =»;

в ячейку Е2 будет введена фраза «Количество положительных элементов =»;

в ячейке I1 будет отображаться число отрицательных элементов;

в ячейку I2 будет введена число положительных элементов.э

Практические задания

Написать программу на языке VBA в соответствии с вариантом задания.

1.Составить программу преобразования матрицы А(5,5), разделив каждый элемент матрицы на её минимальный элемент.

2.Составить программу, меняющую местами k-ю строку и j-й столбец квадратной матрицы А(4,4).

3.Составить программу вычисления элементов матрицы А по следующему правилу = 3 × / , где ‒ максимальный элемент исходной матрицы В размера 4 4.

4.Составить программу вычисления номера столбца матрицы размера

4 4, состоящей из нулей и единиц, содержащего максимальное количество

единиц.

5.Составить программу вычисления количества элементов каждой строки матрицы А размера 5 5, удовлетворяющей условию 0<aij<5. Результат вычислений записать в одномерный массив.

6.Составить программу записи элементов массива А размера 4 4 в

одномерный массив в порядке следования столбцов.

76

7.Составить программу вычисления количества четных элементов в каждой строке матрицы А размера 5 5. Результат вычислений записать в одномерный массив.

8.Составить программу, меняющую местами максимальный и минимальный элемент матрицы А размера 4 4.

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

матрицы А размера 5 5.

10. Составить программу вычисления номера строки матрицы А размера

4 4, имеющий максимальную сумму элементов.

11. Составить программу вычисления сумм элементов матрицы А размера

5 5, лежащих ниже, выше и на главной диагонали. Результат вычислений записать в одномерный массив.

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

13.Составить программу, заменяющую отрицательные элементы матрицы А размера 4 4 их абсолютными значениями.

14.Составить программу формирования одномерного массива, каждый элемент которого равен квадрату максимального элемента, соответствующей строки матрицы А размера 4 4.

15.Составить программу определения суммы элементов, стоящих на главной и побочной диагоналях двумерной матрицы А размера 4 4.

16.Составить программу, формирующую одномерный массив из сумм квадратов элементов соответствующих строк матрицы А размера 4 4.

17.Составить программу, формирующую одномерный массив из модулей минимальных элементов соответствующих столбцов матрицы А размера 4 4.

18.Составить программу, формирующую одномерный массив из разностей максимального и минимального элементов каждой строки матрицы

Аразмера 5 5.

77

19.Составить программу, формирующую одномерный массив из кубов нечетных элементов соответствующих строк матрицы А размера 5 5.

20.Составить программу, формирующую одномерный массив, каждый элемент которого равен сумме четных положительных элементов соответствующего столбца двумерной матрицы А размера 5 5.

Лабораторные работы 9. Пользовательские формы Цель работы: отработка навыков построения пользовательских форм и

использование элементов управления.

Теоретические сведения

Объектно-ориентированное программирование на VBA, в частности, дает возможность разрабатывать графический интерфейс создаваемых приложений и это позволяют элементы управления. Приложение, написанное на VBA,

представляет собой совокупность объектов.

Объект – некая сущность, которая объединяет в единое целое данные и программный код. VBA располагает множеством встроенных объектов ‒ это рабочая книга, лист, ячейка, диапазон ячеек, пользовательская форма, кнопка и элементы управления тоже являются объектами. Их можно вставлять на листы рабочей книги или в пользовательские формы. Пользовательская форма ‒ это диалоговое окно, являющееся частью интерфейса приложения.

Обозначение встроенных объектов в дополнение к перечисленным выше:

приложение – Application; пользовательская форма – UserForm, кнопка –

CommandButton и т.д..

Любой объект обладает свойствами, методами и может откликаться на

события.

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

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

Синтаксис установки значения свойства:

78

Объект.Свойство = ЗначениеСвойства

где Объект – имя настраиваемого объекта;

Свойство – характеристика, которую нужно изменить;

Значение – новая установка свойства.

Примеры задания свойств объектам:

Range("А5").Value = 100 – при этом ячейка А5 будет содержать значение

100. Свойство Value ‒ позволяет задать значение.

Range("А4").Font.Size = 12 – это означает, что ячейка А4 будет содержать информацию размером шрифта 14 пунктов. Свойство Font.Size

позволяет задать размера шрифта.

Range("А1:А10").Text = "Дисциплина Информационные технологии"

– в области А1:А10 будет размещена текстовая информации Дисциплина

Информационные технологии. Свойство Text позволяет ввести текст.

Form1.Caption = “Щелчок на форме уменьшает её размер” – в

заголовке формы появится название «Щелчок на форме уменьшает её размер».

Свойство Caption ‒ изменяет заголовок формы.

Особое значение среди всех свойств объектов имеют логические свойства

(принимают значения True или False). Логические свойства объектов выполняют роль переключателей: если свойство принимает значение True ‒

функция объекта включена, а если False ‒ функция объекта выключена.

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

Метод это некоторое действия, которые можно выполнять над данным объектом или метод это команда, которую выполняет объект. В результате его действия что-нибудь изменяется в объекте (цвет, место расположения и т.д.).

Синтаксис

Объект.Метод [Параметр[…]]

где Метод – команда, которая используется для изменения объекта;

Параметр – аргумент, используемый методом.

79

Примеры: методов, которые можно применитять к объектам:

Range("А1:В5").Select выбрать диапазон ячеек (А1:В5);

Range("А1:В5").Clear очистить диапазон ячеек (А1:В5);

UserForm1.Hide скрыть форму под номером 1;

UserForm2.Show показать форму под номером 2;

Application.Quit выйти из приложения.

Событие – это характеристика класса объекта, которая описывает внешнее воздействие, на которое реагирует объект данного класса в процессе работы приложения. Это может быть нажатие клавиши или щелчок мыши для которых создается программный код реакции объекта на событие.

Программирования на VBA ‒ это определение для каждого объекта набора стандартных событий и отклика на него. Например: кнопка (объект)

CommandButton, а стандартное событие для неё ‒ щелчок мышью Click.

Когда выполняется какое-либо действие (например, щелчок мышью), то далее происходит отклик на это действие (выполняется программный код процедуры), т.е. действие – это событие, а отклик на него – процедура.

Форма ‒ это основной объект VBA. На которой размещаются различные объекты (элементы управления). Свойства формы: Name (имя пользовательской формы), Caption (текст в строке заголовка формы),

Appearance (вид формы), BorderStyle (тип границы) и др. Методы формы:

Show (отображает форму на экране), Hide (закрывает форму), November

(местоположение и размер формы), PrintForm (печать изображения формы),

Cls (очищает форму) и др.. События формы: Click, DvlClick (щелчок и двойной щелчок), MouseDown, MouseUp (нажатие и отпускание кнопки мыши), KeyDown, KeyUp (нажатие и отпускание клавиши).

Создание формы

Для создания формы нужно перейти в редактор VBA (Разработчик –

Visual Basic). Выполнить команду меню Insert UserForm. На экране появится пустая форма. Для активной формы откроется панель Properties

80

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]