Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пример курсовой работы по Delphi (Кафедра)

.pdf
Скачиваний:
70
Добавлен:
06.02.2016
Размер:
870.51 Кб
Скачать
X = XB + (X - XB )

11

a) Если дирекционный угол ( ВМ ) ближе к или 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