КАТЕГОРИИ: Архитектура-(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) |
Пример 3. Sub SquarPr (L As Single; H As Single; S As Single; Optional F )
Пример Пример Sub SquarPr (L As Single; H As Single; S As Single; Optional F) If IsMissing(F) Then F=100 ‘IsMissing проверяет наличие аргумента F, если F не задано, по умолчанию F присваивают 100. S=L*H: End Sub Вызов: Sub Proc_A() I способ: Dim Sq as Single SquarPr 12,23,sq ‘ могут быть через,- зависит от установки. End Sub II способ: Sub Proc_A() Dim Sq as Single: Dim LL as Single: Dim HH as Single LL=12: HH=23: SquarPr LL HH Sq End Sub III способ: Sub Proc_A() Dim Sq as Single: Dim LL as Single: Dim HH as Single LL=12: HH=23: SquarPr L:=LL, H:=HH, S:=Sq End Sub При завершении работы вызываемой процедуре и передаче управления вызывающей процедуры происходит потеря значений переменных, объявляемых в вызываемой процедуре. Для предотвращения этого сохраняемые переменные смогут объявить: Static <var> As <type> Обычно при вызове процедуры происходит передача адреса, по которому находится значение. Процедура может изменить значение аргумента. Для блокировки изменения значения аргумента следует передача величин значением. Для этого выполняют либо модификацию заголовка процедуры, либо передача аргументов в виде формул. Для модификации: Sub SquarPr (ByVal L As Single, ByVal H As Single, S As Single) S=L*H: L=10: H=20: End Sub Для преобразования аргумента в виде формулы имя переменной заключают в круглые скобки. Sub Proc_A() Dim Sq as Single: Dim LL as Single: Dim HH as Single LL=12: HH=23: SqarPr L:=(LL), H:=(HH), S:=Sq End Sub Если хотим передать массив по ссылке (чтобы под него один раз выделялось место, а не в каждой процедуре), то перед именем массива в заголовке процедуры пишем не ByVal, а ByRef. В этом случае изменение значений элементов массива в вызванной процедуре, приведет к изменению их значений и в вызывающей процедуре. Это экономит оперативную память. 8.10.4 Операторы управления К операторам управления относятся 2 типа операторов: 1. перехода и выбора (Goto, If – Then – Else и Select Case); 2. повтора (For – Next, For Each, Do – Loop, While – Wend). Оператор перехода имеет вид: Goto метка, где метка – это цифровая комбинация, стоящая ещё и перед оператором, на который нужно перейти. В современных программах его стараются не использовать. Условный оператор If относится к операторам выбора. У него несколько конструкций. Он может быть в виде простой или блочной структуры. 1. If условие Then [инструкция] [Else инструкция Else] – простая структура If (в [] заключена необязательная часть оператора). Примеры: А) If Сумма > 1000 then Скидка = 0.05 Else Скидка = 0 Б) If Сумма > 1000 then Скидка = 0.05 2. If Условие then [инструкция ] [Else (инструкция Else) End if] Примеры: А) If Сумма> 1000 then Скидка = 0.05 Else скидка = 0 End If Б) If сумма >1000 then Скидка = 0.05 End If 3. If условие1 then [блок инструкций 1] ElseIf Условие2 then [блок инструкций 2] – блочная структура If Else [блок инструкций Else] End If Блок - это последовательность операторов одной строки, разделенная “двоеточием”. Пример. Определение, какому интервалу принадлежит число: X= InputBox (“Введите число”) If X >0 and X<=1 then MsgBox “Число из интервала [0,1]” ElseIf X >1 And X< =2 then MsgBox “Число из интервала (1,2]” Else MsgBox “Число либо отрицательное, либо>2”: End If Разновидность простого оператора имеет вид: If <выражение> Then <оператор> Если условие истинно в любой конструкции оператора, то выполняется простой или составной оператор, следующий за Then. Рассмотрим пример. Пример: If AvgPrice>12000 Then DiffPrice = Full(234, 45600) ElseIf AvgPrice>24000 Then DiffPrice = Full(12000, 45000) ElseIf AvgPrice>36000 Then DiffPrice = Full(24000, 50000) Else DiffPrice = Full(36000, 70000 End If Оператор выборки Select Case также относится к операторам перехода. Он используется реже оператора If. Он имеет вид: Select Case <величина> Case <сравнение 1> <блок операторов 1> Case <сравнение 2> <блок операторов 2> Case Else <блок операторов Else> End Select Пример: Select Case Demse Case Demse 21 Dem=21 Case Demse 22;25;28 Dem=31 Case Demse 45 To 48 Dem=41 Case Else Dem=51 End Select Есть ещё функции выбора, которые возвращают одну из альтернатив: 1. IIf (Expr, Truepart, FalsePart) Expr – проверяемое выражение. Truepart – значение или выражение, возвращаемое, если Expr – истина. FalsePart - значение или выражение, возвращаемое, если Expr – ложь. 2. Choose (index, chooce1[,chooce2…] возвращает значение, выбранное из списка параметров index, лежит в интервале [1 … число элементов в списке]. 3. Switch (Expr1, value1, Expr2, value2…) expr – выражение типа variant. value – возвращаемое значение, если соответствующее expr – истина. Пример 2: Число = InputBox(«Введите целое число») Select Case Число Case 1: MsgBox “Число равно 1” Case 2, 3: MsgBox “Число равно 2 или 3” Case 4 to 6: MsgBox “Число от 4 до 6” Case Is>=7: MsgBox “Число не менее 7” End Select Идентификация нажатой клавиши. Private Sub UserForm_KeyDown (byval keykode As MsForm. _ ReturnInteger, byval Shift As Integer)
Дата добавления: 2014-01-06; Просмотров: 213; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |