Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
07.06.2015
Размер:
2.04 Mб
Скачать

3.2.2. Константы

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

СоnsТ ИмяКонстанты [АS Тип] = ЗначениеКонстанты

ИмяКонстанты и ЗначениеКонстанты задаются так же, как имя и значение переменной. Тип задавать не обязательно (по умолчанию будет задан тип Variant).

Кроме объявляемых констант, в программе на языке Visuа1 Ваsiс могут использоваться системные, встроенные константы, например, значение цвета: vbRed - значение красного цвета, vbWhite - значение белого цвета и т.д. Имена системных констант - ключевые слова Visuа1 Ваsiс.

Пример 3.5

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

Код 3.1

Dim R As Single, S As SingleОбъявление переменных.

Соnst Pi = 3.1416 ‘Объявление константы - числа «пи».

Let R = 10 ‘Присвоение значения переменной К.

R = 2*R ‘Присвоение значения переменной К.

S = Pi*R^2 Вычисление площади круга.

Напомним, что ключевое слово Let является необязательным и может быть опущено. Здесь мы оставили его только в одном из четырёх операторов присваивания.

Обратите внимание и на то, что в данной программе присутствуют комментарии — произвольные строки, находящиеся правее символа ‘ — апострофа. Они никак не влияют на ход выполнения программы (полностью игнорируются в процессе её выполнения) и нужны только для того, чтобы человеку, читающему программу, было легче в ней разобраться. При записи программы в Окно программного кода системы Visuа1 Ваsiс комментарии автоматически выделяются особым (зелёным) цветом.

Нетрудно догадаться, что с помощью этой программы мы вычисляем площади двух кругов с радиусами 10 и 20 единиц (8 - площадь, Рi - число , R - радиус круга).

После выполнения первого оператора присваивания переменная R получает значение 10, после второго переменная S получает значение 314.16, после третьего переменная R получает значение 20, после четвёртого переменная S получает значение 1256.64.

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

3.3. Оператор присваивания

Для присвоения переменной некоторого значения используется оператор присваивания.

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

Понятие оператора является одним из основных в языках программирования операторного типа. (Следует заметить, что далеко не все языки программирования относятся к этому типу: примером могут служить неоператорные языки Лисп и Пролог.)

Операторы - это «кирпичи», из которых строится программа. А программа, как мы уже знаем, представляет собой описание алгоритма решения задачи, которое должно быть воспринято исполнителем этого алгоритма. Алгоритм состоит из отдельных, иногда простых, а иногда и не очень простых, действий - предписаний. Программа пишется на определённом языке программирования в соответствии со строгими синтаксическими правилами этого языка.

Оператор - это такая синтаксическая единица языка программирования, которая используется в программе для выполнения отдельного предписания.

Операторы делятся на две категории; к первой относятся алгоритмические операторы, ко второй - функциональные.

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

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

Любая программа состоит из последовательности операторов, которые записываются в соответствии со строгими синтаксическими правилами (как предложения в русском, английском или любом другом, человеческом языке).

Оператор присваивания - один из первых операторов, которые нам предстоит рассмотреть.

Синтаксическое правило (или просто синтаксис) для этого оператора выглядит так:

[Let] ИмяПеременной = ЗначениеПеремеиной

Напомним, что прямоугольными скобками в правилах синтаксиса мы обрамляем такие конструкции, которые могут отсутствовать. (В подавляющем большинстве случаев ключевое слово Let перед именем переменной в операторе присваивания не используется.)

Полужирным шрифтом в правилах синтаксиса мы будем выделять ключевые слова, в частности, имена операторов. Первая буква ключевого слова — прописная, остальные - строчные.

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

Конструкция ИмяПеременной, находящаяся слева от знака равенства, - это имя переменной, которой присваивается значение.

Конструкция ЗначениеПеременной справа от знака равенства - это либо то, что находится в диапазоне возможных значений для данного типа переменной, либо выражение, значение которого должно быть вычислено. И в том и в другом случае это значение присваивается нашей переменной.

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

Следующие два примера - это маленькие фрагменты настоящего программного кода, работу которого можно проверить в среде программирования Visual Basic.

Пример 3.6

Следующие операторы присваивания являются правильными и будут выполнены:

Код 3.2

Dim Var1 Аs Integer, Var2 Аs Long

Dim Var3 As Single, Var4 Аs Double

Var1 = 32000

Var2 = -2000000000

Var3= 9Е-30

Var4 = Var3

Пример 3.7

Первый из следующих операторов присваивания будет выполнен, а три последующих выполнены не будут, так как все три значения выходят за допустимый диапазон:

Код 3.3

Dim Var1 As Integer, Var2 Аs Long

Dim Var3 Аs Single, Var4 Аs Double

Var4= 9Е-300

Var1 = 33000

Var2 = -3000000000

Var3 = Var4

Между прочим, Visual Basic позволяет делать запись программного кода более компактной, например, записывая несколько операторов на одной строке. В этом случае между операторами должен стоять знак: (двоеточие). Его называют разделителем. Рассмотрим, например, вышеприведённый код 3.3. Число его строк можно довести до двух: во-первых, можно объединить первые две строки в одну (использовать не два, а один оператор Dim), а во-вторых, записать последние четыре оператора на одной строке, используя двоеточие:

Код 3.4

Dim Var1 As Integer, Var2 Аs Long, Var3 Аs Single, Var4 Аs Double

Var4 = 9Е-300: Var1 = 33000: Vаг2 = -3000000000: VarЗ = Var4

