бесплано рефераты

Разделы

рефераты   Главная
рефераты   Искусство и культура
рефераты   Кибернетика
рефераты   Метрология
рефераты   Микроэкономика
рефераты   Мировая экономика МЭО
рефераты   РЦБ ценные бумаги
рефераты   САПР
рефераты   ТГП
рефераты   Теория вероятностей
рефераты   ТММ
рефераты   Автомобиль и дорога
рефераты   Компьютерные сети
рефераты   Конституционное право
      зарубежныйх стран
рефераты   Конституционное право
      России
рефераты   Краткое содержание
      произведений
рефераты   Криминалистика и
      криминология
рефераты   Военное дело и
      гражданская оборона
рефераты   География и экономическая
      география
рефераты   Геология гидрология и
      геодезия
рефераты   Спорт и туризм
рефераты   Рефераты Физика
рефераты   Физкультура и спорт
рефераты   Философия
рефераты   Финансы
рефераты   Фотография
рефераты   Музыка
рефераты   Авиация и космонавтика
рефераты   Наука и техника
рефераты   Кулинария
рефераты   Культурология
рефераты   Краеведение и этнография
рефераты   Религия и мифология
рефераты   Медицина
рефераты   Сексология
рефераты   Информатика
      программирование
 
 
 

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

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

Федеральное агентство образования и науки Российской Федерации

Санкт-Петербургский государственный горный институт им. Г.В. Плеханова (технический университет)

КУРСОВАЯ РАБОТА

По дисциплине: Информатика .

(наименование учебной дисциплины согласно учебному плану)

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

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

Автор: студент гр. ГГ-09-2 ________________       /Скоропупов М.В./

                                       (подпись)                 (Ф.И.О.)

ОЦЕНКА: _____________

Дата: _________________

ПРОВЕРИЛ

Руководитель проекта _доцент_ ________________        /Косовцева Т. Р./

                             (должность) (подпись)         (Ф.И.О.)

Санкт-Петербург

2010 г


Федеральное агентство по образованию Российской Федерации

Санкт-Петербургский государственный горный институт им Г.В. Плеханова (технический университет)

УТВЕРЖДАЮ

Заведующий кафедрой

___________ /________/

"___"__________2010 г.

Кафедра информатики и вычислительной техники


КУРСОВОЙ ПРОЕКТ / РАБОТА

По дисциплине _____________Информатика______________________

_____________________________________________________________

(наименование учебной дисциплины согласно учебному плану)

ЗАДАНИЕ

Студенту группы         ГГ-09-2                       Скоропупов М.В.

                    (шифр группы)                    (Ф.И.О.)

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

2. Исходные данные к проекту Изложены в методических указаниях

3. Содержание пояснительной записки Пояснительная записка включает в себя задание на выполнение работы, титульный лист, аннотацию, оглавление, введение, собственно текст пояснительной записки, заключение, список используемой .

4. Срок сдачи законченного проекта ______________________________

Руководитель проекта доцент _____________         /Косовцева Т. Р./

                             (должность) (подпись)        (Ф.И.О.)

Дата выдачи задания: _____________________


Аннотация

В данной работе представлено описание решения типовых геодезических задач на основе языка программирования Turbo Pascal 7.0, проверка которых осуществлялась с помощью табличного процессора Microsoft Office Excel 2007 и MathCad 14. Отчёт оформлен в текстовом процессоре Microsoft Office Word 2007.

Страниц 60, рисунков 23, таблиц 3.

The summary

The explanatory note represents the report on course work on a theme: the decision of geodetic problems with the help of programming language Turbo Pascal and tabulared processor Excel and MathCad 14. The report is made out in word-processor Microsoft Word.

Pages 60, figures 23, tables 3.


Оглавление

ВВЕДЕНИЕ

1. ОБРАТНАЯ ГЕОДЕЗИЧЕСКАЯ ЗАДАЧА

1.1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.2 ПОСТАНОВКА ЗАДАЧИ

1.3 ИСХОДНЫЕ ДАННЫЕ

