Выполнение проектов и их результаты.
По умолчанию компилятор VB.NET устанавливает режим явного объявления переменных. Таким образом, в программе непременно должен присутствовать оператор описания переменных Dim.
Ниже приведены описания всех трех режимов:
Option Explicit. Если задан режим Option Explicit, то каждая переменная в проекте должна быть объявлена. Эта установка не будет играть роли при использовании режима Option Strict, поскольку компилятор не сможет определить тип необъявленной переменной. Однако режим Option Explicitникогда не следует отключать.
Option Strict. При включенном режиме Option Strict On компилятор должен иметь возможность определить тип каждой переменной. Кроме того, если одной переменной присваивается значение другой и при этом необходимо преобразование типов (например, от Integer к Boolean), такое преобразование должно быть явным.
Option Compare. Данный режим определяет, будут ли сравниваться строки как наборы двоичных чисел (Binary) или как массивы символов в текстовом формате (Text).
Выполните первый проект с помощью отладчика по шагам. Поставьте точку останова после ввода исходных данных (x и y) в текстовые поля на операторе, вычисляющем арифметическое выражение (z = …).
Для этого следует подвести курсор к этому оператору и нажать клавишу <F9> клавиатуры, в результате чего строка оператора выделяется красным цветом. Теперь после ввода исходных данных в текстовые поля и нажатия на кнопку Вычислить выполнение программы прерывается перед вычислением выражения. Открывается окно редактора кода и под ним окно Видимые, в котором отображаются значения всех объектов, использующихся в данном программном коде. Для выполнения следующего оператора нужно нажать клавишу <F10>, в результате чего
в окне изменяется значение переменной z, которая выделяется красным цветом. Нажимая клавишу <F10>, происходит пошаговое выполнение программы. Проследите изменение значений всех переменных.
Чтобы стереть точку останова для последующих запусков программы, выполните команду Удалить все точки останова элемента основного меню Отладка или щёлкните мышью на красном кружке (точке останова) слева от оператора, на котором прерывается программа.
Посмотрите, какие изменения произойдут в программе при включенном режиме Option Strict(второй проект). Выставите его в положение On и запустите программу на выполнение.
Теперь проект перестал правильно работать, красным цветом выделены отдельные строки (рис. 4.2.8-6).
Рис. 4.2.8-6. ОкноРедактора программного кода и окно Видимые
Рис. 4.2.8-7. Окно VS, показывающее на ошибки
в программном коде и пути их исправления
Подведя указатель мыши на строку x=TextBox1.Text, можно прочитать, что Оператор Option Strict On не позволяет выполнять неявные преобразованияиз типа Stringв Double. Действительно, текстовое окно изначально служит для ввода текста, а мы пытаемся ввести число вещественного типа в переменную х типа Double. Это несоответствие вызывает появление ошибки. Другие несоответствия можно посмотреть самостоятельно, подводя указатель мыши на красные прямоугольники строк.
Интеллектуальная среда сама показывает, какие изменения следует сделать в строке программного кода, для этого щелкните на красном крестике в конце строки, где произошла ошибка (рис. П.1.2-7).
Option Strict On Imports System.Math'подключение математического модуля Public Class Form1 Private Sub Button1_Click(sender As Object, _ e As EventArgs) Handles Button1.Click Dim х, y, z, m, n As Double, p As Single, k As Integer Dim s1, s2 As String х = CDbl(TextBox1.Text)'преобразование типа String в Double y = CDbl(TextBox4.2.Text) z = (0.002 - Exp(х ^ y)) / ((100 - y) * (х + 2)) p = CSng(z)'преобразование типа Double в тип Single k = CInt(z)'преобразование типа Double в тип Integer m = Fix(z) : n = Int(z) s1 = CStr(z) : s2 = CStr(p) 'преобразование числовых типов в String TextBox3.Text = CStr(z) : TextBox4.Text = CStr(k) TextBox5.Text = CStr(m) : TextBox6.Text = CStr(n) TextBox7.Text = CStr(p) TextBox8.Text = CStr(z + p)'сложение чисел TextBox9.Text = s1 + s2 'сложение строк End Sub Private Sub Button2_Click(sender As Object, _ e As EventArgs) Handles Button4.2.Click End End Sub EndClass |
Рис. 4.2.8-8. Исправленный программный код Проект 2.1
Действительно, данные, введенные в текстовое поле, являются строкой, а не числом, поэтому для корректных вычислений необходимо использовать явное преобразование текстового аргумента в числовое значение с помощью CDbl(). Функция CStr() выполняет обратное преобразование числового значения в строковый тип. Для получения результата целого типа (переменной k) из вещественной переменной z используется функция CInt(), которая преобразует значение этой переменной в целое число, округляя его по правилам математики. Обратите внимание, что режим Option Strict On можно включить вручную, указав данную строку в начале программного кода.
Окончательный код программы приведен на рис. П.1.2-8
Выполните второй проект.
Для этого второй проект с именем Проект 2.2 надо назначить запускаемым проектом. Выделите в окне Обозреватель решений имя проекта Проект 2.2 и, нажав правую кнопку мыши, выберете пункт Назначить запускаемым проектом.