ПИШЕМ ПОЛЬЗОВАТЕЛЬСКУЮ ФУНКЦИЮ

 

Пример №1

Function СВЕТОФОР(время)
1 If время <= 3 Then цвет = "ЗЕЛЕНЫЙ": GoTo vi
If время <= 5 Then цвет = "КРАСНЫЙ": GoTo vi
2 время = время - 5
If время <= 5 Then
GoTo 1
Else
GoTo 2
End If
vi: СВЕТОФОР = цвет
End Function

Пример №2

Function СВЕТОФОР(время)
1 If время <= 3 Then СВЕТОФОР = "ЗЕЛЕНЫЙ": GoTo vi
If время <= 5 Then СВЕТОФОР = "КРАСНЫЙ": GoTo vi
2 время = время - 5
If время <= 5 Then
GoTo 1
Else
GoTo 2
End If
vi: End Function

Пример №3

Function СВЕТОФОР(время)
1 If время <=5 Then
If время <= 3 Then СВЕТОФОР = "ЗЕЛЕНЫЙ"
If время <= 5 Then СВЕТОФОР = "КРАСНЫЙ"
else
время = время-5
goto 1
end if
End Function

Пример №4

Function СВЕТОФОР(время)
If время > 5 Then время = время Mod 5
If время <= 5 Then СВЕТОФОР = "КРАСНЫЙ"
If время <= 3 Then СВЕТОФОР = "ЗЕЛЕНЫЙ"
End Function

Пример №5

Function СВЕТОФОР(время)
If время > 5 Then время = время Mod 5
If время <= 3 Then СВЕТОФОР = "ЗЕЛЕНЫЙ" else СВЕТОФОР = "КРАСНЫЙ"
End Function

продолжение :

ПИШЕМ СВОЮ
ПЕРВУЮ ФУНКЦИЮ

Откройте редактор VBA и создайте модуль так же, как ранее создавали форму, только на сей раз щелкните не по самой кнопке, создающей форму, а по треугольнику, находящемуся справа. После создания нового модуля войдите в него, произведя двойной щелчок левой кнопкой мыши.


Для начала попробуем решить поставленную задачу про светофор в лоб и напишем код, похожий на пример №1.


Проанализировав наш черновой вариант, придем к выводу, что переменная ЦВЕТ - является как бы посредником. А есть ли смысл держать посредника? Конечно нет, следовательно, избавимся от нее и получаем что-то вроде примера 2. Поздравляю, вот мы и оптимизировали программу. Но спустя некоторое время, нам захочется что - нибудь удалить еще, и это будет абсолютно нормально.


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

Покапавшись в справочной системе, мы найдем оператор MOD, позволяющий найти остаток от деления любого числа на другое и, воспользовавшись этой находкой, мы напишем нечто похожее на пример №4


Уверен, что спустя некоторое время вам покажется и этот макрос несколько тяжеловат и подумав, вы сократите его еще на одну строку, и он станет соответствовать примеру №5

Рейтинг@Mail.ru
 главная с чего начать готовые программы задачи с решениями карта
Copyright © СОМИТ, А.Козлов, 2005 г