Реализация алгоритмов с помощью макросов в excel 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Реализация алгоритмов с помощью макросов в excel



 

Цель работы: получить практические навыки разработки функций для реализации линейных, разветвляющихся и простейших циклических алгоритмов с помощью макросов в Excel.

 

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

 

Реализация линейных и разветвляющихся алгоритмов

 

В Visual Basic for Application для задания значения переменной используется оператор присваивания. Этот оператор имеет следующий вид:

Переменная = Выражение

Выражение может быть арифметическим, текстовым или логическим.

Для записи выражений используются арифметические, текстовые и логические операции (операторы).

Арифметические операторы служат для выполнения арифметических действий над числами (таблица 16.1).

 

Таблица 16.1 ‑ Арифметические операторы

Арифметический оператор Действие Пример
+ (знак плюс) Сложение 3+3
– (знак минус) Вычитание Унарный минус 3–1 –1
* (звездочка) Умножение 3*3
/ (косая черта) \ (обратная черта) Деление Целочисленное деление 5/8 (результат 0.625) 5\8 (результат 0)  
% (знак процента) Процент 20%
^ (крышка) Возведение в степень 3^2 (аналогично 3*3)

 

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

Для записи разветвляющихся алгоритмов используется оператор If (Если), который имеет две формы записи.

1. Однострочная запись:

If условие Then [оператор]

If условие Then [оператор 1] [ Else оператор 2]

2. Многострочная запись:

If условие Then

[оператор 1]

[оператор 2]

[оператор 3]

End If

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

После имени конструкции If должно следовать логическое выражение, содержащее условие. Для создания сложных условий используются логические операции And (И) и Or (Или). В качестве условия могут выступать следующие логические выражения: сравнение переменной с другой переменной, константой или функцией; любая переменная; выражение; поле базы данных; функция, принимающие значения True (Истина) или False (Ложь).

Конструкция IfThen (Тогда)Else (Также)аналогична конструкции If... Then, но позволяет задать действия, исполняемые как при выполнении условий, так и в случае их невыполнения.

Команда If может проверить только одно условие. Если требуется осуществить переход управления в зависимости от результатов проверки нескольких условий, то дополнительное условие можно задать с помощью оператора Else If (Также Если). Оно будет анализироваться только в том случае, если предыдущее условие ложно.

Ключевое слово End If обозначает конец многострочной конструкции и его наличие в команде в этом случае обязательно. Если указанное условие выполняется, то есть результат проверки равен True (Истина), то выполняются операторы, следующие за ключевым словом Then. Если условие не выполняется, то Visual Basic переходит к выполнению операторов, следующих за указанным оператором.

В качестве примера приведем функцию определения корней квадратного уравнения:

 

Function Корни(a, b, c)

d = b ^ 2 - 4 * a * c

If d >= 0 Then

x1 = (-b + d ^ (1 / 2)) / (2 * a)

x2 = (-b - d ^ (1 / 2)) / (2 * a)

Корни = "x1=" + str(x1) + "; x2=" + str(x2)

Else

Корни = "корней нет"

End If

End Function

 

Конструкция Select Сase позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций IfThenElse. Эта конструкция состоит из анализируемого выражения и набора операторов Case (в случае) на каждое возможное значение выражения. Работает эта конструкция следующим образом. Сначала вычисляется значение заданного в конструкции выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Сase конструкции. Если найдено искомое значение, выполняются команды, приписанные данному оператору Case. После завершения выполнения конструкций управление будет передано конструкции, следующей за ключевым словом End Select. Запись конструкции Select Case следующая:

Select Case сравниваемое значение

CASE значение 1

конструкция 1

CASE значение 2

конструкция 2

End Select

В начале конструкции расположены ключевые слова Select Case, указывающие, что расположенный рядом с ними параметр “сравниваемое значение” будет проверяться на несколько значений. Далее следуют группы команд, начинающиеся с ключевого слова Case. Если параметр “сравниваемое значение” равен значению, указанному в текущем операторе Case, то будут выполняться команды, расположенные между этим и следующим ключевым словом Case.

В качестве примера воспользуемся конструкцией Select Case для выбора удельного активного сопротивления и расчета полного активного сопротивления R в зависимости от заданной марки провода воздушной линии электропередачи:

 

Private Sub Marka()

m = InputBox("Введите марку провода")