1.4 БЛОК СХЕМА ДЛЯ TURBO PASCAL

1.5 ТЕКСТ ПРОГРАММЫ

1.6 СОДЕРЖАНИЕ ФАИЛА «DANO.TXT»

1.7 РЕЗУЛЬТАТЫ ПРОГРАММЫ

1.8 ТАБЛИЧНЫЕ ВЫЧИСЛЕНИЯ MS EXCEL

1.9 ВЫЧИСЛЕНИЯ В MATHCAD

1.10 АНАЛИЗ

2. ПРЯМАЯ УГЛОВАЯ ЗАСЕЧКА

2.1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

2.2 ПОСТАНОВКА ЗАДАЧИ

2.3 ИСХОДНЫЕ ДАННЫЕ

2.4 АЛГОРИТМ ДЛЯ TURBO PASCAL

2.5 ТЕКСТ ПРОГРАММЫ

2.6 СОДЕРЖАНИЕ ФАИЛА «IN.TXT»

2.7 РЕЗУЛЬТАТЫ ПРОГРАММЫ

2.8 ТАБЛИЧНЫЕ ВЫЧИСЛЕНИЯ В MS EXCEL

2.9 ВЫЧИСЛЕНИЯ В MATHCAD

2.10 АНАЛИЗ

3. ОБРАТНАЯ ГЕОДЕЗИЧЕСКАЯ ЗАСЕЧКА

3.1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

3.2 ПОСТАНОВКА ЗАДАЧИ

3.3 ИСХОДНЫЕ ДАННЫЕ

3.4 АЛГОРИТМ ДЛЯ TURBO PASCAL

3.5 ТЕКСТ ПРОГРАММЫ

3.6 СОДЕРЖАНИЕ ФАИЛА «DATA.TXT»

3.7 РЕЗУЛЬТАТ ПРОГРАММЫ

3.8 ТАБЛИЧНЫЕ ВЫЧИСЛЕНИЯ MS EXCEL

3.9 ВЫЧИСЛЕНИЯ В MATHCAD

3.10 АНАЛИЗ

4. РЕШЕНИЕ СЛАУ МЕТОДОМ ГАУССА

4.1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

4.2 ПОСТАНОВКА ЗАДАЧИ

4.3 ИСХОДНЫЕ ДАННЫЕ

4.4 БЛОК-СХЕМА АЛГОРИТМА

4.5 ТЕКСТ ПРОГРАММЫ

4.6. СОДЕРЖАНИЕ ФАИЛА «CLAY.TXT»

4.7 РЕЗУЛЬТАТЫ РЕШЕНИЯ

4.8 ТАБЛИЧНЫЕ ВЫЧИСЛЕНИЯ MS EXCEL

4.9 ВЫЧИСЛЕНИЯ В MATHCAD

4.10 АНАЛИЗ

ВЫВОД

БИБЛИОГРАФИЧЕСКИЙ СПИСОК


Введение

Камеральная обработка результатов геодезических измерений является одной из важнейших частей процесса по получению координат пунктов геодезической сети.

При камеральной обработке результатов измерений высокоточных геодезических работ объем вычислений становится весьма большим. Так как исполнителем работ является человек, то нельзя полностью гарантировать совершенное отсутствие ошибок.

Камеральная обработка в целом является достаточно легко формализуемым процессом, в связи с этим геодезические вычисления были автоматизированы.

Целью выполнения курсовой работы является закрепление устойчивых навыков работы в средах программирования при решении типовых задач в области геодезии. В частности овладеть основными принципами построения алгоритмов, методами вычислений и их реализации на компьютере, приобрести навыки постановки задач, построения математических моделей при обработке экспериментальных данных и анализ.

Программное обеспечение, такое как StarNet - уравнивание геодезических сетей, Mapsuite - создание инженерно-топографических планов, LEICA Geo Office - обработка геодезических измерений, SiteMaster - автоматизация обмерных работ, GeometricalGeodesy - решение геодезических задач в системе Mathematica, предназначены для решения различных геодезических задач. В данной работе представлено решение аналогичных задач с помощью языка программирования Turbo Pascal, табличного процессора Microsoft Excel 2007 и MathCad 14.