Иногда возникает и обратная задача - разделение одной строки на части (перенос записи одного оператора на новую строку, если эта запись кажется пользователю слишком длинной). В этом случае используется символ переноса (знак _ - подчёркивания), который ставится после пробела. Например, код 3.3 может быть записан не в две, а в три строки:

Код 3.5

Dim Var1 As Integer, Var2 Аs Long, Var3 Аs Single, _

Var4 Аs Double

Var4 = 9Е-300: Var1 = 33000: Var2= -3000000000: Var3 = Var4

Пример 3.8

Построим следующее Windows-приложение. На его экранной форме два текстовых поля – слева и справа, а также две командные кнопки с надписями ПУСК1 и ПУСК2. На левом текстовом поле (объекте с именем Техt1) – строка из букв чёрного цвета на белом фоне; на правом текстовом поле (объекте с именем Техt2) – строка из букв белого цвета на чёрном фоне (рис. 3.2).

Рис. 3.2. Окно приложения, демонстрирующего обмен содержимым

текстовых полей, до щелчка кнопки ПУСК1

Щелчок кнопки ПУСК1 должен «привести в порядок» содержимое полей - перенести левую строку направо, а правую – налево. Цвет букв и цвет фона каждого поля при этом меняться не должны, экранная форма должна пробрести вид, показанный на рис. 3.3.

Рис. 3.3. Окно приложения, демонстрирующего обмен содержимым

текстовых полей, после щелчка кнопки ПУСК1

Если же вы хотите, чтобы при обмене содержимым текстовых полей менялись бы и их цвета (как букв, так и фона), вы должны щёлкнуть не кнопку ПУСК1, а кнопку ПУСК2. Экранная форма при этом должна приобрести вид, показанный на рис. 3.4.

Рис. 3.4. Окно приложения, демонстрирующего обмен содержимым

текстовых полей, после щелчка кнопки ПУСК2

При разработке интерфейса для данного приложения нам понадобятся следующие свойства двух объектов класса Текстовое поле:

– несколько свойств, относящихся к положению и размерам этих объектов;

– свойство Техtего значением являются строки символов, которые содержатся в текстовых полях;

  • свойство Font - его значением являются такие характеристики строк, содержащихся в текстовых полях, как тип, размер и начертание шрифта;

  • два свойства, относящиеся к цвету: ForeСо1оr (Цвет символов) и ВасkСо1оr (Цвет фона).

Установим значения этих свойств (а также свойств самой экранной формы и командных кнопок) так, как это рекомендовалось делать в предыдущей главе.

После разработки интерфейса приступим к программированию.

Решим сначала первую задачу - составим алгоритм и напишем программу для первого из двух событий - щелчка кнопки ПУСК1.

Возможно следующее решение (алгоритм).

Определим две переменные типа String. Назовём их Строка1 и Строка2. После щелчка командной кнопки этим переменным будут присвоены значения: содержимое текстовых полей с именами Техt1 и Техt2. После чего значению свойства поля Техt1 будет присвоено значение переменной Строка2, а значению свойства поля Техt2 - значение переменной Строка1. Код 3.6 - это программа, описывающая данный алгоритм.

Код 3.6

Private Sub ПУСК1_Click()

Dim Строка1 Аs String, Строка2 Аs String

Строка 1 =Техт1.Техt

Строка2 = Техт2.Техt

Техт1.Техt = Строка2

Техт2.Тех = Строка 1

End Sub

Является ли эта программа идеальной? Другими словами, можно ли сделать её лучше? Оказывается, что можно. Действительно, то, что казалось очевидным - использование двух переменных (Строка1 и Строка2), является избыточным: можно обойтись всего одной! Код 3.7 демонстрирует это.

Код 3.7

Private Sub ПУСК1_Сlick()

Dim Строка Аs String

Строка = Техт1.Техt

Техt1.Техt = Техt2.Техt

Техt2.Техt = Строка

End Sub

Вы, без сомнения, легко поймете сами, что по своему действию программа кода 3.6 ничем не отличается от программы кода 3.5.

Теперь решим вторую задачу - составим алгоритм и напишем программу для второго из двух событий - щелчка кнопки ПУСК2.

Мы предлагаем такое решение (алгоритм).

Определим три переменные: одну типа String и две типа Long. Назовём их Строка, ЦветФона и ЦветБукв. После щелчка командной кнопки этим переменным будут присвоены значения трёх свойств одного текстового поля с именем Техt1: Техt, ВасkСо1оr и ForеСо1оr. Затем будет происходить обмен значений этих свойств двух текстовых полей с помощью вышеуказанных переменных подобно тому, как это происходило при решении первой задачи (для кнопки ПУСК1). Код 3.8 - это программа, описывающая данный алгоритм.

Код 3.8.

Private Sub ПУСК2_Сlick()

Dim Строка Аs String, ЦветФона As Long, ЦветБукв As Long

Строка = Техт1.Техt

ЦветФона = Техт1 .ВасkСо1оr

ЦветБукв = Техт1 .ForеСо1оr

Техt1.Техt = Техт2.Техt

Техт1.ВасkСо1оr = Техт2.ВасkСо1оr

Техт1 .ForеСо1оr = Техт2.ForеСо1оr

Техт2.Техt = Строка

Техт2.ВасkСо1оr= ЦветФона

Техт2.ForeСо1оr= ЦветБукв

End Sub

Соседние файлы в папке Задания и примеры