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

8996

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

End Sub

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

Синтаксис оператора Select Case Select Case <Проверяемое выражение>

Case <значения_1> <операторы_1>

Case <значения_2> <операторы_2>

………………….

Case <значения_N>

<операторы_N> [Case Else <Иначе_операторы>] End Select

<Проверяемое выражение> может иметь любой тип, за исключение

вещественного.

<значения_N> ‒ это некоторое произвольное количество значений

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

При этом тип данных <значения_N> должен совпадать с типом

<Проверяемое выражение>.

Алгоритм работы этого оператора следующий: вычисляется

<Проверяемое выражение>. При совпадении его значения с одним из значений <значения_1>, управление передается оператору <операторы_1>

для выполнения, а затем будет выполняться оператору, стоящий после End Select. В случае не совпадения его значения ни с одним из значений

<значения_1>, будет выполняться операторы <Иначе_операторы>, а затем будет передано управление оператору, стоящему после End Select.

51

Пример:

Sub Пример ()

Dim a As Integer

a = InputBox("Введите номер месяца")

Select Case a

Case 1

MsgBox ("Январь")

Case 2,3

MsgBox ("Февраль, Март")

Case 4 To 6

MsgBox ("Апрель, Май, Июнь, Июль")

Case ls >=7

MsgBox ("Август, Сентябрь, Октябрь, Ноябрь, Декабрь")

Case Else

MsgBox ("Число не входит в диапазон")

End Select

End Sub

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

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

Ход решения задачи отразить в виде электронной таблицы с пооперационным

отражением результатов.

 

 

 

 

 

 

Пример оформления

результатов

решения задачи

в виде таблицы