l = InputBox("Введите длину линии")

Select Case m

Case "АС 70/11"

R = l * 0.428

Case "АС 95/16"

R = l * 0.306

Case "АС 120/19"

R = l * 0.249

Case "АС 150/24"

R = l * 0.198

Case "АС 185/29"

R = l * 0.162

Case Else

R = "Выбранная марка провода отсутствует в базе данных"

End Select

MsgBox R

End Sub

 

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

 

Реализация циклических алгоритмов

 

Для реализации циклических алгоритмов используются три вида операторов цикла: For, While, DoLoop, форматы и примеры которых приведены ниже.

Оператор For имеет следующий формат записи:

 

For переменная = начальное значение To конечное значение

[операторы]

Next [перменная]

 

В качестве примера приведем программу, в которой оператор For используется для вычисления суммы s=12+22+…+n2:

 

Sub Sum ()

n = InputBox("Введите количество слагаемых")

s = 0

For i = 1 To n

s = s + i ^ 2

Next

MsgBox s

End Sub

 

Оператор While имеет следующий формат записи:

 

While условие

[операторы]

Wend

 

Для сравнения принципа работы рассматриваемого оператора с оператором For приведем пример программы, выполняющей аналогичную задачу вычисления суммы

 

Sub Sum()

Dim i As Integer

n = InputBox("Введите количество слагаемых")

s = 0

i = 0

While i < n + 1

s = s + i ^ 2

i = i + 1

Wend

 

Оператор Do... Loop имеет следующий две разновидности записи:

 

Do [{While / Until} условие]

[операторы]

[ Exit Do ]

[операторы]

Loop

или:

Do

[операторы]

[ Exit Do ]

[операторы]

Loop [{While / Until} условие]

 

Приведем пример предыдущей задачи с использованием данного оператора

 

Sub Sum()

Dim i As Integer

n = InputBox("Введите количество слагаемых")

s = 0

i = 0

Do While i < n + 1

s = s + i ^ 2

i = i + 1

Loop

MsgBox s

End Sub

 

или

 

Sub Sum()

Dim i As Integer

n = InputBox("Введите количество слагаемых")

s = 0

i = 0

Do

s = s + i ^ 2

i = i + 1

Loop Until i > n

MsgBox s

End Sub

 

Порядок выполнения работы

 

1. Изучите теоретические сведения.

2. Создайте макросы по заданному преподавателем варианту.

3. Сохраните файл с созданными макросами.

4. Перепишите текст макросов в отчет.

5. Закройте Visual Basic и Microsoft Excel.

6. Ответьте на контрольные вопросы по указанию преподавателя.

 

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

 

1. С помощью каких операторов составляются циклические алгоритмы?

2. Каково назначение операторов For, While, DoLoop?

3. В чем разница между операторами For и While?

4. Что может содержаться в условии оператора If?

5. Что происходит в случае невыполнения условия в операторе If?

6. Каково назначение операторов Then, Else и Else If?

7. В чем разница между операторами If и Select Case?

8. В чем разница между операторами While и Until?

 

16.4 Задания для самостоятельной работы

 

1. В редакторе Visual Basic напишите программу для нахождения минимального числа из трех заданных чисел A, B, C.

 

2. В редакторе Visual Basic создайте макрос, запрашивающий целое число. В случае ввода положительного числа должен осуществляться вывод строки “число положительное”, отрицательного - “число отрицательно”, 0 - “ноль”.

 

3. В редакторе Visual Basic создайте макрос для определения вида треугольника (равносторонний, равнобедренный, прямоугольный), если три заданных числа A, B, C - длины его сторон.

 

4. В редакторе Visual Basic напишите макрос для вычисления эквивалентного сопротивления параллельно и последовательно соединенных проводников с сопротивлениями R1 и R2. Предусмотреть возможность выбора соединения.

 

5. В редакторе Visual Basic напишите программу, осуществляющую табличный вывод значений синуса углов от 0 до 180 градусов с шагом, равным 10.

 

6. В редакторе Visual Basic напишите программу для нахождения суммы , где n - заданное число.

 

7. В редакторе Visual Basic составьте программу для определения с заданной погрешностью значения выражения: .


ЛАБОРАТОРНАЯ РАБОТА № 17

 

ПРОГРАММА MICROSOFT ACCESS.



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 2177; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.191.214 (0.036 с.)