на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Использование современной компьютерной техники и программного обеспечения для решения прикладных задач в области геодезических измерений
p align="left">Readln(input);Readln(input); {Пропуск строк в файле исх.значений}

Readln(input,X1); {чтение координаты X1 из файла}

Readln(input); {Пропуск строк в файле исх.значений}

readln(input,Y1); {чтение координаты Y1 из файла}

Readln(input);Readln(input);Readln(input); {Пропуск строк в файле исх.значений}

Readln(input,X2); {чтение координаты X2 из файла}

Readln(input); {Пропуск строк в файле исх.значений}

Readln(input,Y2); {чтение координаты Y2 из файла}

Begin

dX:=X2-X1;dY:=Y2-Y1; {вычисление приращений}

Writeln('Priraschenie po abscisse: ',dX:6:3); {вывод полученных приращение на экран}

Writeln; {пропуск пустой строки}

Writeln('Priraschenie po ordinate: ',dY:6:3); {вывод полученных приращений на экран}

writeln; {пропуск пустой строки}

Writeln(output,'Priraschenie po abscisse: ',dX:6:3);{вывод полученных приращений в файл}

Writeln(output); {пропуск пустой строки в файле}

Writeln(output,'Priraschenie po ordinate: ',dY:6:3); {вывод полученных приращений на экран}

Writeln(output); {пропуск пустой строки в файле}

end;

Begin

r:=arctan(abs(dY/dX)); {вычисление румба}

Writeln('Velichina rumba: ',r:6:3); {вывод румба на экран}

Writeln; {пропуск пустой строки}

Writeln(output,'Velichina rumba: ',r:6:3); {вывод румба в файл}

Writeln(output); {пропуск пустой строки в файле}

end;

Begin

If (dX>0) and (dY>0) then Begin {вычисление дирекционного угла в зависимости от знаков приращений}

DirRad:=r;

Writeln('Rumb I chetverti');

Writeln(output,'Rumb I chetverti');

end;

If (dX<0) and (dY>0) then Begin

DirRad:=Pi-r;

Writeln('Rumb II chetverti');Writeln;

Writeln(output,'Rumb II chetverti');Writeln(output);

end;

If (dX<0) and (dY<0) then Begin

DirRad:=Pi+r;

Writeln('Rumb III chetverti');Writeln;

Writeln(output,'Rumb III chetverti');Writeln(output);

end;

If (dX>0) and (dY<0) then Begin

DirRad:=2*Pi-r;

Writeln('Rumb IV chetverti');Writeln;

Writeln(output,'Rumb IV chetveri');Writeln(output);

end;

end;

PerevodRadDeg(DirRad); {перевод дирекционного угла из радиан в градусы с использованием подпрограммы}

Begin

S:=sqrt((sqr(dX)+sqr(dY))); {вычисление горизонтального проложения}

Writeln('Gorizontalnoe prolodgenie: ',S:6:3); {вывод горизонтального проложения на экран}

Writeln; {пропуск пустой строки}

Writeln(output,'Gorizontalnoe prokodgenie: ',S:6:3); {вывод горизонтального проложения в файл}

Writeln(output); {пропуск пустой строки в файле}

end;

writeln;writeln;writeln;writeln; {добавление личной подписи}

writeln(output);writeln(output);writeln(output);writeln(output);

Writeln('Made by Moiseev Andrei, GG-09-2');

Writeln('All rights are reserved');

Writeln(output,'Made by Moiseev Andrei, GG-09-2');

Writeln(output,'All rights are reserved');

Close(input); {закрытие файла исходных значений}

Close(output); {закрытие файла полученных результатов}

Readkey; {добавление временной задержки}

end.{конец программы}

1.6 Результаты работы программы

А)

Priraschenie po abscisse: 658.660

Priraschenie po ordinate: -1657.870

Velichina rumba: 1.193

Rumb IV chetveri

291 gradusov 40 minut 3 secund

Gorizontalnoe prolodgenie: 1783.919

В)

Priraschenie po abscisse: -1571.650

Priraschenie po ordinate: -268.280

Velichina rumba: 0.169

Rumb III chetverti

189 gradusov 41 minut 13 secund

Gorizontalnoe prolodgenie: 1594.383

Рис.1.3 Результат работы программы

1.7. Проверка в MS Excel

Рис. 1.4 Excel-расчеты

Рис. 1.5 Проверка в MS Excel

Рис. 1.6 Проверка в MS Excel

Рис.1.7 Проведение промежуточных вычислений при проверке

1.8. Проверка в MathCad

Рис. 1.8 Расчеты в мат.пакете MathCad

1.9 Анализ результатов

Для решения поставленной задачи были использованы следующие приложения: математический пакет MathCad, табличный редактор MS Excel и язык программирования Turbo Pascal. Сравнивая полученные результаты, можно сделать вывод о правильности работы программы.

2. Прямая угловая засечка

2.1 Теоретические сведения

Прямая угловая (геодезическая) засечка - такое название носит способ определения координат точки местности Р , если на плоскости дана система точек геодезической сети с известными координатами и на этих точках измерены горизонтальные углы (рис.2.1.).

Р

Р

Рис. 2.1. Схемы прямой геодезической засечки.

Большое значение имеет величина угла при вершине треугольника - угла засечки ?, от которого во многом зависит точность определения координат. В инструкциях по проведению геодезической съемки указывается, что угол засечки не должен быть меньше 30о и больше 150о.

Для определения координат точки Р можно использовать формулы Юнга или формулы Гаусса. Чаще используются формулы Юнга, которые еще называют формулами котангенсов внутренних углов треугольника.

(2.1)

(2.2)

