Еще о пользе переменных
Переменные быстры. Значения переменных величин не обязаны, подобно тексту элементов управления, отображаться «на медлительной поверхности проекта». Они спрятаны глубоко в сверхбыстрой оперативной памяти компьютера, там над ними удобно проводить вычисления и разнообразные логические преобразования. Фактически вся мыслительная работа компьютера проводится над переменными величинами. И лишь иногда, когда человеку понадобится, они показываются «на поверхности» в виде содержимого текстовых полей или как-нибудь еще.
Создавая калькулятор, мы не ведали ни о каких переменных, поэтому вместо изящного
Рез = Чис1 + Чис2
писали громоздкое
Результат.Text = Val(Число1.Text) + Val(Число2.Text)
Вообще, попытки использовать для вычислений вместо переменных текстовые поля напоминает попытку неуклюжих королей-тугодумов (текстовых полей) из разных государств договориться между собой. После безуспешных попыток они вызывают своих шустрых министров иностранных дел (переменные величины), которые в два счета договариваются и отдают готовый договор на подпись королям (имеется в виду, что результат вычислений показывается в текстовом поле).
Улучшаем калькулятор. С учетом сказанного попробуем улучшить программу калькулятора:
Public Class Form1
Inherits System.Windows.Forms.Form
Windows Form Designer generated code
Dim Чис1 As Double 'Переменная, содержащая число из текстового поля Число1
Dim Чис2 As Double 'Переменная, содержащая число из текстового поля Число2
Dim Рез As Double 'Переменная-результат, предназначенный для текстового поля Результат
Private Sub Кл_сложения_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Кл_сложения.Click
Чис1 = Число1.Text 'Значения исходных данных переходят из текстовых полей в переменные
Чис2 = Число2.Text
Рез = Чис1 + Чис2 'Обработка переменных для получения результата
Результат.Text = Рез 'Значение результата переходит из переменной в текстовое поле
End Sub
Private Sub Кл_вычитания_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Кл_вычитания.Click
Чис1 = Число1.Text
Чис2 = Число2.Text
Рез = Чис1 - Чис2
Результат.Text = Рез
End Sub
Здесь не показаны процедуры умножения и деления, так как они совершенно аналогичны процедурам сложения и вычитания. Переменные Чис1, Чис2 и Рез встречаются в каждой процедуре, поэтому в данном случае удобно объявлять их не в каждой процедуре, а один раз – вне процедур. Теперь каждая процедура может этими переменными пользоваться. Переменными же, объявленными внутри процедуры, может пользоваться только процедура, в которой они объявлены, а другие не могут. Традиционно объявления таких «общих» переменных делаются перед текстом всех процедур, как это сделал я.
Остальное ясно из комментариев к тексту программы. Нельзя сказать, что программа стала короче, мы пока не умеем писать короткие программы. Зато мы получили возможность спокойно работать с переменными, а эта возможность нам понадобится в будущем, когда мы будем бороться с вводом в текстовые поля нечисловой информации.
Эта схема, когда информация из текстовых полей (или других средств задания исходных данных) передается в переменные, затем обрабатывается, а уж затем из переменных передается обратно – в текстовые поля – весьма разумна и я рекомендую ей пользоваться.
Три совета. Дорогие читатели-новички! Вот вам три моих совета, по своей силе приближающихся к непререкаемым приказам:
1. Программы, которые вы видите в книге, вам необходимо вводить в компьютер и выполнять их, даже если они кажутся вам понятными, и даже если я явно этого не требую. В ряде случаев вы получите неожиданные результаты, из чего сделаете вывод, что программы эти вы поняли не до конца и «как хорошо, что я не поленился их проверить».
2. В каждой из этих программ экспериментируйте, то есть разными способами изменяйте в них то, что я как раз в этот момент объясняю. Например, если я объясняю оператор For i=1 To 5, пробуйте For i=1 To 10 и смотрите, что будет.
3. Выполняйте и сверяйте с ответом все задания. Это, конечно, главный совет из трех. Учтите, что сверенная с ответом правильно работающая программа – ваша победа, сверенная с ответом неправильно работающая программа – временное поражение, отказ от сверки – разгром.
Если вы пожалеете времени и пренебрежете этими советами, то через несколько страниц можете обнаружить трудности в понимании материала и вскоре не сможете правильно составить большинство программ.