IIF(логическое выражение,выражение1,выражение2)




В отличие от оператора If функция IIF вычисляет два значения, но в зависимости от значения условного выражения возвращает только одно: если значение условного выражения истинно, то функция возвращает значение первого выражения, в противном случае – второго. Выражения могут быть представлены константами или вычисляемыми выражениями. Так, пример, рассмотренный на с. 14, можно записать в таком виде:

y=IIF(x>0,1,0)

Эта функция проверяет, имеет ли переменная x значение больше 0, и, если имеет, переменной y присваивается значение1, в противном случае – значение 0.

Рассмотрим еще несколько примеров.

 

Пример 1.

Пусть необходимо вычислить значение функций y1 и y2.

y 1 = a + ; y 2 = a 3, если x > a

y1 = arctg x, если x <= a,

где a = b + 1

 

Входные данные: x, b - вещественного типа

Выходные данные: y 1, y 2, a, х - вещественного типа

 

Схема алгоритма:

 
 

 


На форме разместим два текстовых поля для ввода значений x и b, командную кнопку и элемент управления "Надпись" для вывода значения переменной y 2 (используется свойство Caption этого элемента управ-ления). Программа будет иметь следующий вид:

 

Private Sub Command1_Click()

Dim x As Single, a As Single, b As Single

Dim y1 As Double, y2 As Double

x=Text1.Text

b=Text2.Text

a=b+1

If x>a Then

y1=a+Abs(x)

y2=a^ 3

Label1.Caption = "При x=" & Str(x) & ", a =" & Str(a) & ": y2=" & Str(y2)

Else

y1=Atn(x)

End If

MsgBox Format(y1, "0.000"),, " y1 равно"

End Sub

При выполнении условия x < a (6<45+1), форма и диалоговое окно, содержащее значение переменной y 1, будут иметь вид:

 
 

 
 

В противном случае при x > a (45>2+1)) вид формы изменится, а диалоговое окно, предназначенное для вывода значения переменной y 1, останется прежним.

 

 

Пример 2.

Пусть необходимо вычислить значение функции Y

 

 

Входные данные: x - вещественного типа

Выходные данные: Y - вещественного типа

 

 

Схема алгоритма:

 
 

 


 

 

 

10.2.5. Оператор Select Case …. End Select

Использование оператора If становится неудобным, когда вложенность структуры Развилка превышает три. В таких случаях целесообразно применять оператор Select Case …. End Select, который позволяет сделать выбор из произвольного числа вариантов. Синтаксис этого оператора следующий:

 

Select Case выражение

Case значение

< операторы>

[ Case значение

< операторы> ]

[Case Else

<операторы > ]

End Select

Параметр выражение – любое числовое, строковое, логическое выражение или переменная.

В этом операторе вместо вычисления логического условия выполняется сравнение значения <выражение> с каждой из величин, заданных параметром <значение>. Для блока Case можно указывать не только одно значение, но и несколько, разделенных запятой (например: 2, 3, 4). Можно определять также области сравнения (например: 4 To 6) или воспользоваться относительным сравнением (например: Is > = 9, где Is – ключевое слово). Очередной блок Case выполняется, если ни одно из предыдущих условий не является истинным. В операторе может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции Case Else.

 

Например, оператор Select Case может использоваться для проверки принадлежности значения случайной величины некоторым заданным значениям. Используем функцию Rnd для получения случайного числа в диапазоне [0;10].

 

Randomize

Ns =Int(Rnd*10)+1

Select Case Ns

Case 1

Print "Равно 1"

Case 2,3

Print "Равно 2 или 3"

Case 4 to 6

Print "Больше или равно 4 и меньше или равно 6"

Case Is >=9

Print "Больше или равно 9"

Case Else

Print "Ни одно из предыдущих"

End Select

Следует обратить внимание, что выражение Is >= 9 определяет все значения переменной Ns, которые больше или равны 9. Если совпадения значений не обнаружится, то управление передается команде, которая следует за оператором End Select.

 

 

Пример 3.

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

Option Explicit

Private Sub Form_Activate()

Dim a As Integer, b As Integer, s As Single

Dim z As String * 1

Dim stro As String * 10

a = InputBox("Введите a ")

b = InputBox("Введите b ")

1: z = InputBox("Введите знак ")

Select Case z

Case "+"

s=a+b