При написании программ на языке Turbo Pascal были использованы операторы:

условный оператор If определяет, что тот или иной оператор должен выполняться лишь в том случае, если справедливо заданное условие.

оператор повтора For используется, если количество повторных выполнений заданной группы операторов известно заранее и составной оператор следует выполнять повторно до тех пор, пока не будут перебраны все значения управляющей переменной.

операция Assign (присваивание имени файла). По синтаксису она состоит из имя файла и переменной типа файлов. Все действия производят над дисковым файлом.

операция Close (закрыть файл). Дисковый файл, назначенный переменной, закрывается и справочник диска обновляется с тем, чтобы в нём в дальнейшем отобразить новые сведения о состоянии файла.

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

В одной из задач выполняются операции над массивами. Массив-структурный тип данных, состоящий из фиксированного количества компонентов, имеющих один и тот же тип, называемый типом компонента, или базовым и базовым типом. Доступ к каждому отдельному компоненту массива обеспечивается путём индексирования элементов массива. Индексы представляют собой целочисленные выражения какого-либо скалярного типа. Индекс заключается в квадратные скобки и записывается вслед за индентификатором массива и его тип называется типом индекса.

Также при написании программ использовались стандартные арифметические функции ( abs, arctan, sqr, sqrt и т.д.).

При создании пояснительной записки использован текстовый процессор Microsoft Word 2007.


1. Обратная геодезическая задача

 

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

Обратная геодезическая задача заключается в вычислении дирекционного угла и расстояния R = | AB | по заданным на плоскости декартовым координатам x, y двух точек А и В. Дирекционный угол, в конечном итоге, должен быть представлен в градусной мере, как это принято в геодезии. Расстояние между точками определяется через найденный дирекционный угол.


x C

 

A 

 B

 y

 Рис. 1.1

Пусть даны две точки А и В (рис. 1.1), координаты которых соответственно

Согласно схеме, показанной на рис. 1.1, приращения координат определяются:

 (1.1)

Затем находят величину румба.

 (1.2)

Далее по знакам приращения координат находят название четверти, что, в свою очередь, позволяет определить значение дирекционного угла.

Табл. 1.1.

Знаки приращения координат Название четверти Формула дирекционного угла

+ + I

 = r

- + II

r

- - III

r

+ - IV

r

 

Определение значения дирекционного угла

Горизонтальное расстояние между точками может быть определено по формуле:

 (1.3)

или по формуле:

 (1.4)

Перевод вычисленного дирекционного угла в градусную меру может быть выполнен различными способами. Один из возможных способов следующий:

Переводим величину в градусную меру


;

Выделяем целую часть ;

Вычисляем остаток и переводим его в минуты

;

Вычисляем целое число минут

;

Определяем остаток минут, переводим в секунды и округляем до целого

.

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

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

Даны координаты 2-х точек A(х,y) и B(x,y). Определить дирекционный угол прямой AB.

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

Вариант 2

А) X1 = 5119.94 Y1 = 6157.33

X2 = 7182.27 Y2 = 4976.39

В) X1 = 10932.84 Y1 = 6112.26

X2 = 9115.24 Y2 = 4903.68

1.4. Блок схема для Turbo Pascal

 

*процедура для определения приращений;

**процедура для определение значения дирекционного угла и четверти;

***процедура для перевода из радиан в градусы.

 

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

Program Zadacha1;

Uses CRT;{использование библиотеки}

Var i,j,k:integer;{описание переменных}

x1,y1,x2,y2,x3,y3,x4,y4,Dy,Dx,Dx1,Dy1,R,R1,Alfa,alfa1,S,S1:real;

AlfaGr,AlfaMi,AlfaS,AlfaGr1,AlfaMi1,AlfaS1:real;

t1,t2:text;

{процедура для определения приращений}

procedure Prir (var k1:real; var k2:real; var Dd:real);

 begin

 Dd:=k2-k1;

 end;

{процедура для перевода в грудусы}

procedure Gradyc (var A,AGr,AMi,AS:real);

 Var

 AG,AM:real;

 begin

 AG:=180*(A/Pi);

AGr:=int(AG);

 AM:=60*(AG-AGr);

AMi:=int(AM);

 AS:=int(60*(AM-AMi));

 end;

{процедура для определение значения дирекционного угла и четверти}

procedure Analiz (var X,Y,R,A:real);

 begin

 If (X>0) and (Y>0) Then

          Begin

A:=R;

         Writeln('I chetvert');

         Writeln(t2,'I четверть');

         Writeln('Direkcionnii ygol raven(v radianax):');

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

         Writeln(A:6:3);

         Writeln(t2,A:6:3);

          End;

 If (X<0) and (Y>0) Then

          Begin

 A:=(Pi)-R;

          Writeln('II chetvert');

          Writeln(t2,'II четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

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

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 If (X<0) and (Y<0) Then

          Begin

 A:=(Pi)+R;

          Writeln('III chetvert');

          Writeln(t2,'III четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

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

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 If (X>0) and (Y<0) Then

          Begin

 A:=(2*(Pi)-R);

          Writeln('IV chetvert');

          Writeln(t2,'IV четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

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

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 end;

Begin

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

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

Assign (t2,'rezultat.txt');

Reset (t1);

Rewrite (t2);

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

 Readln(t1);

 Readln(t1);{пропуск строки "Точка 1."}

 Readln(t1);{пропуск строки "Координата по оси X:"}

 Readln(t1,x1);{чтение из фаила значения координаты по оси X для точки А}

 Readln(t1);{пропуск строки "Координата по оси Y:"}

 Readln(t1,y1);{чтение из фаила значения координаты по оси Y для точки А}

 Readln(t1);{пропуск строки "Точка 2."}

 Readln(t1);{пропуск строки "Координата по оси X:"}

 Readln(t1,x2);{чтение из фаила значения координаты по оси X для точки B}

 Readln(t1);{пропуск строки "Координата по оси Y:"}

 Readln(t1,y2);{чтение из фаила значения координаты по оси Y для точки B}

 Readln(t1);

 Readln(t1);

 Readln(t1);{пропуск строки "Точка 1."}

 Readln(t1);{пропуск строки "Координата по оси X:"}

 Readln(t1,x3);{чтение из фаила значения координаты по оси X для точки А}

 Readln(t1);{пропуск строки "Координата по оси Y:"}

 Readln(t1,y3);{чтение из фаила значения координаты по оси Y для точки А}

 Readln(t1);{пропуск строки "Точка 2."}

 Readln(t1);{пропуск строки "Координата по оси X:"}

 Readln(t1,x4);{чтение из фаила значения координаты по оси X для точки B}

 Readln(t1);{пропуск строки "Координата по оси Y:"}

 Readln(t1,y4);{чтение из фаила значения координаты по оси Y для точки B}

 Readln(t1);

 Begin

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

Prir(x1,x2,Dx);

Prir(y1,y2,Dy);

Prir(x3,x4,Dx1);

Prir(y3,y4,Dy1);

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

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

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

         Writeln('Po oci X');{вывод на экран надписи "По оси X"}

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

         Writeln(Dx:6:2);{вывод значения для X на экран}

         Writeln(t2,Dx:6:2);{вывод значения для X в фаил}

         Writeln('Po oci Y');{вывод на экран надписи "По оси Y"}

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

         Writeln(Dy:6:2);{вывод значения для Y на экран}

         Writeln(t2,Dy:6:2);{вывод значения для Y в фаил}

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

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

          Writeln('Po oci X');{вывод на экран надписи "По оси X"}

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

          Writeln(Dx1:6:2);{вывод значения для X на экран}

         Writeln(t2,Dx1:6:2);{вывод значения для X в фаил}

         Writeln('Po oci Y');{вывод на экран надписи "По оси Y"}

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

         Writeln(Dy1:6:2);{вывод значения для Y на экран}

         Writeln(t2,Dy1:6:2);{вывод значения для Y в фаил}

 End;

 Begin

{нахождение величины румба}

R:=arctan(abs(Dy/Dx));

R1:=arctan(abs(Dy1/Dx1));

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

 Writeln('RYMB zadaniya A');{вывод на экран надписи "Румб для задания А"}

 Writeln(t2,'Румб для задания А');{вывод в фаил надписи "Румб для задания А"}

 Writeln(R:6:6);{вывод значения на экран}

 Writeln(t2,R:6:6);{вывод значения в фаил}

 Writeln('RYMB zadaniya B');{вывод на экран надписи "Румб для задания B"}

 Writeln(t2,'Румб для задания А');{вывод в фаил надписи "Румб для задания B"}

 Writeln(R1:6:6);{вывод значения на экран}

 Writeln(t2,R1:6:6);{вывод значения в фаил}

 End;

 Begin

{определение значения дирекционного угла и четверти}

 Writeln('Direkcionnii ygol i chetvert dly A');

 Writeln(t2,'Дирекционный угол и четверть для задания А:');

Analiz (Dx,Dy,R,Alfa);

 Writeln('Direkcionnii ygol i chetvert dly B');

 Writeln(t2,'Дирекционный угол и четверть для задания B:');

Analiz (Dx1,Dy1,R1,Alfa1);

 End;

 Begin

{ВЫчисление горизонтального расстояния между точками}

S:=sqrt((Sqr(Dx)+sqr(Dy)));

S1:=sqrt((Sqr(Dx1)+sqr(Dy1)));

{вывод полученного значения}

 Writeln('Gorizontalnoe Rasstoyanie mezdy tochkami Ravno(dly A):');

 Writeln(t2,'Горизонтальное расстояние между точками равно(для задания А):');

 Writeln(S:6:2);

 Writeln(t2,S:6:2);

 Writeln('Gorizontalnoe Rasstoyanie mezdy tochkami Ravno(dly B):');

 Writeln(t2,'Горизонтальное расстояние между точками равно(для задания B):');

 Writeln(S1:6:2);

 Writeln(t2,S1:6:2);

 End;

 Begin

{перевод дирекционного угла в градусную меру}

Gradyc (Alfa,AlfaGr,AlfaMi,AlfaS);

Gradyc (Alfa1,AlfaGr1,AlfaMi1,AlfaS1);

                            {вывод полученного дирекционного угла}

                            Writeln('Direkcionnii ygol raven(dly A):');

                            Writeln(t2,'Дирекционный угол равен(для задания А):');

                            Writeln(AlfaGr:6:0,' gradycov',AlfaMi:6:0,' minyt',AlfaS:6:0,' sekynd');

                            Writeln(t2,AlfaGr:6:0,' градусов',AlfaMi:6:0,' минут',AlfaS:6:0,' секунд');

                            Writeln('Direkcionnii ygol raven(dly B):');

                            Writeln(t2,'Дирекционный угол равен(для задания B):');

                            Writeln(AlfaGr1:6:0,' gradycov',AlfaMi1:6:0,' minyt',AlfaS1:6:0,' sekynd');

                            Writeln(t2,AlfaGr1:6:0,' градусов',AlfaMi1:6:0,' минут',AlfaS1:6:0,' секунд');

 End;

Writeln('chtenie iz faila "dano.txt", zapis v "rezultat.txt"');

Close (t1);

Close (t2);

Readkey;

End.

 

1.6 Содержание фаила «dano.txt»

Задание А:

Точка 1.

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

5119.94

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

6157.33

Точка 2.

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

7182.27

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

4976.39

Задание B:

Точка 1.

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

10932.84

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

6112.26

Точка 2.

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

9115.24

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

4903.68


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

Рис.1.3 Результаты в Turbo Pascal.

 

Содержание фаила «rezultat.txt»:

Приращения для задания А

По оси X

2062.33

По оси Y

-1180.94

Приращения для задания B

По оси X

-1817.60

По оси Y

-1208.58

Румб для задания А

0.520047

Румб для задания А

0.586801

Дирекционный угол и четверть для задания А:

IV четверть

Дирекционный угол равен(в радианах):

 5.763

Дирекционный угол и четверть для задания B:

III четверть

Дирекционный угол равен(в радианах):

 3.728

Горизонтальное расстояние между точками равно(для задания А):

2376.52

Горизонтальное расстояние между точками равно(для задания B):

2182.74

Дирекционный угол равен(для задания А):

 330 градусов 12 минут 12 секунд

Дирекционный угол равен(для задания B):

 213 градусов 37 минут 16 секунд

1.8 Табличные вычисления MS Excel

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


Рис. 1.5 Проверка в MS Excel в режиме отображения формул.


1.9 Вычисления в MathCad

Рис. 1.6 Проверка в MathCad 14.

1.10 Анализ

Таким образом, обратная геодезическая задача была решена с помощью языка программирования Turbo Pascal и затем была проверена с помощью табличного процессора Microsoft Excel 2007 и MathCad 14.Результаты решений совпали, что говорит о правильности выбранного алгоритма решения задачи.


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

 

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

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

  Р P

  

    

      

   

  

Рис. 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.1

№ пп X, м Y, м B1, DDD MM SS B2, DDD MM SS
11 5935.51 5441.24 98 4 30
22 5687.41 5172.76 63 0 12 41 54 46
33 5142.93 5460.08 54 19 48

 

 


2.4. Алгоритм для Turbo Pascal

 

 

RB1P1:=(((Pi)/180)*(GB1P1+(MB1P1/60)+(SB1P1/3600)));

RB1P2:=(((Pi)/180)*(GB1P2+(MB1P2/60)+(SB1P2/3600)));

RB2P2:=(((Pi)/180)*(GB2P2+(MB2P2/60)+(SB2P2/3600)));

RB2P3:=(((Pi)/180)*(GB2P3+(MB2P3/60)+(SB2P3/3600)))

 

xP12:=x1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*cos(Alfa12-RB1P1);

yP12:=y1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*sin(Alfa12-RB1P1);

xP23:=x2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*cos(Alfa23-RB1P2);

yP23:=y2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*sin(Alfa23-RB1P2);

 


*процедура для определения приращений

**процедура для нахождения румбов

***процедура для определение значения дирекционного угла и четверти

****процедура для перевода из радиан в градусы

Рис. 2.2

 


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

Program Zadacha2;

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 Prir (var k1:real; var k2:real; var Dd:real);

 begin

 Dd:=k2-k1;

 end;

{процедура для перевода в грудусы}

procedure Gradyc (var A,AGr,AMi,AS:real);

 Var

 AG,AM:real;

 begin

 AG:=180*(A/Pi);

AGr:=int(AG);

 AM:=60*(AG-AGr);

AMi:=int(AM);

 AS:=int(60*(AM-AMi));

 end;

{процедура для нахождения румбов}

procedure Rymb (var X,Y,R:real);

 begin

 R:=arctan(abs(Y/X));

 end;

{процедура для определение значения дирекционного угла и четверти}

procedure Analiz (var X,Y,R,A:real);

 begin

 If (X>0) and (Y>0) Then

          Begin

A:=R;

         Writeln('I chetvert');

         Writeln(t2,'I четверть');

         Writeln('Direkcionnii ygol raven(v radianax):');

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

         Writeln(A:6:3);

         Writeln(t2,A:6:3);

          End;

 If (X<0) and (Y>0) Then

          Begin

 A:=(Pi)-R;

          Writeln('II chetvert');

          Writeln(t2,'II четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

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

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 If (X<0) and (Y<0) Then

          Begin

 A:=(Pi)+R;

          Writeln('III chetvert');

          Writeln(t2,'III четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

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

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 If (X>0) and (Y<0) Then

          Begin

 A:=(2*(Pi)-R);

          Writeln('IV chetvert');

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


© 2010 САЙТ РЕФЕРАТОВ