Анализ транспортной сети - Программирование, компьютеры и кибернетика курсовая работа

Экономико-математическая модель задачи оптимизации транспорта энергии, газа, трубопроводных систем различного назначения, а также транспортировки продукции от поставщиков к потребителям. Программа оптимизации доставок по заданной схеме сети перевозок.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство образования Российской Федерации
Южно-Российский государственный университет экономики и сервиса
2.1 Название задачи. Приводится кратко сформулированное название задачи, описывающее ее суть.
2.2 Описание задачи. Даемся полное математическое описание задачи с привлечением необходимых формул, таблиц и т. д.
2.3 Управление программой. Описывается порядок запуска программы, управление её режимами, просмотра промежуточных и конечных результатов
2.4 Входные данные. Приводится их описание, способ ввода (описания) данных
2.5 Выходные данные. Должен быть приведен перечень выходных данных, способ их вывода на экран
На этом этапе разрабатываются общая блочная структура программы, алгоритмы функционирования каждого блока (словесные и в виде блок-схемы). Определяется схема потока данных (взаимосвязи блоков). Необходимые математические выражения привести в матричной и координатной формах. В соответствии со словесным описанием алгоритма разработать модульную структуру алгоритма и его блок-схему. Дать подробное описание модулей и отдельных блоков.
4. Кодирование алгоритма. Описать вес идентификаторы переменных, констант, массивов и др., их соответствие входным, промежуточным и выходным данным. Привести листинг программы (отдельным приложением).
5. Руководство пользователя. Даётся краткая инструкция для пользователя, незнакомого с программой. Инструкция должна содержать такие пункты:
Результаты расчета. Приводятся исходные данные заданного варианта схемы и результаты вычислений. Делается краткий анализ полученных результатов
Разработать и отладить программу, реализующую предложенный алгоритм решения задачи
Решить поставленную задачу для выданного варианта схемы и входных данных. Проанализировать результат, сделать выводы. Проверить решение путем составления баланса потоков по узлам
Написать пояснительную записку в соответствии с требованиями ЕСКД и ЕСПД на листах формата А4
На защиту курсовой работы представить пояснительную записку и дискету с разработанной программой в виде .pas и .exe файлов.
Варианты задания и данные для проектирования
В качестве объекта исследования рассматривается сеть с потоками однородного продукта - экономико-математическая модель задачи оптимизации транспорта энергии, газа, трубопроводных систем различного назначения, а также транспортировки продукции от поставщиков к потребителям. Необходимо написать программу оптимизации транспорта энергии, газа, трубопроводных систем различного назначения по заданной схеме сети перевозок.
В качестве данных для проектирования дается схема транспортной сети, состоящей из m узлов и n ветвей, соединяющих эти узлы (рис. 1).
На рисунке 1 узлы обозначены цифрами от 1 до 4, узел 0 называют базисным. Он может рассматриваться как склад, хранилище. Его назначение - обеспечить соответствие между производством и потреблением продукции.
В ходе выполнения работы необходимо найти направления потоков по ветвям и их величину P (в условных единицах).
Выбирается произвольно направление потоков по ветвям (рис. 2).
Матрица А получается из матрицы соединений (инциденций). Последняя содержит (m+1) строк по числу узлов, и n столбцов по числу ветвей. На пересечении i-й строки и j-го столбца ставится 1, если i-я ветвь входит в j-й узел и -1, если она выходит из этого узла. Если ветвь не инцидентна узлу, соответствующий элемент матрицы равен нулю. Вычеркивая i-ю строку с номером 0 (выделена заливкой), получают матрицу А (см. табл. 1).
Вводится диагональная матрица R , элементами которой являются заданные стоимости перевозок по ветвям.
Можно показать, что искомый вектор потоков определяется (в матричной форме) как
где R -1 - матрица, обратная матрице R ,
A I - транспонированная матрица А ,
- вектор Лагранжа (потенциалов), который находится из решения системы уравнений в матричной форме
где - объемы производства в узлах схемы, которые задаются в качестве входных данных и входят в уравнение
Все расчетные операции курсового проекта выполнены в Turbo Pascal. Программа запускается из файлового менеджера Norton Commander и имеет следующий путь к стартовому файлу: C:\TP71\turbo.exe.
После запуска программы появляется окно редактора, в котором непосредственно выполненное задание. Готовый листинг программы можно откомпилировать, то есть преобразовать в машинный код, комбинацией клавиш Alt+F9 или через меню в разделе Compile, в процессе чего происходит её связь с библиотекой стандартных процедур и функций и загрузка в оперативную память. При этом в небольшом окне сообщается о количестве откомпилированных строк и объёме доступной оперативной памяти.
Для визуального представления результатов написанной программы ее необходимо исполнить. Данная операция называется прогоном программы и реализуется командой Ctrl+F9 либо через меню в разделе Run. Управление передается загруженной в оперативную память программе, и на экран выводится окно прогона программы. На зеленом экране появляется содержательное меню выполненного задания, содержащее необходимые результаты вычислений.
После завершения программы на экране монитора восстанавливается окно редактора ее листингом.
Для выхода из среды Turbo Pascal используется комбинация клавиш Alt+x либо в меню раздел File.
Ввод данных - это передача информации от внешних устройств в оперативную память. Устройствами ввода могут являться клавиатура, мышь, сканер, микрофон и другие.
В данном курсовом проекте входными данными являются числа от 1 до 10, вводимые с клавиатуры при выборе пункта меню в исполняемой программе.
Вывод данных - это передача данных из оперативной памяти на внешние устройства (принтер, динамики). Основным устройством вывода, входящим в стандартную конфигурацию персонального компьютера, является монитор.
Все результаты вычислений данного курсового проекта выводились на дисплей с помощью оператора Write(<комментарии>,<данные>). Элементами данных могут быть константы и переменные, которые отделяются друг от друга запятой. Кроме того данный оператор позволяет выводить комментарии в виде строк и предложений, которые указываются в апострофах. Оператор Writeln(<комментарии>,<данные>) отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки.
Пустой оператор вывода без параметров Writeln используется для вывода на экран пустой строки, что может быть необходимо при отделении одной части программы от другой.
В курсовом проекте выходными для вывода дробных чисел использовался формат с фиксированной точкой R : p : q, где R - дробное число, p - ширина поля вывода (число символов), q - количество знаков после десятичной точки.
модель оптимизация трубопроводный система
Получаем матрицу размерностью 3х6, имеющую соответственно 3 строки и 6 столбцов.
Матрица А т или А l называется транспонированной по отношению к матрице А, если выполняется условие А ij т = А ji , то есть в транспонированной матрице строки заменяются столбцами исходной матрицы, а столбцы строками.
Полученная матрица имеет размерность 6х3.
Вектор C[i] - вектор стоимостей перевозок по ветвям. Обозначен в разделе описаний как константа.
Квадратная матрица называется вырожденной, если ее определитель - число, получаемое из элементов матрицы по определенному закону в зависимости от ее размера, равен нулю. Если матрица не вырожденная, то существует, и причем единственная матрица А -1 , такая, что А*А -1 =Е - единичная матрица. Матрица А -1 - есть обратная матрица исходной матрицы А.
3.5.1 Вычисление произведения R -1 *A l
Операция произведения матриц вводится только для согласованных матриц. Матрица А называется согласованной с матрицей В, если число столбцов матрицы А равно числу строк матрицы В.
В новой матрице С элемент, стоящий на пересечении i-ой строки и j-го столбца равен произведению элементов i-ой строки матрицы А и j-го столбца матрицы В:
Полученная в результате произведения матрица Rat имеет размерность 6х3.
3.5.2 Вычисление произведения А*R -1 *A l
Результат произведения - матрица Rata размерностью 3х3.
Таким образом, получим линейное уравнение Rata*U=Q, где
Пусть Rata - произвольная матрица А, U - матрица-столбец Х, Q - матрица-столбец свободных коэффициентов. Нашу систему уравнений можно записать в матричном виде: А*Х=В.
Пусть матрица А не вырожденная, тогда у нее есть обратная матрица, умножив которую на данную систему уравнений получим: А -1 *А*Х= А -1 *В откуда ЕХ= А -1 *В. Поскольку произведение единичной матрицы на матрицу-столбец Х даст тот же столбец Х, можно записать матричное решение нашей системы уравнений: Х= А -1 *В. Таким образом, чтобы вычислить искомый вектор U необходимо взять обратную матрицу Rata и умножить ее на вектор Q.
Определитель, или детерминант, определяется методом Крамера путем разности сумм произведений элементов матрицы в одном порядке и разностей произведений элементов в обратном порядке по следующей схеме (1):
3.5.4 Нахождение обратной матрицы Rata.
Вычисляем алгебраические дополнения для каждого элемента матрицы Rata и строим из этих элементов матрицу pRata.
Минором M ij данного элемента определителя 3-го порядка называется определитель 2-го порядка, который получится, если в исходном определителе вычеркнуть строку и столбец, содержащий этот элемент (схема 2).
Алгебраическим дополнением данного элемента называется его минор, умноженный на (-1) i + j , где i, j - номер строки и столбца, на пересечении которых находится данный элемент.
Затем транспонируем pRata и получаем матрицу ptRata, называемую присоединенной к матрице Rata.
Полученная матрица необходима при вычислении вектора Лагранжа в ходе решения системы уравнений методом обратной матрицы, а в дальнейшем и расчета вектора транспортных потоков.
В листинге программы были использованы восемь двумерных массива:
Rata,pRata,ptRata:array [1..3,1..3] of real;
В квадратных скобках соответственно указаны размерности массивов (число строк и столбцов, разделенные запятой). После скобок указан тип переменных, к которым относятся элементы массивов.
Shortint - целочисленный тип переменных с диапазоном значений -128 .. 127;
Real - вещественный тип переменных с плавающей точкой, принимает диапазон значений от -2,9е -39 до 1,7е 38 (е=10);
Byte - целочисленный тип переменных с диапазоном значений от 0 до 255 символов;
Integer - целочисленный тип переменных, имеет диапазоном -2 16 .. 2 16 -1.
Массив А - матрица инциденций (см. Таблица 1) размерностью 3х6 типа shortint. Массив At - транспонированная матрица А размерностью 6х3 типа shortint. Массив R - диагональная матрица стоимостей размерностью 6х6 типа shortint. Ro - матрица размерностью 6х6 обратная матрице R , тип переменных real, поскольку результат вычислений - дробное число. Rat - матрица размерностью 6х3, полученная в результате произведения матрицы Ro на матрицу At . Элементы массива Rat типа real. Rata - матрица размерностью 3х3, полученная в результате произведения A * RoAt . Элементы данной матрицы типа real. Массивы pRata (матрица, составленная из алгебраических дополнений матрицы Rata ) и ptRata (транспонированная матрица pRata ) размерностью 3х3 были получены в результате преобразований матрицы Rata и имеют тип real.
Одномерные массивы применялись для задания векторов:
const Q:array [1..3] of integer=(120,-80,-100);
C:array [1..6] of byte=(2,4,3,4,5,6);
Вектор Prov размерностью 3х3 использовался для формирования столбца проверочных данных с переменными вещественного типа. Вектор Q -объемы производства в узлах, в разделе описаний объявлен в качестве константы с типом переменных integer. Вектор Q 1 - результат произведения матрицы ptRata и вектора Q , типа real. Вектор Х - применялся для вычисления вектора Лагранжа, то есть решения системы уравнений матричным методом. Тип переменных - real. Вектор P - вектор потоков с типом переменных real.
Переменные i , j использовались в качестве счетчиков в операциях с матрицами обозначающие соответственно i -е строки и j -е столбцы. Переменная k использовалась в качестве дополнительного счетчика при перемножении матриц. Переменные i , j , k типа integer.
Переменная sum использовалась в качестве счетчика при перемножении матриц и произведении матриц на вектора. X 1 , X 2 , X 3 - элементы вектора U, имеющие значения корней уравнения А*Х=В, решенного методом обратной матрицы. Переменная D - определитель матрицы Rata , необходимый при вычислении элементов вектора Х . Summ , x 1 , x 2 , x 3 , D - переменные типа real.
Nr - переменная типа byte использовалась в процедуре переключателя номеров пунктов меню.
Запуск из среды TurboPascal производится нажатием клавиш Ctrl+F9, а из Norton Commander нажатием клавиши Enter на файле TransOptim.exe.
Ввод данных осуществляется с клавиатуры цифрами от 1 до 10.
После ввода цифры (пункта меню) выводятся результаты вычислений. Нажатием клавиши Enter осуществляется возврат в содержательное меню.
Выход из программы в среде Turbo Pascal и после запуска TransOptim.exe файла производится 10-ым пунктом меню.
На основании расчетов по исходным данным для заданной схемы (см. рис. 1) были получены величины транспортных потоков а так же соответствующие объемы производства для данной схемы по заданным направлениям. Результаты вычислений отражены в таблицах 4 и 5.
Спроектируем обозначения транспортных потоков из таблицы 4 и их направления на схему транспортной сети.
Рис. 3. Схема расположения транспортных потоков
Здесь каждому потоку P соответствует определенная инциденция ветвей в узлах (см. табл.1). Составим таблицу 6, которая обобщает начальные данные для решения поставленной задачи с результатами вычислений:
Отрицательная величина транспортного потока, полученная расчетным путем, при положительной величине инциденции и наоборот свидетельствует о неправильном направлении транспортного потока, то есть соответствующая ветвь должна поменять направление на обратно-противоположное. Получим реальное направление потоков (рис. 4).
Рис. 4. Схема реальных направлений транспортных потоков
В соответствии с уравнением 3 баланса потоков по узлам
исходя из полученных данных (см. табл. 5) можно сделать вывод, что задача в направлении оптимизации транспортных потоков по ветвям решена верно, поскольку.
1. Воеводин В.В., Кузнецов В.В. Матрицы и вычисления. - М.: Наука, 1984 год.
2. Демидович Б.П., Мааров И.А. Основы вычислительной математики. - М.: Наука, 1966 год.
3. Зеув Е.А. Программирование на языке Turbo Pascal 6.0, 7.0. РАДИО И СВЯЗЬ, Веста, Москва 1993 год.
4. Мануйлов В.Г. Разработка программного обеспечения на ПАСКАЛЕ. - М.: Приор, 1996 год.
5. Фаронов В.В. Программирование на персональных ЭВМ в среде Turbo Pascal. Издательство МГТУ 1992 год.
листинг программы Program Kursovik;
Rata,pRata,ptRata:array [1..3,1..3] of real;
i,j,k:integer; sum,D,x1,x2,x3:real; Nr:byte;
const Q:array [1..3] of integer=(120,-80,-100);
C:array [1..6] of byte=(2,4,3,4,5,6);
begin GotoXY(24,i); write(#186); GotoXY(24,19); write(#200);
begin GotoXY(60,i); write(#186); GotoXY(60,7); write(#187) end end;
begin GotoXY(j,7); write(#205); begin GotoXY(j,19); write(#205) end end;
GotoXY(28,9); write('Кавминводский Институт Сервиса');
GotoXY(28,11); write('Курсовая работа по информатике');
GotoXY(31,13); write('Анализ транспортной сети');
GotoXY(27,15); write('студента 2-го курса группы ИС-03');
GotoXY(35,17); write(Дузенко Антона);
Procedure VivodQ; (* Объемы перевозок в узлах *)
writeln(' Столбец свободных коэффициентов ');
for i:=1 to 3 do begin writeln; writeln(Q[i]:8) end;
GotoXY(28,17);write('Нажмите ') end;
write(' Матрица A '); (* Матрица соединений ветвей в узлах *)
for i:=1 to 3 do begin writeln; writeln;
for j:=1 to 6 do write(A[i,j]:3) end;
GotoXY(28,17);write('Нажмите ') end;
write(' Транспонированная Матрица A ');
for i:=1 to 6 do begin writeln; writeln;
for j:=1 to 3 do write(At[i,j]:3) end;
GotoXY(28,17);write('Нажмите ') end;
write(' Матрица R ');(* Стоимости перевозок по ветвям *)
for i:=1 to 6 do begin writeln; writeln;
for j:=1 to 6 do write(R[i,j]:3) end;
GotoXY(28,17);write('Нажмите ') end;
for i:=1 to 6 do begin writeln; writeln;
for j:=1 to 6 do write(' ',Ro[i,j]:3:1) end;
GotoXY(28,17);write('Нажмите ') end;
for i:=1 to 6 do begin writeln; writeln;
for j:=1 to 3 do write(Rat[i,j]:5:1) end;
GotoXY(28,17);write('Press ') end;
for i:=1 to 3 do begin writeln; writeln;
for j:=1 to 3 do write(Rata[i,j]:5:1) end;
GotoXY(28,17);write('Нажмите ') end;
for i:=1 to 3 do begin writeln; writeln(x[i]:8:1) end;
GotoXY(28,17);write('Нажмите ') end;
D:=Rata[1,1]*Rata[2,2]*Rata[3,3]+Rata[2,1]*Rata[3,2]*Rata[1,3]+
Rata[1,2]*Rata[2,3]*Rata[3,1]-Rata[1,3]*Rata[2,2]*Rata[3,1]-
Rata[1,2]*Rata[2,1]*Rata[3,3]-Rata[2,3]*Rata[3,2]*Rata[1,1] end;
for i:=1 to 6 do begin writeln; writeln(P[i]:8:1) end;
GotoXY(28,17);write('Нажмите ') end;
Begin writeln(' Prov=AP',' AP=-Q'); writeln;
for j:=1 to 6 do sum:=sum+A[i,j]*P[j]; Prov[i]:=sum end;
for i:= 1 to 3 do writeln(' Prov = ',Prov[i]:3:0);
GotoXY(28,17);write('Нажмите ') end;
GotoXY(28,3); write('1. Матрица A');
GotoXY(28,5); write('2. Транспонированная Матрица A');
GotoXY(28,7); write('3. Матрица R');
GotoXY(28,9); write('4. Обратная Матрица R');
GotoXY(28,11); write('5. Произведение A*Ro*At');
GotoXY(28,13); write('6. Вектор Q');
GotoXY(28,15); write('7. Вектор U');
GotoXY(28,17); write('8. Вектор P');
GotoXY(28,19); write('9. Проверка');
GotoXY(28,24); write('Введите номер пункта меню:'); GotoXY(55,24);
else gotoXY(27,12); writeln('Неправильный номер пункта!') end end;
for k:=1 to 6 do sum:=sum+Ro[i,k]*At[k,j]; Rat[i,j]:=sum end end;
for k:=1 to 6 do sum:=sum+A[i,k]*Rat[k,j]; Rata[i,j]:=sum end end;
A[1,1]:=1; A[1,2]:=-1; A[1,3]:=-1; A[1,4]:=0; A[1,5]:=0; A[1,6]:=0;
A[2,1]:=0; A[2,2]:=0; A[2,3]:=0; A[2,4]:=1; A[2,5]:=-1; A[2,6]:=0;
A[3,1]:=0; A[3,2]:=0; A[3,3]:=0; A[3,4]:=0; A[3,5]:=0; A[3,6]:=1 end;
for j:=1 to 6 do At[j,i]:=A[i,j] end;
for j:=1 to 6 do if i=j then R[i,j]:=C[i] else R[i,j]:=0 end;
for j:=1 to 6 do if i=j then Ro[i,j]:=1/R[i,j] else Ro[i,j]:=0 end;
Titul; mA; mAt; mR; mRo; Proizved; Proizved2; det;
(* Присоединенная к матрице Rata матрица pRata *);
pRata[1,1]:=Rata[2,2]*Rata[3,3]-Rata[3,2]*Rata[2,3];
pRata[1,2]:=-(Rata[2,1]*Rata[3,3]-Rata[2,3]*Rata[3,1]);
pRata[1,3]:=Rata[2,1]*Rata[3,2]-Rata[3,1]*Rata[2,2];
pRata[2,1]:=-(Rata[1,2]*Rata[3,3]-Rata[3,2]*Rata[1,3]);
pRata[2,2]:=Rata[1,1]*Rata[3,3]-Rata[3,1]*Rata[1,3];
pRata[2,3]:=-(Rata[1,1]*Rata[3,2]-Rata[3,1]*Rata[1,2]);
pRata[3,1]:=Rata[1,2]*Rata[2,3]-Rata[2,2]*Rata[1,3];
pRata[3,2]:=-(Rata[1,1]*Rata[2,3]-Rata[2,1]*Rata[1,3]);
pRata[3,3]:=Rata[1,1]*Rata[2,2]-Rata[2,1]*Rata[1,2];
(* Транспонированная матрица pRata *);
for j:=1 to 3 do begin ptRata[j,i]:=pRata[i,j]
for i:=1 to 3 do begin sum:=0; writeln; writeln;
for k:=1 to 3 do sum:=sum+ptRata[i,k]*Q[k]; Q1[k]:=sum; x[i]:=Q1[k]/d;
for k:=1 to 3 do sum:=sum-Rat[i,k]*x[k]; P[i]:=sum end;
for i:=1 to 10 do begin Menu; readln end;
Теоретические основы задач оптимизации. Математическое и линейное программирование. Дифференциальные и разностные уравнения в экономико-математических моделях. Решение задач, подчиняющих закону естественного роста в пакете Maple. Программа MS Excel. курсовая работа [2,1 M], добавлен 07.05.2014
Математическая модель задачи оптимизации, принципы составления, содержание и структура, взаимосвязь элементов. Обоснование возможности решения поставленной задачи средствами оптимизации Excel. Оценка экономической эффективности оптимизационных решений. курсовая работа [3,4 M], добавлен 10.11.2014
Сущность и назначение основных алгоритмов оптимизации. Линейное программирование. Постановка и аналитический метод решения параметрической транспортной задачи, математическая модель. Метод решения задачи об оптимальных перевозках средствами MS Excel. курсовая работа [465,6 K], добавлен 24.04.2009
Функционирование систем массового обслуживания с разными типами заявок. Построение математической модели, постановка задачи оптимизации среднего времени ожидания. Решение задачи оптимизации системы. Разработка программного кода для оптимизации системы. дипломная работа [581,7 K], добавлен 27.10.2017
Оптимизация затрат на доставку продукции потребителям. Характеристика транспортной задачи, общий вид решения, обобщение; содержательная и математическая постановка задачи, решение с помощью программы MS Excel: листинг программы, анализ результатов. курсовая работа [514,8 K], добавлен 04.02.2011
Функционирование систем массового обслуживания с разными типами заявок. Построение математической модели. Постановка задачи оптимизации среднего времени ожидания. Решение задачи оптимизации и разработка программного кода для оптимизации системы. курсовая работа [538,5 K], добавлен 11.08.2017
Концептуальная модель программного продукта "Оценка вариантов формирования транспортной сети Азиатской России". Структура базы данных. Возможности программы, схема работы. Модуль работы с проектом и картографическим окружением. Руководство пользователя. дипломная работа [3,4 M], добавлен 08.12.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Анализ транспортной сети курсовая работа. Программирование, компьютеры и кибернетика.
Реферат На Тему Основные Виды Спортивных Игр
Годовая Контрольная Работа По Литературе 9
Реферат: Life Of Samuel Leghorn Clemens Essay Research
Курсовая работа по теме Восстановление потенциала научных кадров в России
Шпаргалка: Шпаргалка по Экономике 10
Контрольная работа по теме Развитие межрегиональных связей Красноярского края
Курсовая работа по теме Психологічні аспекти управлінської діяльності
Контрольная работа по теме Судебная система. Преступление
Реферат по теме Современные экологический проблемы и возможные пути их решения
Реферат по теме Молодежный парламент в сегодняшней России
Реферат: Современные подходы к диагностике профилактике и лечению гестоза
Ремонт колесных пар
Реферат: Афонское сражение
Курсовая работа по теме Мотивы использования женского образа в рекламе
Курсовая Работа На Тему Проектирование Фундамента Под Промежуточную Опору Моста
Реферат по теме Договор на реализацию туристических услуг
Сочинение На Тему Лучший Класс
Контрольная Работа По Физике По Уровням
Темы Дипломных Работ По Управлению Персоналом 2022
Методы Изучения Природы Реферат
Либерализм и анархизм как общественно-политического движения - Политология контрольная работа
Биохимия онкогенеза - Медицина презентация
Характеристика Федоровского месторождения - Геология, гидрология и геодезия отчет по практике