stro="Складываю! "

Case "*"

s=a*b

stro="Умножаю! "

Case "–"

s=a–b

stro="Вычитаю! "

Case "/"

s=a/b

stro="Делю! "

Case Else

MsgBox " Введен неверный знак операции – " & z & "Повторите ввод"

GoTo 1

End Select

MsgBox stro & a & z & b & "=" & Format(s,"0.000")

End Sub

10.2.6. Оператор безусловного перехода

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

 

Goto имя метки или номер строки

 

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

В блоке объявлений метка описывается следующим образом:

Dim имя метки As Label

Например, имя метки – Skipit:

MsgBox "Данная инструкция выполняется"

Goto Skipit

MsgBox "Данная инструкция пропускается"

Skipit:

MsgBox "Действие продолжается"

 

10.3. Структура Цикл

Цикл – это основная алгоритмическая структура, которая исполь-зуется для организации циклических вычислительных процессов.Под циклическим вычислительным процессом понимается процесс, в котором производятся вычисления по одним и тем же формулам, но при различных значениях параметров. Число повторений определяется значением неко-торого логического выражения, зависящего от управляющей переменной (параметра цикла).

Организация циклического процесса требует введения следующих понятий:

– параметр цикла (обозначим его х);

– начальное значение параметра цикла (обозначим его х 0);

– конечное значение параметра цикла (обозначим его х к);

– шаг изменения параметра цикла (обозначим его D х).

– условие окончания цикла (зависит от вида циклического процесса).

Различают циклы с параметром и итерационные циклы. В циклах с параметром заранее известно конечное значение параметра цикла и число его повторений. Условие окончания цикла записывается в виде логического выражения x £ x к. Если условие истинно, то циклический процесс продолжается, в противном случае заканчивается.

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

Рассмотрим структуру Цикл с параметром. Для организации этого типа вычислительных процессов используют циклы с пред- и постусловием. При этом различают простые циклические процессы (структура Цикл) и вложенные (структура Цикл в Цикле).

 

10.3.1. Цикл с предусловием

 

Структура Цикл с предусловием организуется следующим образом.

1. Параметру цикла х присваивается начальное значение, равное х 0.

2. Проверяется условие окончания цикла (значение параметра цикла меньше конечного значения или равно ему).

3. Если условие окончания цикла истинно, то выполняется тело цикла. Если условие ложно, осуществляется переход к оператору, следующему за структурой Цикл.

4. Значение параметра цикла увеличивается на величину шага и осуществляется переход к пункту 2, но при новом значении параметра цикла.

Схема алгоритма структуры Цикл с предусловием приведена на рис. 13.

 

 

Особенностью структуры Цикл с предусловием служит то, что тело цикла при начальном значении параметра x > x к не выполняется ни разу.

Для реализации циклических вычислительных процессов с предусловием используются следующие операторы цикла.

 

Оператор For … Next

 

Синтаксис оператора следующий:

 

For параметр цикла =Начальное значение To Конечное значение [Step Шаг]

Тело цикла

Next параметр цикла

 

Параметр <Начальное значение > определяет значение переменной, с которой начинается отсчет. Параметр <Конечное значение> определяет значение переменной, при котором отсчет прекращается.

По умолчанию в цикле For … Next приращение шага равно 1.Чтобы его изменить, следует указать ключевое слово Step, а после него значение приращения.

Параметр цикла может изменять свое значение в обратномнаправ-лении. Для этого следует задать начальное значение больше конечного и указать отрицательное приращение после ключевого слова Step.

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

 

Оператор Do … Loop

 

1. Do While <условие> 2. Do Until <условие>

операторы операторы

Loop Loop

 

Следует обратить внимание, что при использовании оператора Do … Loop перед его записью параметру цикла необходимо присвоить начальное значение, а последний оператор тела цикла, должен увеличивать (уменьшать) значение параметра цикла на величину шага, в то время как в операторе For … Next эти действия записываются в заголовке самого оператора.

Повторение цикла в конструкциях Do While происходит до тех пор, пока условие остается истинным. Повторение цикла в конструкциях DoUntil происходит до тех пор, пока условие ложно.

Для выхода из цикла Do … Loop используется команда Exit Do.

Пример 4.

Разработать информационную технологию, позволяющую вычислить значение функции y = sin x, при изменении значения a<=х<=b с шагом кх, где a = 0, b = p, кх =p /6.