(вычисление значения выражения у = (4х − 1)8х.

 

 

 

 

 

 

 

 

 

 

 

Х

 

А=4х

 

А=А-1

У=8х

 

У=А*У

 

 

 

 

 

 

 

 

 

 

1

 

4

 

3

8

 

24

 

 

 

 

 

 

 

 

 

 

52

Вариант

Задание

Вариант

Задание

1

 

2

 

 

 

 

 

3

 

4

 

 

 

 

 

5

 

6

 

 

 

 

 

7

 

8

 

 

 

 

 

9

 

10

 

 

 

 

 

11

 

12

 

 

 

 

 

13

 

14

 

 

 

 

 

15

 

16

 

 

 

 

 

53

17

18

19

20

21

22

Лабораторная работа 5. Циклические алгоритмы в VBA с

использованием цикла с параметром

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

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

Цикл с параметром

Данный тип цикла выполняется определенное количество раз в соответствии с параметром, т.е. заранее известно число повторений цикла.

Синтаксис оператора Цикл с параметром:

For «счетчик» = «начальное значение» То «конечное значение» [Step

«шаг»] « блок оператор»

Next [«счетчик»]

Шаг может быть как положительным, так и отрицательным.

В цикле с параметром (For) задается переменная цикла. Переменная, по которой организован цикл, является «счетчиком» для которого определяется

«начальное значение» и «конечное значение». Оператор может содержать значение шага (по умолчанию шаг равен 1 и он не указывается явно), которое

54

принимает как положительные, так и отрицательные значения. Перед выполнением цикла параметру присваивается начальное значение. Затем после выполнения операторов цикла параметр увеличивается (уменьшается) на величину шага и полученное значение сравнивается с конечным значением переменной цикла. Если он принимает значение большее, чем «конечное значение», то управление передается оператору следующему за ключевым словом Next.

Пример

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

Sx /(1 i2 )

i 110

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

А2 вводится значение аргумента х, а в ячейке В2 выводится результат.

Результат:

Блок-схема программы представлена на Рисунке 9.

Начал

S = 0

I = 1;

A = x / (1 +

S = S + a

S

Конец

Рисунок 9. Блок-схема программы вычисления суммы конечного числа элементов ряда

55

В табличном процессоре Excel результатом вычислений являются формулы. Рассмотрим возможность создания формул в ячейках электронной таблицы Excel с помощью VBA.

Пример

Sub Пример_2()

Dim P, I, N As Integer

N = 10

P = Worksheets("лист1").Cells(3, 1)

For I = 1 To N

P = P * I

Next

Worksheets("лист1").Cells(3, 2) = "P="

Worksheets("лист1").Cells(3, 3) = P

End Sub

Пример

Даны два столбца С и Е заполненные числами (столбец С от 1 до 20,

столбец Е от 20 до 1). Необходимо сложить числа в столбце С с числами столбца Е следующим образом: С2+Е21, С3+E20, …, C21+E2. Результат вывести в столбец D в виде формулы т.е. содержание ячейки результата должно быть «=С2+Е21».

Sub Цикл_For()

Const n = 21

For i = 2 To n

'создание строки формулы и сохранение ее в ячейку

Cells(I, 4) = “=C” & CStr(i) & “+E” & CStr((n – i) + 2)

Next i

End Sub

Рассмотрим возможность реализации вычислений с помощью циклов с параметром в VBA двумя способами: посредством процедур и функций.

56

Пример: Написать программу вычисления суммы конечного числа элементов ряда с помощью процедуры.

Sub sum()

Dim I As Integer, x As Double, A As Double, s As Double s = 0

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

For I = 1 To 10

A = x / (1 + I * I)

S = S + A

Next

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

End Sub

Пример:

Написать программу вычисления суммы конечного числа элементов ряда с помощью функции. В ячейку А3 ввести значение аргумента, выполнить вставку функции в ячейку B3 «Сумма ряда» из категории «определенные пользователем».

Function сумма_ряда (X As Double) As Double

Dim I As Integer, S As Double

S = 0

For I = 1 To 10

S = S + X / (1 + I^2)

Next

Моя сумма = S

End Function

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

Написать программу вычисления суммы (произведения) конечного числа элементов ряда с использованием цикла с параметром. Вывод реализовать в ячейки текущего листа. Значения переменных вводятся с клавиатуры.

57

 

 

 

 

10

cosnx sin nx

 

 

 

 

 

 

10

 

a n

 

 

 

 

 

Sn

 

 

 

 

 

 

n 1

 

 

 

 

 

1

Pn

 

 

cosa

n

n

,

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

10

n sin( n 2)

 

 

 

 

 

 

 

10

a sin an

 

 

 

 

 

Pn

 

 

 

 

n

2

 

2

 

 

 

 

 

2

Sn

 

 

 

n a

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

10

n3 5n2

7n 14 2cos n

 

 

 

 

10

 

 

n x

 

 

 

 

 

 

Sn

 

 

 

 

 

 

 

 

5

 

 

 

3

 

 

 

3

Pn

 

x 1

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

n

 

2n

 

4n 11

 

 

 

n 1

n

 

 

5n

 

 

 

 

 

 

10 n4 10n3 8n2 15n 2n 7

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

Pn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nsin n

 

 

 

 

 

 

 

 

 

 

3n

5

 

2n

3

n 17

 

Sn

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

4

nsin n 5n 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

10

sin nx cosnx

 

 

 

 

 

 

10

 

 

cos n

n

 

 

Sn

 

 

n

3

 

4n 5

 

 

 

5

Pn

 

 

 

 

 

1

n n2

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

n 1

cos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

10

2n (x 3)n

 

 

 

 

 

 

 

 

 

10

 

 

 

 

1

 

 

 

Sn

 

3

 

2n 1

 

 

 

 

 

6

Sn

ln 1

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

n

 

 

 

 

 

 

10

 

 

sin x

 

 

 

 

 

 

 

 

 

 

10

 

22n 1

 

 

 

 

 

Sn

 

 

 

n

 

 

 

 

 

 

Sn

 

 

 

2

 

 

 

 

 

n 1

(n 1) 2

 

 

 

 

 

 

7

 

 

 

n 1

n (n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

n(x 1)2n

 

 

 

 

 

 

 

 

 

10

 

1

 

 

 

 

1

 

 

Sn n

 

 

 

 

 

5

 

 

 

 

 

 

 

 

Sn (

 

2

 

(n 1)

2 )

 

 

 

 

n 1

9

 

 

 

n

 

 

3

 

 

 

 

 

8

 

 

 

n 1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

x

n

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sn

 

 

 

 

 

 

 

 

 

Sn

3

n

 

n 1

 

 

 

 

 

9

6

(2n 3)

7

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

10

 

2n2 1

n

 

 

 

 

 

S

 

 

10

2n 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

n

 

 

 

 

 

2

 

5

 

 

 

 

 

 

0

 

n

 

2n 1

 

 

 

 

 

 

 

 

n 1

3n

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

58

Лабораторная работа 6. Циклические алгоритмы в VBA с

использованием циклов с условием

Цель: отработка навыков использования циклических алгоритмов при создании программного кода на VBA с использованием циклов с условием.

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

Операторы циклов с условием

В VBA для организации циклов с заранее неизвестным числом повторений используются оператор цикла с условием. VBA располагает несколькими операторами циклов с условием (While-Wend и вариации оператора Do-Loop).

Оператор цикла While-Wend

В этом операторе цикла с предусловием сначала проверяется условие и до тех пор пока оно истинно будет выполняться тело цикла. Синтаксис оператора цикла While-Wend:

While «условиие»

«блок_операторов»

Wend

Пример:

Sub тест_цикла пока()

S=0

While x<10

S=S+x

MsgBox S

Wend

End Sub

1. Цикл Do-Loop

Цикл Do-Loop может быть как «с предусловием» так и «с пост условием» (Таблица 4). Оператор выполняется до тех пор, пока «условие» имеет значение True.

59

 

Таблица 4

 

Цикл Do-Loop

 

 

 

Конструкция цикла

Описание

 

Do While ... Loop

Цикл с предусловием выполняется

 

 

до тех пор, пока условие «истинно»

 

Do Until ... Loop

Цикл с предусловием выполняется

 

 

до тех пор, пока условие «ложно»

 

Do ... Loop While

Цикл с постусловием выполняется

 

 

до тех пор, пока условие «истинно»

 

Do ... Loop Until

Цикл с постусловием выполняется

 

 

до тех пор, пока условие «ложно»

 

Синтаксис операторов Do-Loop:

Do While «условиие»

«блок_операторов»

[Exit Do]

«блок_операторов»

Loop

Пример подсчета ячеек столбца A до тех пор, пока не встретится пустая

ячейка. Функция IsEmpty определяет, пуста ячейка или нет.

Sub Пример1()

Dim I As Integer i = 1

Do While Not IsEmpty(Cells(i, 1))

i = i + 1

Loop

MsgBox i – 1

End Sub

Пример выполнять подсчет ячеек столбца A до тех пор, пока не

встретится пустая ячейка или ее значение будет равно 2.

Sub Пример2()

Dim i As Integer

i = 1

Do

60

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