Написание программного кода
Теперь можно написать программный код для проекта Проект-4-1-Лаб. Так как большинство созданных ранее объектов уже «знают», как им надо работать, при запуске программы они будут готовы к приему ввода от пользователя и его обработке. Встроенная функциональность объектов является одной из самых сильных сторон VSи VB– после того, как объекты будут размещены на форме и их свойства будут установлены, они готовы к запуску без дополнительного программирования (визуальное программирование).
Так как программой управляют кнопки Вычислить и Завершить, программный код нашего проекта должен быть связан именно с этими кнопками. Для ввода и редактирования операторов программы на VBпредназначено окно Редактор программного кода (Code Editor).
1. Дописать код программы для обработки событий нажатия кнопки Button1и кнопки Button2, используя окно Редактор кода (Code Editor).
Внутри окна Редактора кода (Code Editor) находятся строки кода, связанного с текущей формой. Операторы программы, которые используются совместно для выполнения некоторого действия, обычно группируются в программные конструкции, называемые процедурами. Обычным типом процедуры является процедура Sub, называемая процедурой-подпрограммой. Процедуры Sub в первой строке содержат ключевое слово Sub и заканчиваются оператором End Sub. Обычно процедуры выполняются при определенных обстоятельствах, например, таких, как щелчок на кнопке или вызовом специального оператора. Когда процедура ассоциирована с конкретным объектом и событием, она называется событийной процедурой.
При двойном щелчке мышью на кнопке ЗАВЕРШИТЬ VB автоматически добавляет первую и последнюю строки процедуры события Button2_Click( ). Обратите внимание, что первая строка перенесена на следующую строку, чтобы не вылезти за поля.
Тело процедуры, которое находится между заголовком процедуры и оператором, завершающим процедуру – Sub…End Sub, будет исполняться каждый раз, когда пользователь активизирует элемент интерфейса, ассоциированный с этой процедурой. В данном случае событие - это щелчок мышью на кнопке Button2, но как будет показано далее, это может быть и другой тип события.
Между заголовком и концом процедуры ввести оператор End, а затем нажать на клавишу со стрелкой вниз.
После ввода оператора буквы становятся синими и создаются отступы, что указывает, что VB распознал End как одно из нескольких сотен зарезервированных - или ключевых слов языка VB. Ключевое слово End используется для остановки программы и удаления с экрана ее формы. В данном случае End также является законченным оператором программы, то есть инструкцией, исполняемой компилятором VB. Напомним, что компилятор – это часть VS, обрабатывающая и выполняющая анализ каждой строки исходного кода VB, и объединяющая результаты с другими ресурсами с целью создания исполняемого файла. Все операторы программы должны следовать грамматическим правилам компилятора. В VS операторы программ могут состоять из ключевых слов, свойств, имен объектов, переменных, чисел, специальных символов и других значений. При вводе операторов программы и внесении других изменений, окно Редактор кода (Code Editor) выполняет многие задачи, связанные с форматированием, включая настройку отступов, пробелов и добавление необходимых скобок. Точное написание, оператора программы называется синтаксисом оператора.
При нажатии на клавишу «стрелка вниз» оператор End был сдвинут вправо так, чтобы он был отделен от операторов Private Sub и End Sub. Эта схема форматирования является одним из соглашений программирования и предназначена для того, чтобы программы выглядели ясно и читаемо. Соглашения относительно того, как организуется код в программе, часто называется стилем программирования.
Теперь, когда написан код, связанный с кнопкой Завершить, необходимо написать код для кнопки Вычислить.
2. Написать программный код, который будет выполняться при нажатии кнопки ВЫЧИСЛИТЬ, то есть событийную процедуру для кнопкиButton1.
Чтобы отобразить форму, щелкнуть в окне Обозреватель решений (Solution Explorer) на кнопке Конструктор (View Designer). В режиме Редактор программного кода (Code Editor) форма, с которой производится работа, не отображается. Кнопка Конструктор (View Designer) является одним из тех механизмов, которые используются для того, чтобы снова вывести форму на экран. Также можно щелкнуть на вкладке Form1.vb [Design].
Дважды щелкнуть мышью на кнопке ВЫЧИСЛИТЬ.
Через некоторое время появится окно Редактор кода (Code Editor), и рядом с процедурой события, связанной с кнопкой Button2, появится процедура события, ассоциированная с кнопкой Button1.
Хотя текст этой кнопки был изменен на «ВЫЧИСЛИТЬ», ее имя в программе осталось Button1. (Имя и текст элемента интерфейса могут быть различными для удобства программирования.) Каждый объект может иметь несколько связанных с ним процедур - по одной для каждого распознаваемого события.
Между операторами Private Sub Button1_Click( ) и End Sub необходимо ввести строки программы, показанные на рис. 4.1-25.
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim A As Single, B As Single, C As Single Dim P As Single, Pp As Single, S As Single B = TextBox2.Text 'Присваивание переменной В значения поля TextBox2 A = TextBox1.Text 'Присваивание переменной А значения поля TextBox1 C = TextBox3.Text 'Присваивание переменной С значения поля TextBox3 P = (A + B + C) 'Вычисление периметра и присваивание значения Р Pp = P / 2 'Вычисление полуперим. и присваивание значения Рр S = Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C)) 'Вычисление площади и присваивание значения переменной S TextBox4.Text = CStr(P) 'Вывод значения полупериметра в текстовое поле TextBox4 TextBox5.Text = CStr(S) 'Вывод значения площади в текстовое поле TextBox5. End Sub |
Рис. 4.1-25
После ввода каждой строки необходимо нажать <Enter>,а для создания отступа необходимо нажать на <ТаЬ> и следить за вводом операторов программы в точности так, как они напечатаны на рис. 4.1-25. (При вводе длинных строк Редактор кода (Code Editor) будет прокручивать экран влево.) Если будет сделана ошибка, которая обычно определяется по подчеркиванию волнистой линией, удалите неверную строку и введите ее снова.
При вводе кода программы VB форматирует ее текст и отображает различные части программы различными цветами, которые помогают распознавать различные элементы. В момент ввода свойства отображается список, содержащий все допустимые свойства объекта, так что вместо набора свойства вручную можно дважды щелкнуть на свойстве мышью. Если VB отображает сообщение об ошибке, то оператор, скорее всего, введен с ошибкой. Сверьте строку с текстом в книге, сделайте необходимые исправления и продолжайте набирать. Также можете удалить всю строку и начать вводить ее заново. Кроме того, VB может автоматически добавлять необходимый код.
3. Дописать программный код, добавив в него до оператора Public Class Form1 операторы установки параметров VB:
Option Strict On Option Explicit On Imports System.Math |
Окно панели Редактора кода (Code Editor) будет выглядеть так, как показано на рис. 4.1-26.
Рис. 4.1-26
Элементы VB, отображаемые на экране зеленым цветом, называются комментарием. Комментарии - это описательные пояснения, включаемые в программный код после символа апострофа ( ' ). Программисты используют комментарии для описания действия операторов программы. VB при запуске программы не обрабатывает эти пояснения; они существуют только для документирования того, что делает программа. При написании программы часто придется использовать комментарии, чтобы оставить легко воспринимаемые записи о том, что же вы сделали.
4. Сохранить введенный программный код, выполнив команду Сохранить все (Save All) элемента главного меню Файл (File).
Команда Сохранить все (Save All) сохраняет все файлы, входящие в проект – собственно файл проекта, файл формы, все модули кода и все связанные с приложением компоненты. Если это первое сохранение проекта, появится диалоговое окно Сохранить проект (Save Project) запрашивающее имя и место для сохранения проекта. (Если ваша копия VS настроена так, чтобы запрашивать место сохранения проекта при его создании, то сейчас диалогового окна Сохранить проект (Save Project) вы не увидите – VS просто сохранит все изменения.)
Щелкнуть на кнопке Обзор (Browse) справа от текстового поля Местоположение (Location) и выбрать место для сохранения файлов.
Необходимо использовать папку на диске d:\... (место, где находятся файлы лабораторных работ, созданные студентами). Если необходимо сохранить только элемент, с которым в настоящий момент работаете (форму, модуль кода или что-либо еще), то используется команда Сохранить (Save), также находящаяся в меню Файл (File). Если необходимо сохранить текущий элемент с другим именем, то используется команда Сохранить как (Save As).
5. Технология IntelliSense и точечная нотация
Теперь будет известно, как с помощью VB читать и записывать значения свойств форм и элементов управления. Если у каждой формы и элемента управления много свойств, как за ними уследить? Не слишком удобно постоянно переключаться между редактором кода и окном Свойства, чтобы выяснить, какие свойства нам нужны. Имеется более удобный способ.
Можно использовать технологию IntelliSense. Это часть VS. IntelliSense позволяет экономить время при редактировании программного кода в окне редактора. IntelliSense знает, к какому элементу управления вы обращаетесь и какие у него есть свойства; выводит список свойств и позволяет вам выбирать из него нужное. Используемое чаще всего свойство подсвечивается, когда IntelliSense отображает список. Например, для текстового поля изначально подсвечивается свойство Text. С помощью стрелок вверх и вниз на клавиатуре можно просматривать список и выбирать то свойство, которое вам требуется. При нажатии клавиши <Tab> выбранное свойство добавляется в код. Используя IntelliSense, не придется запоминать все свойства всех элементов управления. Кроме того, данное средство заметно сокращает потребность в наборе длинных имен на клавиатуре!
Например, во время ввода с клавиатуры текста программного кода и, в частности, TextBox2, нажмем клавишу «точка». Как только будет введена точка, IntelliSense отобразит список свойств элемента TextBox2. По умолчанию в списке IntelliSense подсвечивается чаще всего используемое свойство (рис. 4.1-27).
Рис. 4.1-27
Если далее будет введена буква, например буква «T», IntelliSense прокрутит список до первого по алфавиту свойства, начинающегося с «T». По мере ввода IntelliSense ищет в списке свойство, наиболее соответствующее введенным буквам.
Когда свойство подсвечивается в списке IntelliSense, рядом появляется подсказка, кратко его описывающая. Эта подсказка, например, может сообщить, что свойство доступно только для чтения (Read Only, т. е. ему нельзя присваивать значение). Кроме того, подсказка сообщает, какие значения можно присваивать свойству, например, строку (текст) или целое число.
6. Отладка и внесение изменений в программу
На этом этапе проверяется правильность работы программы.
Ошибки, возникающие в процессе создания программы, могут быть вызваны и неадекватным моделированием, и некорректностью метода или алгоритма, и, наконец, неправильным применением самих средств программирования.
В целом типы ошибок принято разделять на два неравнозначных класса. Один из них – это класс синтаксических ошибок, то есть ошибок, связанных с неправильной записью или употреблением языковых конструкций. Эти ошибки легко исправимы, так как соответствующее программное обеспечение – транслятор – осуществляет автоматический контроль синтаксической правильности программ пользователя, а с помощью контекстно-зависимой помощи можно получить как разъяснения об ошибке, так и узнать правильный вид языковой конструкции.
Другой вид ошибок, действительно представляющий проблему программирования, – смысловые ошибки. Обнаружение и исправление их, что собственно и представляет собой процесс отладки, дело сложное, а порой, как это ни парадоксально звучит, и безнадёжное. Как определить, что программа имеет смысловую ошибку? В лучшем случае программа не работает, то есть её работа прерывается в некоторый момент, и система выдаёт какое-нибудь туманное сообщение типа “исчезновение порядка числа с плавающей точкой”. В худшем случае программа успешно завершает свою работу и выдаёт результаты, отвечающие интуитивным представлениям о характере решения задачи, а о наличии ошибки в программе мы узнаём только после практического внедрения результатов, например, когда по нашим прочностным расчётам построили мост, а он тут же обвалился под собственной тяжестью.
Как обнаружить такие скрытые ошибки? Самый популярный метод – так называемое тестирование. Следует взять такие исходные данные, правильный результат расчёта для которых известен заранее, и выполнить программу с этими данными. Если полученный результат совпадает с известным результатом, то, как говорят, «тест прошёл». Беда в том что, это совсем не означает, что программа не содержит ошибок.
Запустить программу, приведенную на рис. 4.1-26, на выполнение.
Список полученных ошибок приведен на рис. 4.1-28.
Рис. 4.1-28
Последняя 5 ошибка, связана с тем, что в выражении стоит лишняя скобка, а остальные ошибки связаны с преобразованиями.
Так как в программе запрещено использовать неявные преобразования (оператор Option Strict On), то преобразования из String в Single и из Double в Single невозможны.
Это было ясно и без выполнения программного кода, поскольку технология IntelliSense не толькоуказывает на ошибку в преобразовании (красный прямоугольник на ошибочной строке), но и помогает исправить ошибку (рис. 4.1-29).
Если подвести курсор на красный прямоугольник и щелкнуть на строке появившегося квадрата, то появится текст с параметрами исправления ошибок и их автоматического исправления (рис. 4.1-29).
Рис. 4.1-29
VB считает содержимое текстового поля текстом (тип String), а не числом (тип Single), даже если в текстовое поле вводятся цифры. Поэтому для присваивания числовым переменным A, B и C значений, введенных в текстовые поля объектов TextBox1, TextBox2 и TextBox3, эти значения необходимо предварительно преобразовать из типа String в тип Single, что проделывает функция CSng( ). Аналогично при выводе вычисленных числовых значений периметра и площади в текстовые поля TextBox4 и TextBox5 эти числовые значения предварительно преобразуются в текст (тип String) с помощью функции CStr( ).
После устранения ошибок (рис. 4.1-30) необходимо запустить программу на выполнение и ввести значения сторон треугольника, как показано на рис. 4.1-31.
Рис. 4.1-30
Рис. 4.1-31
Далее необходимо проанализировать результаты вычислений.
Очевидно, что при тех данных, которые были введены, периметр треугольника должен быть равен 12, а площадь – 6. Отсутствие сообщений компьютера о синтаксических ошибках есть необходимое, но недостаточное условие правильности программы.
Поскольку программа достаточна простая, то полученный результат можно проверить вручную.
Запустить программу на выполнение еще раз и ввести значения
сторон, как показано на рис. 4.1-15.
Система выдаст результат, представленный на рис. 4.1-32.
Рис. 4.1-32
Ошибка произошла в связи с тем, что были введены данные, при которых треугольник не может существовать: подкоренное выражение имеет отрицательное значение.
Обратите внимание, что все программы должны проверять вводимые данные на корректность.
Проверить работу кнопки ЗАВЕРШИТЬ.
Щелчок по ней должен привести к завершению программы.
Сохраните изменения в проекте.
На диске будет создана папка, в которой хранится ваш проект.
7. Пошаговое выполнение программы
Чтобы ускорить процесс создания проекта, рекомендуется студентам проконтролировать программу еще до ввода в компьютер, то есть за столом, с помощью просмотра, проверки и прокрутки.
Просмотр текста программы предусматривает обнаружение описок и расхождений с алгоритмом. Просматривается организация всех циклов с тем, чтобы убедиться в правильности операторов, задающих кратности циклов. Полезно посмотреть еще раз условия в условных операторах, аргументы в обращениях к подпрограммам и т.п.
При проверке программы программист по тексту программы мысленно воспроизводит тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом.
Основой прокрутки является имитация выполнения программы. Для выполнения прокрутки используют простейшие исходные данные и над ними производят все необходимые вычисления, следуя тексту программы.
Следующим этапом контроля правильности программы является отладка и тестирование на компьютере.
Отладка программы – это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере, а тестирование — это испытание, проверка правильности работы программы в целом, либо её составных частей. Отладка и тестирование – это два четко различимых и непохожих друг на друга этапа, поскольку при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования, а в процессе тестирования проверяется работоспособность программы, не содержащей явных ошибок. Таким образом, тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.
В современных программных системах отладка осуществляется часто с использованием специальных программных средств, называемых отладчиками. Программа-отладчик обычно обеспечивает следующие возможности:
· пошаговое исполнение программы с остановкой после каждой команды (оператора);
· просмотр текущего значения любой переменной или нахождение значения любого выражения, в том числе, с использованием стандартных функций; при необходимости можно установить новое значение переменной;
· установку в программе «контрольных точек», т.е. точек, в которых программа временно прекращает свое выполнение, так что можно оценить промежуточные результаты, и др.
Выполним пошаговое выполнение программы.
Для этого воспользуемся элементом панели инструментов Debug (Отладка ). Эта панель инструментов показана на рис. 4.1-33.
1 – показать следующий оператор; 2 – интерпретация; 3 – локальные; 4 – контрольные значения 1; 5 – стек вызовов; 6 – вывод. |
Рис. 4.1-33
Если панель инструментов Отладка (Debug) не отображается, необходимо щелкнуть на элементе главного меню Вид (View) и выполнить команду Панели инструментов (Toolbars), а затем выполнить команду Отладка (Debug).
Далее выясним, в связи с чем произошла ошибка, показанная на рис. 4.1-29. Чтобы выявить проблему, выполним проект в пошаговом режиме.
Для этого воспользуемся кнопкой Шаг с заходом (Step Into), расположенной на стандартной панели инструментов, а для изучения значений ключевых переменных и свойств программы - окном Локальные (Locals).
Для того чтобы окно Локальные (Locals) было активным, необходимо в панели инструментов Отладка (Debug) щелкнуть на пиктограмме Локальные (рис. 4.1-33).
На рис. 4.1-34 показано окно Редактора кода и Локальные.
Рис. 4.1-34
Щелкая каждый раз по кнопке Step Into (Шаг с заходом), программа выполняет один оператор, одновременно отображая значения локальных переменных в окне Локальные (Locals).
После очередного нажатия на кнопку Step Into (Шаг с заходом) отладчик вычисляет значение переменной S, и отображает его в окне Локальные (Locals) (рис. 4.1-35).
Рис. 4.1-35
Из рисунка видно, что подкоренное выражение равно отрицательному значению.
Выход из Visual Studio
Сохранить все изменения, которые вы сделали в вашей программе, можно щелкнув на кнопке Сохранить все (Save All)на стандартной панели инструментов.
Поведением по умолчанию VSявляется ситуация, когда имя присваивается программе при создании проекта, но при этом не указывается местоположение файла и проект не сохраняется до тех пор, пока вы не щелкните на кнопке Сохранить все (Save Аll),или не выполните команду Сохранить все (Save Аll) из элемента главного меню Файл (File).
В меню Файл (File)выполните команду Exit (Выход).
Visual Studio закроется.
4.1.5. Контрольные вопросы по теме «Интегрированная среда разработки Visual Studio .NET и основные понятия»
1. Что представляет собой Технология визуального программирования?
2. Что представляет собой Интегрированная среда разработки?
3. Что такое Объект в среде визуального программирования?
4. Что такое Класс в среде визуального программирования?
5. Что представляет собой коллекция объектов в среде визуального программирования?
6. Что такое Пространство имен?
7. Что такое Событие в Visual Basic?
8. Что такое Метод в Visual Basic?
9. Что такое Оператор в Visual Basic?
10.Что представляет собой Проект в Visual Basic?
11.Что такое Расширение файла проекта VB?
12.Что такое окно Обозреватель решений?
13.Что такое диалоговое окно Просмотр объектов?
14.Что такое окно Редактора Программного кода проекта?
15.Что такое Расширение файла программного кода VB?
16.Что такое диалоговое окно Конструктор форм?
17.Что такое окно Создания нового проекта?
18.Что такое Свойства объекта в среде Visual Basic?
19.Что такое Состав пользовательского интерфейса?
20.Что такое Процедуры обработки событий?
21.Что такое Форма в Visual Basic?
22.Что такое Текстовые поля?
23.Что такое Раскрывающиеся меню?
24.Что такое Расширение файла формы?
25.Что представляет собой объектно-ориентированный язык программирования?
26.Что такое Элементы управления?
27.Что такое Форма и как задавать её свойства?
28.Какие окна используются при разработке приложения?
29.Как связывается элемент управления и программный код?
30.Как размещаются элементы управления на форме?