Теперь можно написать программный код для проекта Проект-1-1-Лаб. Так как большинство созданных ранее объектов уже «знают», как им надо работать, при запуске программы они будут готовы к приему ввода от пользователя и его обработке. После того как объекты будут размещены на форме и их свойства будут установлены, они готовы к запуску без дополнительного программирования (визуальное программирование).
Так как программой управляют кнопки ВЫЧИСЛИТЬ и ЗАВЕРШИТЬ, программный код нашего проекта должен быть связан именно с этими кнопками. Для ввода и редактирования операторов программы на C# предназначено окно Form1.cs.
1. Дописать код программы для обработки событий нажатия кнопки Button1и кнопкиButton2.
Внутри окна находятся строки кода, связанного с текущей формой. Операторы программы, которые используются совместно для выполнения некоторого действия, обычно группируются в программные конструкции, называемые процедурами. Обычно процедуры выполняются при определенных обстоятельствах, например, таких, как щелчок на кнопке или вызовом специального оператора. Когда процедура ассоциирована с конкретным объектом и событием, она называется событийной процедурой.
При двойном щелчке мышью на кнопке ЗАВЕРШИТЬ C# автоматически добавляет название и фигурные скобки начала и конца.
Тело процедуры, которое находится между фигурными скобками, будет исполняться каждый раз, когда пользователь активизирует элемент интерфейса, ассоциированный с этой процедурой. В данном случае событие - это щелчок мышью на кнопке Button2, но, как будет показано далее, это может быть и другой тип события.
Между заголовком и концом процедуры ввести Close() и поставить точку с запятой.
Если мы вводим оператор, буквы становятся синими и создаются отступы, что указывает, что C# распознал оператор как одно из нескольких сотен зарезервированных - или ключевых слов языка.
Напомним, что компилятор – это часть VS, обрабатывающая и выполняющая анализ каждой строки исходного кода С# и объединяющая результаты с другими ресурсами с целью создания исполняемого файла. Все операторы программы должны следовать грамматическим правилам компилятора. В VS операторы программ могут состоять из ключевых слов, свойств, имен объектов, переменных, чисел, специальных символов и других значений. При вводе операторов программы и внесении других изменений окно редактора кода выполняет многие задачи, связанные с форматированием, включая настройку отступов, пробелов и добавление необходимых скобок. Точное написание оператора программы называется синтаксисом оператора.
Соглашение относительно того, как организуется код в программе, часто называется стилем программирования.
Теперь, когда написан код, связанный с кнопкой ЗАВЕРШИТЬ, необходимо написать код для кнопки ВЫЧИСЛИТЬ.
2. Написать программный код, который будет выполняться при нажатии кнопки ВЫЧИСЛИТЬ, то есть событийную процедуру для кнопкиButton1.
Чтобы отобразить форму, вернемся в предыдущее окно.
Дважды щелкнуть мышью на кнопке ВЫЧИСЛИТЬ.
Рядом с процедурой события, связанной с кнопкой Button2, появится процедура события, ассоциированная с кнопкой Button1.
Хотя текст этой кнопки был изменен на « ВЫЧИСЛИТЬ », ее имя в программе осталось Button1. (Имя и текст элемента интерфейса могут быть различными для удобства программирования.) Каждый объект может иметь несколько связанных с ним процедур - по одной для каждого распознаваемого события.
В теле функции необходимо ввести строки программы, показанные на рис. 1.1-8.
private void button1_Click(object sender, EventArgs e) { double A, B, C, P, Pp, S; A = Convert.ToDouble(textBox1.Text); //присваивание переменной // А значения textBox1 B = Convert.ToDouble(textBox2.Text); //присваивание переменной // B значения textBox2 C = Convert.ToDouble(textBox3.Text); //присваивание переменной // C значения textBox3 P = A + B + C; //вычисление периметра Pp = P / 2; //вычисление полупериметра S = Math.Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C)); //вычисление площади textBox4.Text = Convert.ToString(P); //вывод значения периметра // в textBox4 textBox5.Text = Convert.ToString(S); //вывод значения площади в // textBox5 } |
Рис. 1.1-8
После ввода каждой строки необходимо поставить точку с запятой и нажать <Enter>,а для создания отступа необходимо нажать на <Таb>. Если будет сделана ошибка, которая обычно определяется по подчеркиванию волнистой линией, удалите неверную строку и введите ее снова.
При вводе кода программы C# форматирует ее текст и отображает различные части программы различными цветами, которые помогают распознавать различные элементы. В момент ввода свойства отображается список, содержащий все допустимые свойства объекта, так что вместо набора свойства вручную можно дважды щелкнуть на свойстве мышью. Если C# отображает сообщение об ошибке, то оператор, скорее всего, введен с ошибкой. Сверьте строку с текстом в книге, сделайте необходимые исправления и продолжайте набирать. Также можете удалить всю строку и начать вводить ее заново. Кроме того, C# может автоматически добавлять необходимый код.
Окно после редактирования будет выглядеть так:
Рис. 1.1-9
Элементы C#, отображаемые на экране зеленым цветом, называются комментарием. Комментарии - это описательные пояснения, включаемые в программный код после определенного символа (//). Программисты используют комментарии для описания действия операторов программы. Язык C# при запуске программы не обрабатывает эти пояснения; они существуют только для документирования того, что делает программа. При написании программы часто придется использовать комментарии, чтобы оставить легко воспринимаемые записи о том, что же вы сделали.
3. Сохранить введенный программный код, выполнив команду Сохранить все (Save All) элемента главного меню Файл (File).
Команда Сохранить все (Save All) сохраняет все файлы, входящие в проект – собственно файл проекта, файл формы, все модули кода и все связанные с приложением компоненты. Если это первое сохранение проекта, появится диалоговое окно Сохранить проект (Save Project), запрашивающее имя и место для сохранения проекта. (Если ваша копия VS настроена так, чтобы запрашивать место сохранения проекта при его создании, то сейчас диалогового окна Сохранить проект (Save Project) вы не увидите – VS просто сохранит все изменения.)
Щелкнуть на кнопке Обзор (Browse) справа от текстового поля Местоположение (Location) и выбрать место для сохранения файлов.
Необходимо использовать папку на диске d:\... (место, где находятся файлы лабораторных работ, созданные студентами). Если необходимо сохранить только элемент, с которым в настоящий момент работаете (форму, модуль кода или что-либо еще), то используется команда Сохранить (Save), также находящаяся в меню Файл (File). Если необходимо сохранить текущий элемент с другим именем, то используется команда Сохранить как (Save As).
4. Технология IntelliSense и точечная нотация
Теперь будет известно, как с помощью C# читать и записывать значения свойств форм и элементов управления. Если у каждой формы и элемента управления много свойств, как за ними уследить? Не слишком удобно постоянно переключаться между редактором кода и окном Свойства, чтобы выяснить, какие свойства нам нужны. Имеется более удобный способ.
Можно использовать технологию IntelliSense. IntelliSense позволяет экономить время при редактировании программного кода в окне редактора. IntelliSense знает, к какому элементу управления вы обращаетесь и какие у него есть свойства; выводит список свойств и позволяет вам выбирать из него нужное. Используемое чаще всего свойство подсвечивается, когда IntelliSense отображает список. Например, для текстового поля изначально подсвечивается свойство Text. С помощью стрелок вверх и вниз на клавиатуре можно просматривать список и выбирать то свойство, которое вам требуется. При нажатии клавиши <Tab > выбранное свойство добавляется в код. Используя IntelliSense, не придется запоминать все свойства всех элементов управления. Кроме того, данное средство заметно сокращает потребность в наборе длинных имен на клавиатуре!
Например, во время ввода с клавиатуры текста программного кода и, в частности, textBox2, нажмем клавишу «точка». Как только будет введена точка, IntelliSense отобразит список свойств элемента textBox2. По умолчанию в списке IntelliSense подсвечивается чаще всего используемое свойство (рис. 1.1-10).
Если далее будет введена буква, например буква «T», IntelliSense прокрутит список до первого по алфавиту свойства, начинающегося с «T». По мере ввода IntelliSense ищет в списке свойство, наиболее соответствующее введенным буквам.
Рис. 1.1-10
Когда свойство подсвечивается в списке IntelliSense, рядом появляется подсказка, кратко его описывающая. Эта подсказка, например, может сообщить, что свойство доступно только для чтения (Read Only, т. е. ему нельзя присваивать значение). Кроме того, подсказка сообщает, какие значения можно присваивать свойству, например, строку (текст) или целое число.
С# считает, что содержимое текстового поля – это текст (тип string), а не число (тип Double), даже если в текстовое поле вводятся цифры. Поэтому для присвоения числовым переменным A, B и C значений, введенных в текстовые поля объектов textBox1, textBox2 и textBox3, необходимо предварительно преобразовать эти значения из типа string в тип double с помощью функция Convert.ToDouble(). Аналогично при выводе вычисленных числовых значений периметра и площади в текстовые поля textBox4 и textBox5 эти числовые значения предварительно преобразуются в текст (тип string) с помощью функции Convert.ToString().
После устранения ошибок необходимо запустить программу на выполнение и ввести значения сторон треугольника, как показано на рис. 1.1-12.
Рис. 1.1-12
Далее необходимо проанализировать результаты вычислений.
Очевидно, что при тех данных, которые были введены, периметр треугольника должен быть равен 12, а площадь – 6. Отсутствие сообщений компьютера о синтаксических ошибках есть необходимое, но недостаточное условие правильности программы.
Поскольку программа достаточна простая, то полученный результат можно проверить вручную.
Запустить программу на выполнение еще раз и ввести значения
сторон, как показано на рис. 1.1-13.
Система выдаст результат, представленный на рис. 1.1-13.
Рис. 1.1-13
Ошибка произошла в связи с тем, что были введены данные, при которых треугольник не может существовать: подкоренное выражение имеет отрицательное значение.
Обратите внимание, что все программы должны проверять вводимые данные на корректность.
Проверить работу кнопки ЗАВЕРШИТЬ.
Щелчок по ней должен привести к завершению программы.
Сохраните изменения в проекте.
На диске будет создана папка, в которой хранится ваш проект.
5. Пошаговое выполнение программы
Чтобы ускорить процесс создания проекта, рекомендуется студентам проконтролировать программу еще до ввода в компьютер, то есть за столом, с помощью просмотра, проверки и прокрутки.
Просмотр текста программы предусматривает обнаружение описок и расхождений с алгоритмом. Просматривается организация всех циклов с тем, чтобы убедиться в правильности операторов, задающих кратности циклов. Полезно посмотреть еще раз условия в условных операторах, аргументы в обращениях к подпрограммам и т.п.
При проверке программы программист по тексту программы мысленно воспроизводит тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом.
Основой прокрутки является имитация выполнения программы. Для выполнения прокрутки используют простейшие исходные данные и над ними производят все необходимые вычисления, следуя тексту программы.
Следующим этапом контроля правильности программы является отладка и тестирование на компьютере.
Отладка программы – это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере, а тестирование — это испытание, проверка правильности работы программы в целом, либо её составных частей. Отладка и тестирование – это два четко различимых и непохожих друг на друга этапа, поскольку при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования, а в процессе тестирования проверяется работоспособность программы, не содержащей явных ошибок. Таким образом, тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.
В современных программных системах отладка осуществляется часто с использованием специальных программных средств, называемых отладчиками. Программа-отладчик обычно обеспечивает следующие возможности:
· пошаговое исполнение программы с остановкой после каждой команды (оператора);
· просмотр текущего значения любой переменной или нахождение значения любого выражения, в том числе, с использованием стандартных функций; при необходимости можно установить новое значение переменной;
· установку в программе «контрольных точек», т.е. точек, в которых программа временно прекращает свое выполнение, так что можно оценить промежуточные результаты, и др.
Выполним пошаговое выполнение программы.
Для этого воспользуемся элементом панели инструментов Debug (Отладка). Эта панель инструментов показана на рис. 1.1-14.
![]() 1 – показать следующий оператор; 2 – интерпретация; 3 – локальные; 4 – контрольные значения 1; 5 – стек вызовов; 6 – вывод. | ||||||
Рис. 1.1-14 |
Если панель инструментов Отладка (Debug) не отображается, необходимо щелкнуть на элементе главного меню Вид (View) и выполнить команду Панели инструментов (Toolbars), а затем выполнить команду Отладка (Debug).
Далее выясним, в связи с чем произошла ошибка, показанная на рис. 1.1-13. Чтобы выявить проблему, выполним проект в пошаговом режиме.
Для этого воспользуемся кнопкой Шаг с заходом (Step Into), расположенной на стандартной панели инструментов, а для изучения значений ключевых переменных и свойств программы - окном Локальные (Locals).
Для того чтобы окно Локальные (Locals ) было активным, необходимо в панели инструментов Отладка (Debug) щелкнуть на пиктограмме Локальные (рис. 1.1-14).
На рис. 1.1-15 показано окно Редактора кода и Локальные.
Рис. 1.1-15
Щелкая каждый раз по кнопке Step Into (Шаг с заходом), программа выполняет один оператор, одновременно отображая значения локальных переменных в окне Локальные (Locals ).
После очередного нажатия на кнопку Step Into (Шаг с заходом) отладчик вычисляет значение переменной S и отображает его в окне Локальные (Locals) (рис. 1.1-16).
Рис. 1.1-16
Из рисунка видно, что подкоренное выражение не может быть вычислено.
Выход из Visual Studio
Сохранить все изменения, которые вы сделали в вашей программе, можно щелкнув на кнопке Сохранить все (Save All) на стандартной панели инструментов.
Поведением по умолчанию Visual Studio 8 является ситуация, когда имя присваивается программе при создании проекта, но при этом не указывается местоположение файла и проект не сохраняется до тех пор, пока вы не щелкните на кнопке Сохранить все (Save Аll), или не выполните команду Сохранить все (Save Аll) из элемента главного меню Файл (File).
В меню Файл (File) выполните команду Exit (Выход).
Visual Studio закроется.
1.1.5. Контрольные вопросы по теме «Интегрированная среда разработки Visual Studio.NET и основные понятия»
1. Что представляет собой Технология визуального программирования?
2. Что представляет собой Интегрированная среда разработки?
3. Что такое Объект в среде визуального программирования?
4. Что такое Класс в среде визуального программирования?
5. Что представляет собой коллекция объектов в среде визуального программирования?
6. Что такое Пространство имен?
7. Что такое Событие?
8. Что такое Метод?
9. Что такое Оператор?
10.Что представляет собой Проект в C#?
11.Что такое Расширение файла проекта C#?
12.Что такое окно Обозреватель решений?
13.Что такое диалоговое окно Просмотр объектов?
14.Что такое окно Редактора Программного кода проекта?
15.Что такое Расширение файла программного кода C#?
16.Что такое диалоговое окно Конструктор форм?
17.Что такое окно Создания нового проекта?
18. Что такое Свойства объекта в среде C#?
19.Что такое Состав пользовательского интерфейса?
20. Что такое Процедуры обработки событий?
21. Что такое Форма в C#?
22.Что такое Текстовые поля?
23.Что такое Раскрывающиеся меню?
24. Что такое Расширение файла формы?
25. Что представляет собой объектно-ориентированный язык программирования?
26. Что такое Элементы управления?
27. Что такое Форма и как задавать её свойства?
28. Какие окна используются при разработке приложения?
29. Как связываются элемент управления и программный код?
30. Как размещаются элементы управления на форме?