КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Логические выражения, логические операции и операции отношения
End If Else End If Else [блок_операторов_N]
– логическое_выражение – выражение, возвращающее не нулевое значение (истина) или ноль (ложь); – блок_операторов – любое количество операторов.
При блочной форме проверяется сначала первое логическое выражение. Если оно ненулевое ("истина"), выполняются операторы блока, следующего за словом Then (блок_операторов_1). Если логическое выражение равно нулю ("ложь"), происходит переход к оценке условия, заданного в последующей строке ElseIf. При выполнении этого условия выполняются операторы данного блока (блок_операторов_2) и т.д. Если ни одно из условий ElseIf не выполняется (все "ложь"), то выполняются операторы блока Else (блок_операторов_N). Последний блок операторов должен заканчиваться строкой End If. Любую программу можно составить с использованием только самой простой формы оператора If – краткой линейной формы. Все остальные формы используются только для удобства записи программы. Как было уже сказано, если проверяются одно или два условия, то имеет смысл использовать более простую линейную форму If…Then или If...Then…Else. Блочная форма применяется, когда необходимо анализировать не одно или два условия, а целый ряд взаимосвязанных условий:
If логическое_выражение_1 Then [блок_операторов_1] ElseIf логическое_выражение_2 Then [блок_операторов_2] …………………………………………………………………………………………………… ElseIf логическое_выражение_N–1 Then [блок_операторов_N–1] [блок_операторов_N]
Действие оператора If поясняется блок-схемой, приведенной на рис. 5.
Рис. 5. Блочная форма оператора If…Then
Пример 3. Определение количества знаков в числе от 0 до 1000.
Sub blochnaya_forma_If() Dim x As Single Dim y As Integer m1: x = InputBox("Введите целое положительное число в интервале от 0 до 1000", "Запрос задачи") If x < 0 Or x > 100 Or x <> Int(x) Then 'повтор ввода, если ввели не отвечающее требованиям число MsgBox "Вы ввели не верное число",, "Повторите ввод" GoTo m1: ElseIf x < 10 Then y = 1 ElseIf x < 100 Then y = 2 ElseIf x < 1000 Then y = 3 Else y = 4 End If MsgBox "Число " & x & " имеет " & y & " знак(а)",, "Решение задачи" End Sub
Логическое выражение, стоящее после оператора If или ElseIf может быть истинным или ложным. В отличии от арифметических выражений логические выражения принимают не числовые значения, а логические значения – "TRUE" (истина) и "FALSE" (ложь). В логических выражениях можно использовать следующие операции отношений: =, <, >, < =, > =, < > (равно, меньше, больше, меньше либо равно, больше либо равно, не равно). В логическом выражении допустимы два или несколько условий (операций отношения), которые связываются логическими операциями And, Or, Not (И, ИЛИ, НЕ). Логические операции осуществляют манипуляции над битами. Они возвращают значение "Истина" (не нулевое) и "Ложь" (нулевое) значения. Описание логических операций приведено в таблице 5.
Таблица 5. Логические функции языка VBA
Пример 4. Определить, попадает ли точка с координатами под кривую функции , заданную в интервале .
Sub Primer() Dim x0 As Single, x_radian As Double Dim y0 As Double, y As Double x0 = InputBox("Введите х координату точки от 0 до 360 градусов", "Запрос задачи на попадание") If x0 < 0 Or x0 > 180 Then x0 = InputBox("Вы ввели неверное число. Повторите ввод", "Повторный запрос") End If y0 = InputBox("Введите у координату точки", "Повторный запрос") ' перевод х из градусов в радианы x = x0 * 4 * Atn(1) / 180 ' вычисляем значение функции y = Sin(x_radian) If y > y0 Then MsgBox "Точка лежит под кривой",, "Ответ" ElseIf y = y0 Then MsgBox "Точка лежит на кривой",, "Ответ" ElseIf y < y0 Then MsgBox "Точка лежит над кривой",, "Ответ" End If End Sub
Результат программы:
Циклические программы. Оператор For…Next
В программировании часто возникает необходимость многократного выполнения однотипных операций, выполняемых по определенному алгоритму. Такие задачи называют циклическими, а группу операторов, которые используются в программе многократно – циклом. Различают циклы арифметические и итерационные. Примером циклического алгоритма является задача ввода в программу массива данных, их обработка и вывод. Реализация арифметического цикла осуществляется операторами For…Next. Цикл For…Next организует счетный цикл и используется, когда необходимо повторить действие или ряд действий заданное количество раз, известное до начала выполнения цикла. Цикл For...Next имеет следующий синтаксис: For счетчик = Начало То Конец [ Step Шаг] [Операторы цикла] Next счетчик Счетчик — любая переменная, по которой организован цикл. В квадратных скобках указан необязательный параметр. По умолчанию VBA увеличивает счетчик на 1 каждый раз при выполнении операторов в цикле (шаг по умолчанию равен 1). Если нужно другое значение шага, надо включать в оператор For необязательное ключевое слово Step. При выполнении цикла For…Next VBA поступает следующим образом: – присваивает значение Начало переменной счетчик; - выполняет все операторы, представленные с помощью Операторы - изменяет счетчик на величину Шаг (если в оператор For включается необязательное ключевое слово Step; если Step не определено, то VBA по умолчанию увеличивает переменную на 1); - возвращается к началу цикла и сравнивает текущее значение счетчика Если Шаг >0, то такой цикл называется циклом с возрастающим счетчиком; если Шаг <0 – цикл с убывающим счетчиком. В последнем случае Начало должно быть больше, чем Конец. Цикл For…Next выполняется только в том случае, если начальное значение счетчика цикла плюс шаг изменения значения счетчика меньше или равно конечному значению счетчика. Если конечное значение счетчика меньше начального значения, то шаг должен быть отрицательным. Цикл выполняется до тех пор, пока текущее значение счетчика не выйдет за рамки конечного значения. При завершении текущего цикла к значению счетчика прибавляется значение шага. Если начальное и конечное значения счетчика совпадают, то цикл выполняется один раз, вне зависимости от значения шага. Если шаг равен нулю, цикл продолжается неопределенное количество раз. Пример 5. Построить заполнить таблицу значениями функции на интервале 16° < х < 40° с шагом 4°. Sub Demo_ForNext() ' Объявляем начало, конец цикла, шаг Dim xStart, xEnd, xStep As Integer Dim x As Integer Dim i As Integer Dim xradian, у As Single ‘ Чтение числовых значений из рабочего листа Excel xStart = Cells(2, 2) xEnd = Cells(3, 2) xStep = Cells(4, 2) ' Номер строки заголовка таблицы значений функции i = 1 For x = xStart To xEnd Step xStep ' Вычисляем значение х в радианах xradian = 3.14* х/180 ' Вычисляем значение функции у = (2.51 * Sin (xradian) / (2 + 3* Cos (xradian))^ (1 / 3)) i = i + 1 ' Передаем полученные значения в рабочий лист Cells(i, 4) = х Cells(i, 5) = y Next x End Sub
Дата добавления: 2014-10-23; Просмотров: 663; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |