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

Значение дирекционного угла в градусах, минутах и секундах дают, соответственно, значения переменных ?????m, ?s.

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

Даны координаты 2-х точек х и у. Определить дирекционный угол прямой ху.

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

Вариант 5

A)

B)

1.4 Блок-схема алгоритма

Процедура «PerevodRadDeg» предназначена для перевода используемых значений углов из радиан в градусы.

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

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

Задача А

Точка 1.

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

4608.35

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

4159.05

Точка 2.

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

5267.01

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

2501.18

Задача В

Точка 1.

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

4299.05

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

10859.16

ТОчка 2.

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

2727.40

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

10590.88

Program Zadacha_1;

Uses CRT; {подключение библиотеки CRT}

Var i,j,k:integer; {объявляем тип переменных}

X1,X2,Y1,Y2,dX,dY,r,DirRad,S,UgolDeg,UgolMinPromedg,DirDeg,DirMin,DirSec:real;

input,output:text;

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

Var DirDeg,DirMin,DirSec,UgolMinPromedg,UgolDeg:real; {объявляем тип переменных, используемых в процедуре}

Begin

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

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

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

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

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

Writeln(DirDeg:3:0,' gradusov',DirMin:3:0,' minut',DirSec:3:0,' secund');Writeln; {выводим полученный результат на экран}

Writeln(output,DirDeg:3:0,' gradusov',DirMin:3:0,' minut',DirSec:3:0,' secund');{выводим полученный результат в файл}

Writeln(output);

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

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

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

Assign(input,'dano.txt'); {связывание файла исходных данных с именем}

Assign(output,'rezultat.txt'); {связывание файла выходных данных с именем}

Reset(input); {объвление файла для чтения исходных значений}

Rewrite(output); {объявление файла для записи полученных результатов}

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б), то исходные данные являются избыточными, т.к. для определения искомых координат точки Р достаточно знать координаты и углы двух точек одного треугольника. Но в инструкции по выполнению геодезических работ требуют, чтобы координаты точки Р определялись как минимум из двух треугольников.

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.