Задания на лабораторную работу
Составить программу, которая переводит одни единицы измерения в другие. Исходные данные вводятся с клавиатуры, результат выводится на экран с необходимым форматированием выводимых значений. Пример Перевести минуты в часы. Sub Celsius() Const Celsius2Fahrenheit = 1.8 Dim c As Single, f As Single f = CSng(InputBox("Введите количество градусов Фаренгейта")) c = f / Celsius2Fahrenheit MsgBox (FormatNumber(f, 1) & " градусов Фаренгейта равно " & FormatNumber(c, 1) & " градусов Цельсия") End Sub Варианты заданий 1. Метры в километры. 2. Дюймы в метры (1 дюйм = 2,54 см). 3. Километры в дециметры. 4. Килограммы в тонны. 5. Граммы в центнеры. 6. Квадратные метры в гектары. 7. Ары в квадратные километры (1 ар = 100 м2). 8. Кубические дециметры в кубические метры. 9. Кубические сантиметры в литры. 10. Фунты в килограммы (1 фунт = 0,45359 кг). Задания на самостоятельную работу Составить программу, присваивающую все вычисляемые значения строковой переменной через соответствующие функции. Переменную добавить в Контрольное значение и отслеживать её изменение. Необходимо вычислить количество следующих значений между датой своего рождения и текущей датой: количество дней, недель, месяцев, кварталов, лет. Выполнить программу в пошаговом режиме. Лабораторная работа №4 Цель работы Повторить основы программирования линейных и разветвляющихся вычислительных процессов. Теоретический материал, для освоения темы Управляющие структуры VBA. If... Then, If... Then... Else, Select Case Управляющие структуры позволяют управлять последовательностью выполнения программы. Без операторов управления все операторы программы будут выполняться слева направо и сверху вниз. Однако иногда требуется многократно выполнять некоторый набор инструкций автоматически, либо решить задачу по-другому в зависимости от значения переменных или параметров, заданных пользователем во время выполнения. Для этого служат конструкции управления и циклы.
VBA поддерживает следующие конструкции принятия решений: If... Then If... Then... Else Select Case Конструкция If... Then Конструкция If... Then применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия. Синтаксис этой конструкции позволяет задавать ее в одной строке или в нескольких строках программы: If условие Then выражение If условие Then выражение End If Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then. Для условного выполнения одного оператора можно использовать как синтаксис для одной строки, так и синтаксис для нескольких строк (блоковую конструкцию). Заметим, что синтаксис оператора If... Then для одной строки не использует оператор End If. Чтобы выполнить последовательность операторов, если условие истинно, следует использовать блоковую конструкцию If... Then... End If. Если условие ложно, то операторы после ключевого слова Then не выполняется, а управление передается на следующую строку (или строку после оператора End If в блочной конструкции). Конструкция If... Then... Else определяет несколько блоков операторов, один из которых будет выполняться в зависимости от условия: If условие1 Then выражение1 ElseIf условие2 Then выражение2 ... Else выражение-n End If При выполнении сначала проверяется условие1. Если оно ложно, VBA проверяет следующее условие2 и т. д., пока не найдет истинного условия. Найдя его, VBA выполняет соответствующий блок операторов и затем передает управление инструкции, следующей за оператором End if. В данную конструкцию можно включить блок оператора Else, который VBA выполняет, если не выполнено ни одно из условий.
Конструкция If... Then... ElseIf в действительности всего лишь специальный случай конструкции If... Then... Else. Заметим, что в данной конструкции может быть любое число блоков ElseIf, или даже ни одного. Блок Else можно включать независимо от присутствия или, наоборот, отсутствия блоков ElseIf. Рассмотрим пример вычисления функции Private Sub UserForm_Initialize() Dim q, w, e As String If CheckBox2 = True Then q = InputBox("Введите название фирмы") w = InputBox("Введите название тура") e = InputBox("Введите название страны") End If Range("A8") = q Range("C8") = w Range("E8") = e End Sub Заметим, что можно добавить любое число блоков Elself в конструкцию If... Then. Однако количество блоков Elself может стать настолько большим, что конструкция If... Then станет очень громоздкой и неудобной. В подобной ситуации следует применять другую конструкцию принятия решения – Select Case. Конструкция Select Case Конструкция Select Case является альтернативой конструкции If... Then... Else в случае выполнения блока, состоящего из большого набора операторов. Конструкция Select Case предоставляет возможность, похожую на возможность конструкции If... Then... Else, но в отличие от нее она делает код более читаемым при наличии нескольких вариантов выбора. Конструкция Select Case работает с единственным проверяемым выражением, которое вычисляется один раз при входе в эту конструкцию. Затем VBA сравнивает полученный результат со значениями, задаваемыми в операторах Case конструкции. Если найдено совпадение, выполняется блок операторов, ассоциированный с оператором Case: Select Case проверяемое_выражение [Case список_выражений1 [блок_операторов1]] [Case список_выражений2 [блок_операторов2]] ... [Case Else [блок_операторовn]] End Select Рассмотрим пример вычисления функции Private Sub UserForm_Initialize() Dim nR As Integer Dim nC As Integer Dim RC As String nR = ActiveCell.Row nC = ActiveCell.Column RC = nR & nC If Not Check(nR, nC) Then Exit Sub ActiveCell = "0" With WRK Select Case RC Case "23":.Cells(2, 2) = "X" Case "34":.Cells(2, 4) = "X" Case "32":.Cells(4, 2) = "X" Case "43":.Cells(4, 4) = "X" Case "22":.Cells(2, 4) = "X"
Case "24":.Cells(4, 4) = "X" Case "42":.Cells(4, 4) = "X" Case "44":.Cells(4, 2) = "X" End Select End With End Sub Обратим внимание на то, что здесь используется RC ссылка, для удобства выбора диапазона ячеек, а также заметим, что конструкция Select Case вычисляет выражение только один раз при входе в нее, а в конструкции If... Then... Else вычисляются различные выражения для каждого оператора Elself. Конструкцию If... Then... Else можно заменить конструкцией Select Case, только если оператор If и каждый оператор Elself вычисляют одно и то же выражение.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|