DimxAsDouble, yAsDouble, zAsDouble
внутрь событийной процедуры, при этом оставив такую же строку с описанием глобальных объектов (в самом начале программного кода модуля формы, перед описаниями всех процедур). Обоснуйте результат работы измененного программного кода, выполнив отладку проекта по шагам.
9)Снова измените, программный код третьего проекта, убрав строку с описанием глобальных объектов (закомментируйте или удалите ее). Объясните возникшие ошибки при выполнив отладку проекта по шагам.
10)Результаты выполнения трех проектов должны быть одинаковыми(рис. 4.3.7-8).
Рис. 4.3.7-8. Результаты выполнения Проекта 3.1.1
3.5. Доказательства правильности результатов:
Для доказательства правильности результатов выполните расчет арифметического выражения с использованием калькулятора или программы Microsoft Excel, сделайте вывод о том, что результаты, полученные вручную, подтверждают правильность выполнения программы.
4) Реализация 2-го задания:
Вычисления периметра и площади треугольника по заданным координатам трех его вершин.
4.1) Задание на разработку задачи:
Создайте приложение с именем Проект 3.4, для вычисления периметра и площади треугольника по заданным координатам трех его вершин: x1, y1; x2, y2; x3, y4.3.
Т.е. определите: Р – периметр треугольника и S – площадь
треугольника. Ограничения на значения исходных данных и их
соотношения: А>0, В>0, C>0, А+В>С, А+C>В, В+C>А
одновременно.
4.2) Формализация и уточнение задания:
Для решения задачи существуют известные формулы:
Р = А + В + С;
S= (формула Герона);
A = ; B = ;
C = .
Где Рр = Р/2– полупериметр; A, B, C – стороны треугольника.
В соответствии с требованиями задания разобьем решение задачи на несколько отдельных задач и создадим процедуры пользователя, реализующие эти задачи:
· процедуру-FunctionДлинаОтрезка(), вычисляющую длину отрезка по координатам двух точек;
· процедуру-Sub PS(), вычисляющую периметр и площадь треугольника;
· процедуру- Functionvvod() для ввода действительного числа из объекта типа TextBox;
· процедуру-Subvivod() для вывода действительного числа в объект типа TextBox.
Выбор типа процедуры (Function или Sub) определяется следующими критериями. Процедуры-функции Function предназначены для вычислений и могут быть частью выражения. Результатом выполнения процедуры-Function является значение какой-либо одной величины числового, строкового или логического типа, которое функция возвращает или через свое имя, или операторомReturn. Следовательно, ДлинаОтрезка( )и vvod( ) – это процедуры типа Function.
Если же процедура должна вычислить и возвратить несколько величин (PS()), или просто выполнить определенные действия, не возвращая никаких значений (vivod()), то такую процедуру следует оформить как процедуру-Sub.
4.3) Элементы, разрабатываемого проекта:
4.3.1)Графический интерфейс пользователя:
Разработайте графический интерфейс пользователя.
Форма приложения изображена на рис. 4.3.7-9.
Рис. 4.3.7-9. Формапроекта Проект 3.4
4.3.2)Таблица свойств объектов:
Определите и сведите в таблицусвойства объектов
(эта таблица аналогична табл. 4.2.8-2);
4.3.3)Схемы алгоритмов процедур проекта Проект 3.4
Разработайте схемы алгоритмов процедур PS()и
ДлинаОтрезка()приведены на рис. 4.2.8-10, а процедура
события на рис.4.2.8-11.
Рис. 4.3.7-10. Схемы алгоритмов процедурДлинаОтрезка() и PS() Проекта 3.4
Рис. 4.3.7-11. Схемы алгоритмов событийной процедуры
проектаПроект 3.4
4.3.4)Программный код проекта Проект 3.4
Разработайте программный код проекта (рис. 4.3.7-9).
ImportsSystem.Math PublicClassForm1 'Функция ввода координаты точки в TextBox Functionvvod(ByVal T AsTextBox) AsSingle ReturnCSng(Val(T.Text)) EndFunction 'Процедура вывода результата в TextBox Subvivod(ByVal Z AsSingle, ByVal T AsTextBox) T.Text = CStr(Z) EndSub 'Функция вычисления длины отрезка по координатам двух точек PublicFunctionДлинаОтрезка(ByVal x1 AsSingle, _ ByVal y1 AsSingle, ByVal x2 AsSingle, _ ByVal y2 AsSingle) AsSingle ReturnCSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) EndFunction 'Процедура вычисления периметра и площади треугольника Sub PS(ByVal x1 AsSingle, ByVal y1 AsSingle, ByVal x2 As_ Single, ByVal y2 AsSingle, ByVal x3 AsSingle,_ ByVal y3 AsSingle, ByRef P AsSingle, ByRef S AsSingle) Dim A, B, C, Pp AsSingle A = ДлинаОтрезка(x1, y1, x2, y2) 'Вызов ф-циивыч-я дл.отр. B = ДлинаОтрезка(x2, y2, x3, y3) C = ДлинаОтрезка(x3, y3, x1, y1) P = (A + B + C) Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) EndSub PrivateSub Button1_Click(sender AsObject, _ e As EventArgs) Handles Button1.Click Dim x1, x2, x3, y1, y2, y3, Пер, ПлоAsSingle x1 = vvod(TextBox1) : y1 = vvod(TextBox2) x2 = vvod(TextBox3) : y2 = vvod(TextBox4) x3 = vvod(TextBox5) : y3 = vvod(TextBox6) PS(x1, y1, x2, y2, x3, y3, Пер, Пло) vivod(Пер, TextBox7) : vivod(Пло, TextBox8) EndSub PrivateSub Button2_Click(sender AsObject, _ e AsEventArgs) Handles Button2.Click End EndSub EndClass |
Рис. 4.3.7-9. Программный код Проект 3.4
4.4) Результаты выполнения проекта Проект 3.4:
Результаты выполнения проектаприведены на рис. 4.3.7-10:
Рис. 4.3.7-10. Результаты выполнения проекта Проект 3.4
4.5) Доказательство правильности результата:
A = = 2.82843B = = 2
C = = 2 Р = А + В + С = 6.828427
Рр = Р/2 = 3.414213S= = 2
4.3.7.6. Контрольные вопросы
1)Какой алгоритм называется линейным?
2)В чем отличие передачи результатов выполнения функций и процедур?
3)Доказывает ли получение правдоподобного результата правильность программы?
4)Какие ошибки могут остаться не выявленными, если не провести проверку (просмотр, прокрутку) программы?
5)Чем тестирование программы отличается от её отладки?
6)Можно ли с помощью тестирования доказать правильность программы?
7)Назовите основные этапы процесса тестирования.
8)В чём отличие синтаксических ошибок от семантических?
9)О чём свидетельствует отсутствие сообщений машины о синтаксических ошибках?
10)Какие разновидности ошибок транслятор не в состоянии обнаружить?
11)Что такое программа?
12)На каком этапе происходит поиск и устранение ошибок в программе?
13)Что такое система программирования?
14)Что такое процедура?
15)Какими преимуществами обладает программа, имеющая процедуры?
16)Какие средства процедурного программирования имеются в языке VB?
17)Каким образом происходит обмен данными между отдельными процедурами программы?
18)Что такое фактические и формальные параметры?
19)Каким образом передать в качестве параметра: константу, переменную, выражение?
20)Как используются глобальные переменные?
21)Как используются локальные переменные?
22)Что происходит при вызове процедуры?
23)Каким образом параметры могут передаваться в процедуру?
24)Какие параметры передаются по значению?
25)Какие параметры передаются по адресу?
26)Что относится к средствам процедурного программирования?
27)Что является результатом выполнения функции?
28)Каким образом надо объявить отдельные переменные, чтобы внутри функции они были локальными?
29)Какой оператор используется для досрочного выхода из функции?
30)Что контролируется при вызове функций и процедур?
31)Как необходимо объявить формальные параметры, чтобы передать параметр-переменную по значению?
32)Как необходимо объявить формальные параметры, чтобы передать параметр-переменную по адресу?
33)Каким образом осуществляется вызов процедуры-функции из вызывающей программы?
34)Что может быть результатом выполнения процедуры?
35)Какой оператор используется для досрочного выхода из процедуры?
36)Где могут находиться описания функций и процедур?
37)Где будет доступна переменная, объявленная с помощью оператора Public?
38)Где может находиться оператор Private?
39)Какие значения имеют переменные в начале программы?
40)Для чего описываются (определяются) процедуры и функции?
41)Как осуществляется вызов процедур?
42)Как осуществляется вызов функций?
43)В чем заключается принцип процедурного программирования?
44)Какие типы процедур существуют в VB .NET?
45)Напишите синтаксис Sub-процедуры, каков синтаксис списка параметров?