Раз-04-Инф-210700 / ЛП-Раз-4-Инф-210700 / ЛП-4-03
.pdf
4.3.6. Пример выполнения второй части задания
1. Тема и название работы:
Структура VB-программ и процедуры. Средства программирования алгоритмов линейной структуры – Вычисление периметра и площади треугольника по заданным координатам трех его вершин.
2. Задание на разработку проекта и вариант задания:
Создать приложение с именем Проект-4-3-Лаб, для вычисления периметра и площади треугольника по заданным координатам трех его вершин. То есть,
Задано: x1, y1; x2, y2; x3, y3– координаты вершин.
Требуется определить: Р – периметр треугольника, S – площадь треугольника.
Ограничения на значения исходных данных и их соотношения:
А>0, В>0, C>0, А+В>С, А+C>В, В+C>А одновременно.
3. Формализация и уточнение задания:
Для решения задачи существуют известные формулы:
Р = А + В + С;
S= 
A= 
(x1 − x2)2 + (y1 − y2)2 ;
B= 
(x3 − x2)2 + (y3 − y2)2 ;
C = .
где Рр = Р/2– полупериметр; A, B, C– стороны треугольника.
В соответствии с требованиями задания разобьем решение задачи на несколько отдельных задач и создадим процедуры пользователя, реализующие эти задачи:
•процедуру-функцию Function ДлинаОтрезка( ),вычисляющую длину отрезка по координатам двух точек;
•процедуру-подпрограмму Sub PS( ), вычисляющую периметр и площадь треугольника;
•процедуру-функцию Function vvod( ) для ввода действительного числа из объекта типа TextBox;
•процедуру-подпрограмму Sub vivod( ) длявывода действительного числа в объект типа TextBox.
Выбор типа процедуры(Function или Sub) определяется следующими критериями. Процедуры-функции Function предназначены для вычислений и могут быть частью выражения; результатом выполнения процедуры - Function является значение какой-либо одной величины числового, строкового или логического типа, которое функция возвращает или через свое имя, или оператором RETURN. Поэтому ДлинаОтрезка() и vvod() – это процедуры типа Function. Если же процедура должна вычислить и возвратить несколько величин (как PS() ), или просто выполнить определенные действия,не возвращая никаких значений(как vivod() ), то такую процедуру следует оформить как процедуру-Sub.
Тема4.3. ЛР«СтруктураVB-программ и процедуры» |
Страница 44 |
4.Разработка приложения
4.1.Разработать графический интерфейс пользователя
Форма приложения может иметь вид, представленный на рис. 4.3-6.
Рис. 4.3-6
4.2. Установка свойств объектов
Свойства всех объектов сведем в таблицу 4.3-3.
|
|
|
|
|
|
Таблица 4.3-3 |
|
|
Объект |
|
Имя объекта |
Свойство |
|
Значение свойства |
|
|
Форма |
|
Form1 |
Name |
|
Form1 |
|
|
|
|
|
Text |
|
Тема 4.3.Вычисление периметра и |
|
|
|
|
|
|
|
площади треугольника. |
|
|
|
|
|
|
|
|
|
|
|
|
|
BackColor (Palette) |
|
Светло-зеленый |
|
|
Метка |
|
Label1 |
Text |
|
Введите значения … |
|
|
Метка |
|
Label2 |
Text |
|
X1 |
|
|
Метка |
|
Label3 |
Text |
|
Y1 |
|
|
Метка |
|
Label4 |
Text |
|
X2 |
|
|
Метка |
|
Label7 |
Text |
|
Y2 |
|
|
Метка |
|
Label8 |
Text |
|
X3 |
|
|
Метка |
|
Label9 |
Text |
|
Y3 |
|
|
Выделитьметки |
|
Label2 – |
TextAlign |
|
2 - Center |
|
|
Label4, Label7– Label9 |
BackStyle |
|
0 - Transparent |
|
||
|
(клавиша <Shift> + мышь) и |
Font |
|
Arial, жирный, 12 |
|
||
|
установить одинаковые для |
ForeColor |
|
Черный |
|
||
|
всехметок свойства |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Метка |
|
Label5 |
Text |
|
Периметр треугольника |
|
|
Метка |
|
Label6 |
Text |
|
Площадь треугольника |
|
|
Выделить метки Label1, |
TextAlign |
|
2 - Center |
|
||
|
Label5, Label6 и установить |
|
|
|
|||
|
BackColor (Palette) |
Светло-серый |
|
||||
|
одинаковые для всех меток |
Font |
|
Arial, жирный курсив, 12 |
|
||
|
свойства |
|
|
ForeColor |
|
Темно-зеленый |
|
|
Текстовое |
|
TextBox1 |
Name |
|
TextBox1 |
|
|
поле |
|
|
Text |
|
Пусто (стереть значение, |
|
|
|
|
|
|
|
установленное “по умолчанию”). |
|
|
Текстовое |
|
TextBox2 |
Name |
|
TextBox2 |
|
|
поле |
|
|
Text |
|
Пусто |
|
|
Текстовое |
|
TextBox3 |
Name |
|
TextBox3 |
|
|
поле |
|
|
Text |
|
Пусто |
|
Тема4.3. ЛР«СтруктураVB-программ |
и процедуры» |
|
|
Страница 45 |
|||
|
Текстовое |
|
TextBox4 |
Name |
|
TextBox4 |
|
|
|
|
|
|
|
|
|
|
поле |
|
|
|
Text |
|
Пусто |
|
Текстовое |
|
TextBox5 |
|
Name |
|
TextBox5 |
|
поле |
|
|
|
Text |
|
Пусто |
|
Выделить |
|
текстовые поля |
|
TextAlign |
|
2 — Center |
|
TextBox1-TextBox8и устано- |
|
|
|
|
||
|
|
|
|
|
Font |
|
Arial, обычный, 12 |
|
вить одинак. свойства |
||||||
|
Кнопка |
|
Button1 |
|
Name |
|
Button1 |
|
|
|
|
|
Text |
|
ВЫЧИСЛИТЬ |
|
Кнопка |
|
Button2 |
|
Name |
|
Button2 |
|
|
|
|
|
Text |
|
ЗАВЕРШИТЬ |
|
Выделить |
кнопки Button1 и |
|
Font |
|
Arial, жирный, 12 |
|
|
Button2и установить |
|
|
|
|
||
|
одинаковые свойства |
|
|
|
|
||
|
|
|
|
|
|
|
|
4.3. Разработка схемы алгоритма
|
|
|
|
|
|
Процедура функция |
|
|
ДлОтр( ) |
|
|
|
ДлОтр(x1, y1, x2, y2) |
|
|
|
|
|
|
Входные параметры: |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1, y1, x2, y2 |
|
|
X=(x2-x1)2 |
|
|
|
Возвращаемое значение |
|
|
|
Y=(y2-y1)2 |
|
|
|
|
||
|
|
|
|
|
|
ДлОтр |
|
|
|
|
|
|
|
|
|
|
L=Sqrt(X+Y) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ДлОтр=L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
|
|
|
|
|
|
ДлОтр |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4.3-7
PS( )
A=ДлОтр(х1,y1,x2,y2)
B=ДлОтр(х2,y2,x3,y3)
C=ДлОтр(х3,y3,x1,y1)
P=A+B+C
Pp=P/2
t1=Pp-A t2=Pp-B t3=Pp-C
S=Sqrt(Pp*t1*t2
*t3)
Конец
PS
Рис. 4.3.8
Процедура Sub
PS(х1,y1,x2,y2,x3,y3, P,S)
Входные параметры: x1, y1, x2, y2, x3, y3
Выходные параметры: P, S
4.4. Написание программного кода с использованием процедур
Программный код представлен на рис. 4.3-9.
Option Strict On |
|
Option Explicit On |
|
Imports System.Math |
|
Public Class Form1 |
|
'Функция ввода координаты точки в TextBox |
|
Function vvod(ByVal T As TextBox) As Single |
|
Return CSng(Val(T.Text)) |
|
End Function |
|
'Процедура вывода результата в TextBox |
|
Sub vivod(ByVal Z As Single, ByVal T As TextBox) |
|
T.Text = CStr(Z) |
|
End Sub |
точек |
'Функция вычисления длины отрезка по координатам двух |
|
Тема4.3. ЛР«СтруктураVB-программ и процедуры» |
Страница 46 |
Public Function ДлинаОтрезка(ByVal x1 As Single, _
ByVal y1 As Single, ByVal x2 As Single, _
ByVal y2 As Single) As Single
Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2))
End Function
'Процедура вычисления периметра и площади треугольника
Sub PS(ByVal x1 As Single, ByVal y1 As Single, _
ByVal x2 As Single, ByVal y2 As Single, _
ByVal x3 As Single, ByVal y3 As Single, _
ByRef P As Single, ByRef S As Single)
Dim A, B, C, Pp As Single
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)))
End Sub
'Процедура обработки события нажатия на кнопку Button1 Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim x1 As Single, x2 As Single, x3 As Single
Dim y1 As Single, y2 As Single, y3 As Single
Dim Пер As Single, Пло As Single
x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Пер, Пло)
vivod(Пер, TextBox4) : vivod(Пло, TextBox5) End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
End Class
Рис. 4.3-9
5. Выполнение приложения и получение результатов
Результат приведен на рис. 4.3-10.
.
Рис. 4.3-10
6.Доказательство правильности результата
|
|
|
|
B = |
|
= 2 |
|
A = |
(x1 − x2)2 + (y1 − y2)2 |
= 2.82843 |
(x3 − x2)2 + (y3 − y2)2 |
|
|||
C = |
|
= 2 Р = А + В + С = 6.828427; Рр = Р/2 = |
3.414213 |
||||
S= |
|
|
= 2 |
|
|
|
|
|
. |
|
|
|
|
|
|
Тема4.3. ЛР«СтруктураVB-программ и процедуры» |
Страница 47 |
||||||
4.3.7. Контрольные вопросы по теме «Структура VB-программ, модули и процедуры. Средства программирования алгоритмов линейной структуры»
1.Что представляет собой математическая модель?
2.Какие основные этапы включает в себя решение задач на компьютере?
3.Какие этапы компьютерного решения задач осуществляются без участия компьютера?
4.Что называют математической моделью объекта или явления?
5.Из каких последовательных действий состоит процесс разработки программы?
6.Что называется алгоритмом?
7.Какими основными свойствами должен обладать алгоритм?
8.Какие существуют способы описания алгоритмов?
9.Какими графическими символами принято изображать в схемах алгоритма?
10.Как работает интерпретатор?
11.Как работает компилятор?
12.Какой алгоритм называется линейным?
13.Какой алгоритм называется циклическим?
14.Какой алгоритм называется разветвляющимся?
15.В чем отличие передачи результатов выполнения функций и процедур?
16.Доказывает ли получение правдоподобного результата правильность программы?
17.Какие ошибки могут остаться не выявленными, если не провести проверку (просмотр, прокрутку) программы?
18.Чем тестирование программы отличается от её отладки?
19.Можно ли с помощью тестирования доказать правильность программы?
20.На какой стадии работы над программой вычисляются эталонные результаты тестов?
21.Назовите основные этапы процесса тестирования.
22.В чём отличие синтаксических ошибок от семантических?
23.О чём свидетельствует отсутствие сообщений машины о синтаксических ошибках?
24.Какие разновидности ошибок транслятор не в состоянии обнаружить?
25.Что такое программа?
26.На каком этапе происходит поиск и устранение ошибок в программе?
27.Что такое система программирования?
28.Что такое процедура?
29.Какими преимуществами обладает программа, имеющая процедуры?
30.Какие средства процедурного программирования имеются в языке VB?
31.Каким образом происходит обмен данными между отдельными процедурами программы?
32.Что такое фактические и формальные параметры?
33.Каким образом передать в качестве параметра: константу, переменную, выражение?
34.Как используются глобальные переменные?
35.Как используются локальные переменные?
36.Что называется формальными параметрами?
37.Что называется фактическими параметрами?
38.Что происходит при вызове процедуры?
39.Каким образом параметры могут передаваться в процедуру?
40.Какие параметры передаются по значению?
41.Какие параметры передаются по адресу?
42.Что относится к средствам процедурного программирования?
43.Что является результатом выполнения функции?
44. Каким образом надо объявить отдельные переменные, чтобы внутри функции |
они были |
локальными? |
Страница 48 |
Тема4.3. ЛР«СтруктураVB-программ и процедуры» |
45.Какой оператор используется для досрочного выхода из функции?
46.Что контролируется при вызове функций и процедур?
47.Как необходимо объявить формальные параметры, чтобы передать параметр-переменную по значению?
48.Как необходимо объявить формальные параметры, чтобы передать параметр-переменную по адресу?
49.Каким образом осуществляется вызов процедуры-функции из вызывающей программы?
50.Что может быть результатом выполнения процедуры?
51.Какой оператор используется для досрочного выхода из процедуры?
52.Где могут находиться описания функций и процедур?
53.Где будет доступна переменная, объявленная с помощью оператора Public?
54.Где может находиться оператор Private?
55.Что такое комментарий и правила его записи?
56.Какие значения имеют переменные в начале программы?
57.Для чего описываются (определяются) процедуры и функции?
58.Как осуществляется вызов процедур?
59.Как осуществляется вызов функций?
Перейти кЛП 4.2 ЛП 4.4 Огл.
Тема4.3. ЛР«СтруктураVB-программ и процедуры» |
Страница 49 |