Входные данные: a, b - вещественного типа

Выходные данные: y - вещественного типа

Схема алгоритма представлена на рис. 14.

 
 

 


 

В цикле значение y вычисляется до тех пор, пока условие не станет ложным, т.е. пока переменная x не станет больше b. На форме разместим два текстовых поля для ввода начального и конечного значений параметра цикла, командную кнопку и элемент управления "Список". Программа может быть записана так:

 

Private Sub Command1_Click()

Const pi=3.14159

Dim a As Double, b As Double, x As Double

Dim y As Double

a=Text1.Text: b=Text2.Text

x=a

Do While x<=b+pi/12 ’или Do Until x > b + pi/12

y = Sin(x)

List1.AddItem("x=" + Format(x, "0.00") + " y=" + Format(y, "0.000"))

x=x+pi/6

Loop

End Sub

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

 

Результат выполнения программы представлен на рис. 15.

 

 
 

Рис. 15

 

10.3.2. Цикл с постусловием

 

Структура Цикл с постусловием организуется следующим образом:

1. Параметру цикла х присваивается начальное значение, равное х 0.

2. Выполняется тело цикла.

3. Значение параметра цикла увеличивается на величину шага.

4. Проверяется условие окончания цикла. Если условие истинно, то осуществляется переход к пункту 2, в противном случае выполнение циклического процесса заканчивается и осуществляется переход к оператору, следующему за структурой Цикл.

Схема алгоритма структуры Цикл с постусловием приведена на рис. 16. Характерной особенностью этого типа циклических процессов служит то, что при задании параметру цикла значения х 0 > x к, тело цикла будет обязательно выполнено один раз.

 

 
 

 

 


Структуру Цикл с постусловием можно реализовать с помощью следующих операторов.

 

Do 2. Do

операторы операторы

Loop While условиеLoop Until условие

Следует обратить внимание, что перед записью операторов параметру цикла необходимо присвоить начальное значение, а последний оператор тела цикла, должен увеличивать (уменьшать) значение параметра цикла на величину шага.

 

Пример 5.

Разработать информационную технологию, позволяющую вычислить значение функции при изменении значения –1,2£s£1,2 с шагом Ds = 0,2.

 

Входные данные: данных, подлежащих вводу, нет

Выходные данные: s, g - вещественного типа

Private Sub Form_Activate() Dim s As Double, g As Double Cls ’ Очистка формы CurrentY = 500 Print Tab(20), "Значение s", "Значение g" Print Tab(20), "_______________________" s = –1.2 Do g = (1 + Exp(3 * s)) ^ (1 / 4) Print Tab(20), Format(s, "0.0"), _ Format(g, "0.0000") s = s + 0.2 Loop Until s > 1.2 End Sub  
Ниже представлена схема алгоритма, программа и выходная форма решения задачи.

       
   
 
 

 


10.3.3. Структура Цикл в Цикле

При реализации структуры Цикл в Цикле вводятся следующие понятия:

– параметр внешнего цикла (х);

– параметр внутреннего цикла (z);

– начальное значение параметра внешнего цикла (х 0);

– начальное значение параметра внутреннего цикла (z 0);

– конечное значение параметра внешнего цикла (х к);

– конечное значение параметра внутреннего цикла (z к);

– шаг изменения параметра внешнего цикла (D х);

– шаг изменения параметра внутреннего цикла (D z);

– условие окончания внешнего цикла;

– условие окончания внутреннего цикла.

 

Эта структура организуется по тому же принципу, что и структура Цикл. Схема алгоритма приводится на рис. 17. Телом внешнего цикла служат блоки 3 – 6.

 

 

Рис. 17

 

Пример 6.

Пусть требуется вычислить значение функции y = sin x + cos z при изменении 0 £ x £ 2, где Dx = 0,4, а 1 £ z £ 2 с шагом Dz = 0,5.

Входные данные: данных, подлежащих вводу, нет

Выходные данные: x, z, y - вещественного типа

Схема алгоритма:

 
 


 

 
 

Программа этого примера и выходная форма имеют вид:

 

 

В приведенном примере реализуется внешний цикл с предусловием. Телом внешнего цикла является внутренний цикл с постусловием, т.е. внутренний цикл выполняется хотя бы один раз.

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




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: