Пошаговое выполнение программы
Контроль программы до ввода. Чтобы ускорить процесс создания проекта, рекомендуется проконтролировать программу еще до ввода в компьютер с помощью просмотра, проверки и прокрутки.
Просмотр текста программы предусматривает обнаружение описок и расхождений с алгоритмом. При проверке программы разработчик программного кода по тексту программы мысленно воспроизводит тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом.
Основой прокрутки является имитация выполнения программы. Для выполнения прокрутки используют простейшие исходные данные и над ними производят все необходимые вычисления, следуя тексту программы.
Следующим этапом контроля правильности программы является отладка и тестирование на компьютере.
Отладка программы– это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере, а тестирование – это испытание, проверка правильности работы программы в целом, либо её составных частей.
Отладка и тестирование – это два четко различимых и непохожих друг на друга этапа, поскольку при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования, а в процессе тестирования проверяется работоспособность программы, не содержащей явных ошибок. Таким образом, тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.
В современных программных системах отладка осуществляется часто с использованием специальных программных средств, называемых отладчиками. Программа-отладчик обычно обеспечивает следующие возможности:
· пошаговое исполнение программы с остановкой после каждой команды (оператора);
· просмотр текущего значения любой переменной или нахождение значения любого выражения, в том числе, с использованием стандартных функций; при необходимости можно установить новое значение переменной;
· установку в программе «точек останова», т.е. точек, в которых программа временно прекращает свое выполнение, так что можно оценить промежуточные результаты, и др.
Пошаговое выполнение. Выполним пошаговое выполнение программы, с исходными данными показанными на рис. 4.2.5-13, для того чтобы выявить проблему возникновения ошибки NaN. Поставим, так называемую точку останова после ввода исходных данных (перед оператором p=(a+b+c)) и нажмем клавишу <F9>, в результате чего строка оператора выделяется красным цветом. Теперь после ввода исходных данных в текстовые поля и нажатия на кнопку Вычислить выполнение программы прерывается перед вычислением выражения.
Рис.4.2.5-14. Иллюстрация работы Отладчика
Открывается окно редактора кода и под ним окно Локальные, в котором отображаются значения всех объектов, использующихся в данном программном коде. После каждого нажатия клавишу <F10>, будет происходить пошаговое выполнение программы и изменение значений всех переменных.
Из рис. 4.2.5-14 видно, что подкоренное выражение, а, следовательно, значение ячейки s равно отрицательному значению, поэтому возникает ошибка в поле вывода s.
Чтобы стереть точку останова для последующих запусков программы, надо в элементе меню Отладка выполнить команду
Удалить все точки останова или щелкнуть мышью на красном кружке (точке останова) слева от оператора, на котором прерывается программа.
Создание выполняемого (.exe) файла
Окончательная компоновка проекта состоит в создании .exe файла:
Проект сохранить.
Из элемента Главного меню Построение выполнить команду Построить Имя проекта.
Созданный .exe файл можно найти в текущем каталоге проекта, например, …/Запись выражений /папка Bin /папка Release.
Выход из Visual Studio
Сохранить все изменения, которые были сделаны.
Для этого щелкнуть на кнопке Сохранить все на Стандартной панели инструментов.
По умолчанию VSприсвоит имя программе при создании проекта, но при этом не указывает местоположение файла и проект не сохраняется до тех пор, пока вы не щелкнуть на кнопке Сохранить все, или не выполните команду Сохранить все из элемента Главного меню – Файл.
В меню Файл выполнить команду Exit.
Visual Studio закроется.
Таким образом, мы полностью выполнили этапы создания проекта среде VS, очень подробно рассмотрев все тонкости создания проекта, начиная с постановки задачи и заканчивая созданием исполняемого файла. Создание других проектов в учебном пособии будет описано менее подробно, поскольку читатель может всегда обратиться к вышерассмотренному приложению.
4.2.6. Тестовые задания
1.Синтаксис языка программирования – это
1)набор правил истолкования отдельных языковых конструкций
2)грамматические правила языка
3)правила компиляции операторов языка
2.Алфавит языка программирования – это
1)переменные и операторы языка
2)множество символов, из которых строятся все конструкции языка
3)множество идентификаторов
3.Идентификаторы – это
1)имена лексических элементов языка
2)имена переменных
3)ключевые слова
4)имена операторов
4.Ключевые слова – это
1)идентификаторы, зарезервированные для специального использования
2)операторы языка
3)константы языка
4)операторы языка
5.Для ввода данных в схемах алгоритма используют фигуру
1)ромб
2)прямоугольник
3)треугольник
4)параллелограмм
6.Внутреннее представление данных в памяти компьютера
определяется
1)типом данных
2)системой счисления
3)системой программирования
7.Последовательность символов, заключенная в двойные кавычки, называется
1)строковой переменной
2)строковой константой
3)числовой переменной
4)числовой константой
8.Величина, не изменяющая своего значения в ходе выполнения программы - это
1)функция
2)переменная
3)константа
4)оператор
9.Величина, к которой обращаются по имени, принимающая различные значения в ходе выполнения программы, называется
1)строкой
2)символом
3)константой
4)переменной
10.Показательная функция записывается как
1)Exp(x)
2)Abs(x)
3)Sqrt(x)
4)Atan(x)
11.Из перечисленных действий наивысший приоритет имеет
1)сложение
2)возведение в степень
3)вычитание
4)умножение
12.В качестве аргумента встроенной математической функции можно применять
1)число
2)любое арифметическое выражение
3)переменные
4)все ответы верные
13.Операция Mod определяет
1)модуль числа
2)квадратный корень числа
3)знак числа
4)остаток от деления
14.Числовые переменные могут быть
1)целыми и вещественными
2)целыми и символьными
3)простыми и сложными
4)нет верного ответа
15.Наибольшее целое число, не превосходящее аргумент, возвращает функция
1)Int(Х)
2)Fix(X)
3)CInt(X)
4)Sign(X)
16.Ошибки, связанные с неправильной записью конструкций языка программирования, называются
1)логическими
2)орфографическими
3)математическими
4)синтаксическими
17.Запись TextBox1.Text=CStr(у) предназначена
1)для вывода в текстовое поле формы значения переменной у
2)для ввода данных с клавиатуры
3)для вывода числовых данных
4)для печати результатов на принтере
18.Оператор присваивания изменяет
1)имя переменной
2)значение переменной
3)тип переменной
4)значение и тип одновременно
19.Синтаксически неправильная запись
1)X = Y * Sin( X) ^2 + 4
2)X = Y * Sin ^ 2 (X) + 4
3)X = Y * Sin( X ^ 2 ) + 4
4)X = Y ^2 * Sin( X) + 4
20.Оператор организации ввода данных с клавиатуры в системе программирования VB записывается с использованием ключевого слова
1)Loop
2)Inputbox
3)Print
4)Msgbox
21.Ошибки, связанные с неправильной записью конструкций языка
программирования, называются
1)логическими
2)орфографическими
3)математическими
4)синтаксическими
5)методическими
22.Ошибкой при программировании является
1)глупые действия, совершаемые неопытным пользователем
2)все, что заставляет программу работать не так, как нужно, или вообще не работать
3)получение результата, которого вы не ожидали
4)в Visual Basic не может быть ошибок, он сам их исправляет
23.Отсутствие сообщений компьютера о синтаксических ошибках
1)есть необходимое и достаточное условие правильности программы
2)есть достаточное условие правильности программы
3)есть необходимое, но недостаточное условие правильности программы
4)не является необходимым условием правильности программы
5)гарантирует правильность программы
24.Аргумент для функции Sin( ) задается
1)в радианах
2)в градусах
3)в секундах
4)в любых единицах
25.Тип переменной alfa, объявленный в Dim alfa AS Integer будет
1)целым
2)вещественным
3)неопределенным
4)нет верного ответа
26.Ввод данных в языке Visual Basic осуществляется с помощью
1)InputBox
2)Print
3)If
4)Do
4.2.8. Лабораторная работа по теме
«Основные средства языка программирования VB .NET. Типы данных»
Цель выполнения лабораторной работы состоит в изучении алфавита языка, типов данных и правил записи арифметических выражений, содержащих константы, переменные, различные арифметические действия и «встроенные» функции, ознакомлении с основными правилами преобразования типов.
Вопросы, подлежащие изучению
1)Алфавит языка VB.
2)Основные понятия: программа, программная строка, оператор присваивания, комментарий.
3)Данные, типы данных. Числовые константы и переменные.
4)Арифметические действия над данными.
5)«Встроенные» функции.
6)Последовательность выполнения действий в арифметических выражениях. Понятие приоритета.
7)Явные и неявные преобразования.
8)Функции ввода и вывода.
4.2.8.2. Общее задание на разработку проекта
1) Изучите основные средства языка программирования VB и типы данных (Тема 4.2).
2) Выберите индивидуальный вариант задания из табл.4.2.8-1.
3) Разработайте графический интерфейс пользователя.
4) Решите задачу вычисления арифметических выражений в двух вариантах (два проекта) в одном решении: первый проект с неявными преобразованиями типов данных, второй – с требованием явного преобразования (без инструкции Option Strict Onи с использованием этой инструкции). Для этого, формализуйте арифметические выражения, т.е. запишите выражение в формальном математическом виде, а затем запишите полученные математические формулы в виде выражения по правилам языка программирования с учетом приоритета операций.
5)Выполните созданные проекты.
6) Выполните созданные проекты по шагамс помощью отладчика, поставив точку останова после ввода данных.
7) Получите результаты.
8) Докажите правильность результата.
Варианты индивидуальных заданий
Таблица 4.2.8-1
№ | Формулы для вычислений | Исходные данные | ||
x | y | |||
1) | i=t j= | 3,59 | 17,53 | |
2) | m=d n= | 1,674 | -0,533 | |
3) | k=h n= | 32,01 | -0,4917 | |
4) | i=c j= | 2,123 | -1,89 | |
5) | i=b j= | 8,402 | -0,22226 | |
6) | m=d n= | 1,002 | -0,5321 | |
7) | m=z n= | 12,003 | -5,408 | |
8) | k=d l= | 1,3802 | -1,9 | |
9) | i=f j= | 12,678 | 6,9 | |
10) | i=a j= | 82,578 | 1,4517 | |
11) | m = d n = [d] | -4.62 | -0.32 | |
12) | i = f j = [f] | 5.305, | -0.084 | |
13) | k = h n = [h] | 0.68 | -0.848 | |
14) | i =a j = [a] | 14.2.43 | -0.2 | |
15) | k = с i = [с] | -1.462 | 0.577 | |
16) | i = b j = [b] | 0.501 | 1.7 | |
17) | i = d j = [d] | -0.45 | 24.3 | |
18) | i = f j = [f] | 8.8 | 5.8 | |
19) | k = h l = [h] | 0.6485 | 3.9 | |
20) | m = a n = [a] | 125.04 | 5.55 | |
21) | k = b l = [b] | 7.302 | 5.782 | |
22) | i = c j = [c] | -3.356 | 0.049 | |
23) | m = a n = [a] | 1.892 | -0.61 | |
24) | m = a n = [a] | 45.892 | 0.601 | |
k = c l = [c] | 0.54321 | |||
26) | m =d n = [d] | 104.2.654 | ||
27) | m =f n = [f] | 29.999 | 165.091 | |
28) | k = g I = [g] | -9.20 | -5,892 | |
29) | m = z n = [z] | 4.51 | -0.25 | |
30) | k =b l = [b] | 224.2.1 |
Содержание отчета
1)Тема и название лабораторной работы.
2)Фамилия, имя студента, номер группы, номер варианта.
3)Задание на разработку проектов и вариант задания.
4)Формализация и уточнение задания: запись арифметических выражений по правилам VB, соответствующих заданным математическим формулам.
5)Элементы разрабатываемых проектов в одном решении:
5.1) графический интерфейс пользователя;
5.2) таблица свойств объектов;
5.3) схема алгоритма решаемой задачи;
5.4) программный код первого проекта;
5.5) программный код второго проекта.
6)Результаты выполнения проектов.
7)Доказательство правильности работы программы.
4.2.8.5. Пример выполнения задания
1)Тема и название работы:
Основные средства языка программирования VB .NET. Типы данных.
Вычисление арифметических выражений.
2)Фамилия, имя студента, номер группы, номер варианта:
Иванов И., БИН1405, вариант 13.
3)Задание на разработку проекта и вариант задания:
Решите задачу вычисления арифметических выражений путем создания двух проектов в одном решении с именемПроект 2.1: первый проект – с неявными преобразованиями типов данных; второй – Проект 2.2 с требованием явного преобразования (без инструкции Option Strict Onи с использованием этой инструкции):
4)Формализация и уточнение задания:
Для формализации и уточнения задания допустим, что x, y – исходные данные вещественного типа Double, а переменные k, m, n, z, p – результаты вычислений, причем k– переменная целого
типа Integer, m, n, z – вещественного типа Double, p – вещественного типа Single. Выражение m=[z] означает, что вычисляется целая часть
числа, полученная с помощью функции Fix(), а значение переменной n вычисляется с помощью функции Int(). Кроме того, в этой задаче
дополнительно будем использовать две строковые переменные s1 и s2 типа String, которые участвуют в выражениях s1=z и s2=p.
Запишите арифметическое выражение на языке программирования:
z = (0.002 – Exp(x^y)) / ((100 – y)*(x + 2));
k = z; m = Fix(z).
5)Элементы разрабатываемых проектов в одном решении:
5.1)Графический интерфейс пользователя:
При создании проектов и решения задайте им разные имена. Например, имена проектов – Проект 2.1 и Проект 2.2, а имя решения – Лаб.4.2. Анализируя задание на разработку проектов, можно сделать вывод о том, что для организации ввода и вывода данных можно использовать три элемента управления.
Текстовое поле TextBox используется как для ввода исходных данных в программу, так и для отображения результатов, получаемых в этой программе. Элемент Label используется для размещения на форме поясняющих надписей. Кнопки Button используются для запуска и завершения работы программы.
Таким образом, форма может иметь вид, показанный на
рис.4.2.8-1.
Рис. 4.2.8-1. Форма проектов Проект 2.1и Проект 2.2
5.2)Таблица свойств объектов:
Установите и сведите в табл. 4.2.8-2 свойства всех объектов.
Таблица 4.2.8-2
Объект | Имя объекта | Свойство | Значение свойства |
Форма | Form1 | Name | Form1 |
Text | Вычисление арифметических выражений | ||
Метка | Label1 | Text | Задание: Создать проект вычисления арифметическх выражений |
ForeColor | Red | ||
ImageAlign | MiddleCenter | ||
Метка | Label2 | Text | Исходные данные |
ForeColor | YellowGreen | ||
ImageAlign | MiddleCenter | ||
Метка | Label3 | Text | Х= |
Метка | Label4 | Text | Y= |
Метка | Label5 | Text | Результаты |
Метка | Label6 | Text | Значение z |
Метка | Label7 | Text | Значение к |
Метка | Label8 | Text | Значение (Fix(z)) |
Метка | Label9 | Text | Значение Int(z) |
Метка | Label10 | Text | Значение p |
Метка | Label11 | Text | Значение z+p |
Метка | Label12 | Text | Значение s1+s2 |
Текстовое поле | TextBox1 | Name | TextBox1 |
Текстовое поле | TextBox2 | Name | TextBox2 |
Текстовое поле | TextBox3 | Name | TextBox3 |
Текстовое поле | TextBox4 | Name | TextBox4 |
Текстовое поле | TextBox5 | Name | TextBox5 |
Текстовое поле | TextBox6 | Name | TextBox6 |
Текстовое поле | TextBox7 | Name | TextBox7 |
Текстовое поле | TextBox8 | Name | TextBox8 |
Текстовое поле | TextBox9 | Name | TextBox9 |
Кнопка | Button2 | Name | Button2 |
Text | Вычислить | ||
Кнопка | Button1 | Name | Button1 |
Text | Выход | ||
Кнопки | Button1 и Button2 | Font | Arial, жирный, 12 |
5.3)Схема алгоритма решаемой задачи:
Схема алгоритма представлена на рис. 4.2.8-2.
Рис. 4.2.8-2.Схема алгоритма вычисления арифметических выражений
5.4)Программный код первого проекта:
В вычисляемом выражении используется математическая
функция Exp(), поэтому требуется подключить системную
библиотеку Math.
Кроме того, две функции Fix() и Int(), которые выделяют из вещественного числа его целую часть (по-разному: для положительных и отрицательных чисел), но не преобразуют результат в целый тип, он остается вещественным числом. Также следует обратить внимание, что операция сложения «+» по-разному работает разных типов данных.
Разделителем целой и дробной частей вводимого вещественного числа обязательно должна быть запятая, а не точка.
Код программы первого проекта (Проект 2.1) приведен на
рис. 4.2.8-3.
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 х = TextBox1.Text y = TextBox4.2.Text z = (0.002 - Exp(х ^ y)) / ((100 - y) * (х + 2)) p = z k = z m = Fix(z) n = Int(z) s1 = z s2 = p TextBox3.Text = z TextBox4.Text = k TextBox5.Text = m TextBox6.Text = n TextBox7.Text = p TextBox8.Text = 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 End Class |
Рис. 4.2.8-3. Программный код проекта Проект 2.1
5.5)Программный код второго проекта:
Создайте второй проект с именем Проект 2.2 в уже имеющемся решении. Для этого надо выполнить команду Файл/Добавить/Создать проект/Приложение Windows Forms. В открывшемся окне Добавить новый проектзадайте имя проекта Проект 2.2.
Чтобы заново не создавать существующий интерфейс и не копировать программный код, в окне Обозреватель решений нажмите правую кнопку мыши на элементе Проект 2.2 и выберете пункт Существующий элемент. Далее в открывшемся окне Добавление существующего элемента найдите файл Form1.vb первого проекта с именем Проект 2.1 и нажмите кнопку Добавить.
В открывшемся окне (рис. 4.2.8-4) поставьте флажок в опции Применить ко всем элементам и нажмите кнопку Да.
Рис. 4.2.8-4. Диалоговое окно VS
Затем в окне (см. рис4.2.8-5) выберите кнопку Да для всех.
Рис. 4.2.8-5. Диалоговое окно VS