Значение дирекционного угла в градусах, минутах и секундах дают, соответственно, значения переменных ?????m, ?s.
1.2 Постановка задачи
Даны координаты 2-х точек х и у. Определить дирекционный угол прямой ху.
1.3 Исходные данные
Вариант 5
A)
B)
1.4 Блок-схема алгоритма
Процедура «PerevodRadDeg» предназначена для перевода используемых значений углов из радиан в градусы.
1.5. Текст программы
А) Файл исходных данных
Задача А
Точка 1.
Координата X:
4608.35
Координата Y:
4159.05
Точка 2.
5267.01
2501.18
Задача В
4299.05
10859.16
ТОчка 2.
2727.40
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,Y2); {чтение координаты Y2 из файла}
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); {вывод полученных приращений на экран}
end;
r:=arctan(abs(dY/dX)); {вычисление румба}
Writeln('Velichina rumba: ',r:6:3); {вывод румба на экран}
Writeln(output,'Velichina rumba: ',r:6:3); {вывод румба в файл}
If (dX>0) and (dY>0) then Begin {вычисление дирекционного угла в зависимости от знаков приращений}
DirRad:=r;
Writeln('Rumb I chetverti');
Writeln(output,'Rumb I chetverti');
If (dX<0) and (dY>0) then Begin
DirRad:=Pi-r;
Writeln('Rumb II chetverti');Writeln;
Writeln(output,'Rumb II chetverti');Writeln(output);
If (dX<0) and (dY<0) then Begin
DirRad:=Pi+r;
Writeln('Rumb III chetverti');Writeln;
Writeln(output,'Rumb III chetverti');Writeln(output);
If (dX>0) and (dY<0) then Begin
DirRad:=2*Pi-r;
Writeln('Rumb IV chetverti');Writeln;
Writeln(output,'Rumb IV chetveri');Writeln(output);
PerevodRadDeg(DirRad); {перевод дирекционного угла из радиан в градусы с использованием подпрограммы}
S:=sqrt((sqr(dX)+sqr(dY))); {вычисление горизонтального проложения}
Writeln('Gorizontalnoe prolodgenie: ',S:6:3); {вывод горизонтального проложения на экран}
Writeln(output,'Gorizontalnoe prokodgenie: ',S:6:3); {вывод горизонтального проложения в файл}
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