Широко используются и формулы Гаусса. В этом случае исходными данными являются не только координаты пунктов А1 и А2 и измеренные горизонтальные углы ??????, но и вычисленный дирекционный угол ??стороны А1 А2.

(2.3)

(2.4)

Если пунктов геодезической сети более двух (рис.2.1б), то исходные данные являются избыточными, т.к. для определения искомых координат точки Р достаточно знать координаты и углы двух точек одного треугольника. Но в инструкции по выполнению геодезических работ требуют, чтобы координаты точки Р определялись как минимум из двух треугольников.

Избыточность исходных данных позволяет повысить надежность определения окончательных значений искомых величин за счет применения правила арифметического среднего.

(2.5)

(2.6)

где XP k , YP k координаты, определенные из k-того треугольника.

2.2 Постановка задачи

Определить координаты точки P по трем точкам с известными координатами и 4 углам. (2 треугольникам)

2.3 Исходные данные

Табл. 2.2Исходные данные

2.5 Текст программы

Файл исходных данных

Пункт №1:

Координата X:

5951.77

Координата Y:

5440.33

Горизонтальный угол B1:

Градусы

94

Минуты

58

Секунды

38

-------------------------------

Пункт №2:

Координата X:

5648.54

Координата Y:

5101.47

Горизонтальный угол B1:

Градусы

56

Минуты

16

Секунды

35

Горизонтальный угол B2:

Градусы

40

Минуты

31

Секунды

5

-------------------------------

Пункт №3:

Координата X:

5177.15

Координата Y:

5431.80

Горизонтальный угол B2:

Градусы

68

Минуты

1

Секунды

58

-------------------------------

Program Zadacha_2;

Uses CRT;

Var

GB1P1,MB1P1,SB1P1,GB1P2,MB1P2,SB1P2,GB2P2,MB2P2,SB2P2,GB2P3,MB2P3,SB2P3:integer;

x1,y1,x2,y2,x3,y3:real;

Dx12,Dy12,Dx23,Dy23,R12,R23,Alfa12,Alfa23:real;

AlfaG12,AlfaGr12,AlfaG23,AlfaGr23,AlfaM12,AlfaMi12,AlfaM23,AlfaMi23,AlfaS23,AlfaS12:real;

RB1P1,RB1P2,RB2P2,RB2P3,xP12,yP12,xP23,yP23,SRx,SRy:real;

t1,t2:text;

Procedure Gradus(Var Alfa12:real); {подпрограмма для перевода дирекционного угла из радиан в градусы}

Var AlfaM12,AlfaMi12,AlfaS12,AlfaGr12:real; {объявляем тип переменных, используемых в процедуре}

Begin

AlfaG12:=(180*Alfa12)/Pi; {переводим угол в градусы}

AlfaGr12:=int(AlfaG12); {выделяем целое количество градусов из полученного угла}

AlfaM12:=60*(AlfaG12-AlfaGr12); {промежуточное вычисление}

AlfaMi12:=int(AlfaM12); {выделяем целое количество минут}

AlfaS12:=int(60*(AlfaM12-AlfaMi12));{выделяем целое количество секунд}

Writeln('Дирекционный угол равен'); {вывод на экран надписи}

Writeln(t2,'Дирекционный угол равен:'); {вывод в файл надписи}

Writeln(AlfaGr12:3:0,'градусов',AlfaMi12:3:0,'минут',AlfaS12:3:0,'секунд'); {вывод полученного значения на экран}

writeln; {пропуск пустой строки}

Writeln(t2,AlfaGr12:3:0,' градусов',AlfaMi12:3:0,' минут',AlfaS12:3:0,' секунд'); {вывод полученного значения в файл}

writeln(t2);

end; {завершение подпрограммы}

Begin {начало основной программы}

ClrScr; {очистка экрана}

Assign (t1,'in.txt'); {связывание переменной с файлом}

Assign (t2,'out.txt');{связывание переменной с файлом}

Reset (t1); {обозначение файла для чтения}

Rewrite (t2); {обозначение файла для записи}

{чтение из фаила исходных значений}

Readln(t1);

Readln(t1);

Readln(t1,x1);

Readln(t1);

Readln(t1,y1);

Readln(t1);

Readln(t1);

Readln(t1,GB1P1);

Readln(t1);

Readln(t1,MB1P1);

Readln(t1);

Readln(t1,SB1P1);

Readln(t1);

Readln(t1);

Readln(t1);

Readln(t1,x2);

Readln(t1);

Readln(t1,y2);

Readln(t1);

Readln(t1);

Readln(t1,GB1P2);

Readln(t1);

Readln(t1,MB1P2);

Readln(t1);

Readln(t1,SB1P2);

Readln(t1);

Readln(t1);

Readln(t1,GB2P2);

Readln(t1);

Readln(t1,MB2P2);

Readln(t1);

Readln(t1,SB2P2);

Readln(t1);

Readln(t1);

Readln(t1);

Readln(t1,x3);

Readln(t1);

Readln(t1,y3);

Readln(t1);

Readln(t1);

Readln(t1,GB2P3);

Readln(t1);

Readln(t1,MB2P3);

Readln(t1);

Readln(t1,SB2P3);

Begin

{определение приращений координат}

Dy12:=y2-y1;{для Y}

Dx12:=x2-x1;{для X}

Dy23:=y3-y2;{для Y}

Dx23:=x3-x2;{для X}

{проведение контроля полученных значений}

Writeln('Приращения');{вывод на экран надписи "Приращения"}

Writeln(t2,'Приращения');{вывод в фаил надписи "Приращения"}

Writeln('По оси X для 1-2');{вывод на экран надписи "По оси X"}

Writeln(t2,'По оси X для 1-2');{вывод в фаил надписи "По оси X"}

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.