Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»
PORTOS
Print "А ты что отмалчиваешься, усатый?"
DARTANIAN
Print "Анна! Иди-ка сюда!!!"
Exit Sub
Print "Аудиенция закончена, прощайте!"
End Sub
Private Sub ATOS()
Print "Я — Atoc"
End Sub
Private Sub ARAMIS()
Print "Это так же верно, как то, что я — Арамис!"
End Sub
Private Sub PORTOS()
Print "А я Портос! Я правильно говорю, Арамис?"
ARAMIS
Print "Он не врет, ваше величество! Я Портос, а он Арамис."
End Sub
Private Sub DARTANIAN()
Print "А я все думаю, ваше величество — куда девались подвески королевы?"
Exit Sub
Print "Интересно, что ответит король?"
PORTOS
End Sub
Сверьте с ответом. Если не сходится, запустите программу в пошаговом режиме.
Теперь вы достаточно знаете о процедурах, чтобы они стали для вас удобными кирпичиками для постройки программ. Более мощным средством являются процедуры с параметрами, о которых вы сейчас узнаете.
Задание 88: В программе для задания 60 из 0 о продавце автомобилей есть два повторяющихся фрагмента. Сам бог велел сделать их процедурами.
Задание 89: Аналогичную вещь можно проделать для калькулятора
Переменные вместо чисел
Наша цель — процедуры с параметрами. Данный раздел — подготовка к взятию этой крепости.
Вернемся к задаче из о фотоальбоме со значками. Вспомним, что мы написали процедуру пользователя для рисования значка. Вот она:
Private Sub Рисуем_мой_значок()
Picture1.Line (100, 100)-(300, 300), vbBlue, В
Picture1.Line (100, 100)-(300, 300), vbBlue
Picture1.Line (100, 300)-(300, 100), vbBlue
End Sub
Значок рисуется в левом верхнем углу фото с отступом в 100 твипов как от левого края фото, так и от верхнего. Предположим, вам разонравился такой отступ и вы решили сделать его поменьше, скажем, 50. Вам нужно в программе в 6 местах поменять число 100 на 50. Вот то-то и неудобно, что в 6, а не в одном. Слишком много труда. В нашей программе это, конечно, пустяк, а вот в больших и сложных программах одна и та же величина может встречаться сотни раз, и чтобы ее изменить, придется вносить сотни исправлений.
Посмотрим, как нам помогут переменные величины. Придумаем переменную величину с именем Otstup. Теперь напишем вариант той же процедуры, но с использованием переменной величины:
Dim Otstup As Integer
Private Sub Рисуем_мой_значок()
Otstup = 100
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue, В
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue
Picture1.Line (Otstup, 300)-(300, Otstup), vbBlue
End Sub
Теперь для того, чтобы изменить отступ, достаточно заменить число только в одном месте.
Вторая причина, по которой мы используем переменные, та, что с ними программа становится понятнее, так как имена переменным мы придумываем, исходя из их смысла.
Будем дальше улучшать нашу процедуру. Теперь вы легко можете управлять отступом, но вот беда — правый нижний угол значка остается всегда в одном и том же месте и поэтому размер значка уменьшается с увеличением отступа, а при отступе = 300 значок вообще превращается в точку. Вам хочется так же легко и удобно управлять размером значка, как и отступом. Вы замечаете, что размер квадратного значка равен разнице координат в скобках операторов Line. Вы придумываете переменную с именем Razmer и переписываете программу:
Dim Otstup As Integer
Dim Razmer As Integer
Private Sub Рисуем_мой_значок()
Otstup = 100 Razmer = 200
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), vbBlue, В
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), vbBlue
Picture1.Line (Otstup, Otstup + Razmer)-(Otstup + Razmer, Otstup), vbBlue
End Sub
Последнее, что вам хочется, это управлять цветом. Нет проблем:
Dim Otstup As Integer
Dim Razmer As Integer
Dim Tsvet As Long
Private Sub Рисуем_мой_значок()
Otstup = 100 Razmer = 200 Tsvet = vbBlue
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), Tsvet, В
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), Tsvet
Picture1.Line (Otstup, Otstup + Razmer)-(Otstup + Razmer, Otstup), Tsvet
End Sub
Заметьте, что Tsvet я объявил, как Long, а то 16 миллионов в Integer не уместятся.
Задание 90: Помогите вашему другу менять при помощи переменных отступ, размер и цвет его значка.
Константы
Константами называются те конкретные значения величин, которые мы видим в программе. Например, во фрагменте
а = 1 + 0.25
b = "Амазонка"
Debug.Print "Волга", 10
Form1.BackColor = 15767511
If а > 3 Then Cls
константы это 1 0.25 "Амазонка" "Волга" 10 15767511 3.
Если какая-нибудь константа встречается в программе несколько раз, то удобно, как я уже говорил в предыдущем разделе, придумать ей имя и обозначать этим именем.
Вернемся к примеру из предыдущего раздела. Там мы объявили переменную Otstup и везде в процедуре стали писать вместо константы 100 имя этой переменной. Программист имеет право вместо оператора объявления
Dim Otstup As Integer
написать другой оператор объявления:
Const Otstup = 100
Тогда процедура изменит свой вид:
Const Otstup = 100
Private Sub Рисуем_мой_значок()
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue, В
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue
Picture1.Line (Otstup, 300)-(300, Otstup), vbBlue
End Sub
В чем разница? В первом случае величина Otstup — переменная величина. Во втором случае величина Otstup объявлена константой, а это значит, что ей запрещено менять свое значение 100, присвоенное ей при объявлении. При попытке изменить значение константы Visual Basic выдаст сообщение об ошибке. Например, ошибкой завершится выполнение такой программы:
Const а = 5
Private Sub Command3_Click()
а = а + 2
End Sub
Хорошо это или плохо? Это плохо там, где величина по смыслу задачи должна менять свое значение, и хорошо там, где не должна. Например, если в программе
Const Пи = 3.14
Private Sub Command4_Click()
r = 50
Длина_окружн = 2 * Пи * r
Площадь_круга = Пи * r л 2
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория», относящееся к жанру Газеты и журналы / Периодические издания / Сделай сам / Хобби и ремесла. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


