Пример курсовой работы по Delphi (Кафедра)
.pdf11
a) Если дирекционный угол ( ВМ ) ближе к 0° или 180°, ис- пользуем формулы:
X - XB = |
|
S1 |
= |
|
S2 |
, |
(1.7) |
|
+ a2 |
|
+ a2 |
||||
1 |
1 |
|
|
где S1 и S2 - расстояние, вычисляемые по формулам:
S = a ×(Y - Y ) + (X - X |
|
) ü |
(1.8) |
||
1 |
1 B |
1 |
B |
ý |
|
S2 = a ×(Y2 - YB ) + (X2 - XB )þ |
|
Исходя из формул (1.7) и (1.8) получим координаты точки М:
ü
ý. (1.9)
Y = YB + a ×(X - XB )þ
b) Если дирекционный угол ближе к 90° или 270°, используем формулы:
Y - Y |
= |
|
S3 |
= |
|
S4 |
(1.10) |
|
+ c2 |
|
+ c2 |
||||
B |
1 |
1 |
|
где S3 и S4 - расстояние, вычисляемые по формулам:
S = c ×(X - X |
|
) + (Y - Y ) ü |
(1.11) |
|
3 |
1 |
B |
1 B ý |
|
S4 = c ×(X2 - XB ) + (Y2 - YB )þ |
|
Исходя из формул (1.10) и (1.11) получим координаты точки М:
X = X |
|
+ c ×(Y - Y )ü |
(1.12) |
|
B |
B ý |
|
Y = YB + (Y - YB ) þ |
|
Заключительный контроль решения задачи выполняется обычным пу- тем, т. е. либо находят координаты определяемого пункта М еще раз, при-
PDF created with pdfFactory Pro trial version www.pdffactory.com
12
влекая для этого четвертый исходный пункт D и угол β3 (рис.1.1), либо вы-
числяют значение угла β3, как разность дирекционных углов соответст-
вующих направлений, и сравнивают его с измеренной величиной.
В нашем случае заключительный контроль выполняется по формулам:
βвыч. = α |
MD |
− α |
MC |
(1.13) |
3 |
|
|
bизм3 . - bвыч3 |
|
= Db £ 3× m¢β¢, |
(1.14) |
|
где m′β′ - средняя квадратическая ошибка измерения углов β1
αMD , αMC - дирекционные углы направлений MD, MC соответст-
венно, которые можно вычислить по формулам:
tg(aMD ) = |
YD − Y |
и tg(aMC ) = |
YC − Y |
(1.15) |
|
XC - X |
|||||
|
XD - X |
|
|
PDF created with pdfFactory Pro trial version www.pdffactory.com
13
2 АЛГОРИТМЫ ДЛЯ ПРОГРАММЫ
Для разработки программы был изучен математический аппарат формул (1.1-1.15) на решение обратной однократной засечки. В результате весь вычис- лительный процесс был поделен на ряд процедур и функций:
−перевод угла из градусов в радианы;
−перевод угла из радиан в градусы;
−вычисление горизонтального проложения и дирекционного угла через координаты двух точек;
−вычисление координат вспомогательных точек в схеме Ю. Рандяр-
ва;
−вычисление координат определяемой точки, контроли вычислений. Кроме подпрограмм, касающихся вычислений поставленной задачи в ра-
боте рекомендовано рассмотреть еще и такие процессы:
−проверка на ввод числа вещественного типа;
−проверка на ввод угла в градусах;
−проверка на ввод угла в минутах и секундах;
−рисовка схемы угловой засечки по координатам;
−увеличение, уменьшение графического представления схемы;
−открытие формы на чтение и ввод новых исходных данных.
Так как многие из этих процедур содержат 2-3 оператора, то блок-схемы к ним составлять не требуется. Однако некоторые задачи имеют сложный вы- числительный аппарат. Рассмотрим такие процедуры.
2.1 Блок-схема вычисления дирекционного угла
На рис. 2.1 представлена блок-схема вычисления дирекционного угла по координатам двух точек.
PDF created with pdfFactory Pro trial version www.pdffactory.com
14
Функция вычисления
дирекционного угла
DIR_UG (XA,YA,XB,YB)
|
|
НАЧАЛО |
|
|
|
|
|
XA,XB,YA,YB |
|
|
|
|
|
dx=XB-XA |
|
|
|
|
|
dy=YB-YA |
|
|
|
|
Да |
XB-XA=0 |
|
|
|
|
|
|
|
|
|
Да |
dx=0 |
Нет |
|
|
|
|
UG=arctan dy/dx |
|
|
|
|
DIR_UG=0 |
Нет |
|
|
|
|
|
|
|
|
||
Нет |
|
Нет |
|
|
|
dy>0 |
dx>0 |
|
|
||
|
|
|
Нет |
||
|
|
Да |
dy=0 |
||
DIR_UG=3p/2Да |
|
||||
Нет |
|
Нет |
|
||
|
DIR_UG=p/2 |
dy=0 |
Да |
dy>0 |
|
|
|
|
|||
|
Да |
|
|
Да |
|
|
|
DIR_UG=p |
|||
|
|
|
DIR_UG=p-çUGç |
||
Нет |
dy>0 |
DIR_UG=0 |
|
|
|
|
|
|
|
||
|
Да |
|
|
DIR_UG=p+çUGç |
|
|
|
|
|
||
|
DIR_UG=UG |
|
|
|
|
DIR_UG=2p-çUGç |
|
|
|
|
DIR_UG
КОНЕЦ
Рисунок 2.1 – Блок-схема процедуры вычисления дирекционного угла
PDF created with pdfFactory Pro trial version www.pdffactory.com
15
2.2 Алгоритм решения задачи
На рис.2.2 представлена блок-схема решения обратной однократной гео-
дезической засечки.
НАЧАЛО
xa,ya,xb,yb,xc,yc,xd,yd,
deg1,min1,sec1,deg2,mi
n2,sec2,deg3,min3,sec3
Вычисления по формуле 1.1 X_Y(xa,ya,xb,yb,deg 1,min1,sec1,x_1,y_1)
X_Y2(xb,yb,xc,yc,deg2,
min2,sec2,x_2,y_2)
b1=ctg(deg1,min1,sec1)
b2=ctg(deg2,min2,sec2)
Вычисления по формулам1.5-1.6 a=tg_bm(x_1,y_1,x_2, y_2)
c=ctg_bm(x_1,y_1,x_2, y_2)
Вычисления по формулам1.8 S1=S(x_1,y_1,xb,yb,a)
Процедура OnClick кнопки
вычисления
А
S2=S(x_2,y_2,xb,yb,a)
Вычисление координат т. М по формуле1.9 X_Y_m(S1,xb,yb,a,xm,
ym)
Б
А
Рисунок 2.2 – Блок-Схема решения обратной засечки по формулам Ю.Рандярва, Лист 1
PDF created with pdfFactory Pro trial version www.pdffactory.com
Б
Вычисление дирекционного угла в радианах направления
MD ug_md=DIR_UG(xm,ym, xd,yd)
Перевод угла из радиан в градусы rad_deg(ug,md,degk,min k,seck)
Вычисления дирекционного угла в радианах направления МС ug_mc=DIR_UG(xm, ym,xc,yc)
Перевод угла из радиан в градусы rad_deg(ug,mс,degk,mink ,seck)
Вычисление горизонтального угла beta3
НЕТ
ug_md<ug_mc
ДA
beta3=2*pi+ug_mdug_mc
beta3=ug_md-ug_mc
В
16
В
Перевод угла из радиан в градусы b3=deg_rad(deg3,min3, sec3)
Вычисление разности вычисленного и измеренного угла beta3
в радианах b3=abs(b3-beta3)
Перевод угла из радиан в градусы rad_deg(beta3,degk,mink, seck)
xa,ya,xb,yb,xc,yc,xd,yd,xm,ym
КОНЕЦ
Рисунок 2.2 – Блок-Схема решения обратной засечки по формулам Ю.Рандярва, Лист 2
PDF created with pdfFactory Pro trial version www.pdffactory.com
17
В блок-схеме (рис.2.2) применен ряд пользовательских процедур и функ- ций. Так, например, имеется процедура перевода угла из радианной меры в гра- дусную (см. рис.2.3).
Процедура перевода угла из
радиан в градусы
НАЧАЛО
UG
UG:=UG*180/pi
deg:=trunc(UG)
min:=trunc((UGdeg)*60)
sec:=round(((UG- deg)*60-min)*60)
deg, min, sec
КОНЕЦ
Рисунок 2.3 – Блок-схема процедуры перевода угла из радиан в градусы
На рис.2.4 приведена блок-схема процедуры контроля правильности вычислений (формулы 1.3-1.4).
Блок схемы остальных подпрограмм не приводятся из-за простоты действий, заложенных в них.
PDF created with pdfFactory Pro trial version www.pdffactory.com
18
Процедура контроля
правильности вычислений
НАЧАЛО
deg1, min1, sec1, deg2, min2, sec2, x1,y1,x2,y2,xa,ya, xb,yb,xc,yc
zn1:=1+sqr(ctg(deg1,
min1,sec1))
zn1:=1+sqr(ctg(deg1,
min1,sec1))
xb_xa:=(ctg(deg1, min1,sec1)*(y1- yb)-(x1-xb))/zn1
xc_xb:=(ctg(deg2, min2,sec2)*(y2- yb)+(x2-xb))/zn2
ya_yb:=(ctg(deg1, min1,sec1)*(x1- xb)+(y1-yb))/zn1
yc_yb:=(ctg(deg2, min2,sec2)*(x2- xb)-(y2-yb))/zn2
xb_xa,ya_yb,xc _xb,yb_yc
КОНЕЦ
Рисунок 2.4 – Блок-схема процедуры контроля правильности вычисле-
ний
PDF created with pdfFactory Pro trial version www.pdffactory.com
19
3 РАЗРАБОТКА ИНТЕРФЕЙСА
Согласно заданию, интерфейс должен быть представлен в виде 5-6 свя- занных форм, т.е. должен быть обеспечен многооконный режим работы про- граммы (см. рис.3.1).
Рисунок 3.1- Структура программы
После анализа поставленной задачи и рекомендуемого в задании варианта интерфейса в работе предлагается следующая структура программы:
− форма заставки
PDF created with pdfFactory Pro trial version www.pdffactory.com
20
−главная форма (рис.3.2):
−форма исходных данных (рис.3.3);
−форма вычислений (рис.3.4);
−форма результатов вычислений (рис.3.5);
−форма графики (рис.3.6);
−форма помощи;
−форма сведений о программе.
При загрузке программы рекомендуется появление заставки, которая бу- дет активна 1500 мсек, после чего на экран загрузится главная форма.
Рисунок 3.2 – Главная форма программы
После загрузки главной форма программы возможно выполнение сле- дующих команд меню:
PDF created with pdfFactory Pro trial version www.pdffactory.com