Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_Географические_информационные_системы.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Порядок выполнения работы:

1. Открыть таблицу RUS_OBL*.

2. Выбрать объекты – регионы РФ

3. Перебрать различные методы обобщения при комбинировании и разбивки

5. Проанализировать изменение значений

6. Выполненную работу показать преподавателю и сдать отчет на подпись.

*Папка «MapInfo_src»

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

Кафедра геоинженерии и кадастра

Утверждаю

Декан горно-строительного факультета

__________________ Р.А. Ковалев

“____”_________________ 20___ г.

Методические указания к

лабораторной работе № 14

Структура программ на языке MapBasic

по дисциплине

Географические информационные системы

Направление подготовки: 120700 Землеустройство и кадастры

Профиль: «Земельный кадастр»

Форма обучения: очная, заочная

Тула 2013 г.

Цель работы:

Изучить структуру программ на языке MapBasic ГИС MapInfo.

Задачи работы

1. Написать простую программу на языке MapBasic.

2. Написать многомодульную программу на языке MapBasic.

Используемое оборудование и программное обеспечение: работы выполняются на персональных компьютерах, установленных в компьютерном классе 6/110, операционная система Windows XP SP2, программное обеспечение – офисный пакет MS Office 2003, MapInfo Professional v 4.

Теоретическая часть

Структура простой программы

Простейшая программа на MapBasic состоит из одного модуля (файл с расширением MB). В модуль записываются процедуры Sub и функции Function реализующие решение задачи. Обязательное условие, одна из процедур должна иметь имя Main, именно с выполнения этой процедуры стартует программа (рис. 1). К модулю могут подключаться файлы заголовков. Примером таких файлов может служить файл MapBasic.def. После успешной компиляции программного модуля будет сформирован исполняемый файл программы с расширением MBX.

Рис. 1. Общая схема одномодульной программы

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

Код простой задачи

Declare Sub Main

Declare Sub tst1

Sub Main

call tst1

end sub

Sub tst1

print chr$(12)

print "Тест: Простая программа"

end sub

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

Структура многомодульной программы

Сложные и объемные программы на MapBasic имеют многомодульную структуру. Это связано с ограничением среды MapBasic на размер модуля (64 Кбайт). Кроме того многомодульные программы легче поддерживать, а также это упрощает совместную разработку приложения.

Такая программа состоит из главного модуля, простых модулей и файла проекта. Физически модуль это текстовый файл с расширением MB а файл проекта имеет расширение MBP. Главный модуль программы отличается от простых модулей только наличием процедуры Main. Структура главного модуля практически совпадает со схемой, представленной на рис. 1. Компиляция модулей выполняется независимо друг от друга. В результате компиляции будут получены объектные модули (файлы с расширением MBO) которые впоследствии, в соответствии с файлом проекта, объединяются в исполняемый файл MBX (рис. 2).

Рассмотрим программу состоящую из четырех модулей.

Код многомодульной программы

Главный модуль Test2.mb

Include "mapbasic.def"

Declare Sub Main

Declare Sub A1

Declare Sub A2

Declare Sub B1

Declare Sub B2

Declare Sub C1

Declare Sub C2

Sub Main

print chr$(12)

call A1

call A2

call B1

call B2

call C1

call C2

end sub

Модуль A:

Include "mapbasic.def"

Declare Sub A1

Declare Sub A2

Sub A1

print "модуль А: процедура А1"

end sub

Sub A2

print "модуль А: процедура А2"

end sub

Модуль B:

Include "mapbasic.def"

Declare Sub B1

Declare Sub B2

Sub B1

print "модуль B: процедура B1"

end sub

Sub B2

print "модуль B: процедура B2"

end sub

Модуль C:

Include "mapbasic.def"

Declare Sub C1

Declare Sub C2

Sub C1

print "модуль C: процедура C1"

end sub

Sub C2

print "модуль C: процедура C2"

end sub

Рис. 2. Общая схема многомодульной программы

После компиляции этих модулей необходимо создать файл проекта Test2.mbp

.

Файл проекта

[Link]

Application=Test2.mbx

Module=Test2.mbo

Module=A.mbo

Module=B.mbo

Module=C.mbo

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

Следующий шаг это сборка проекта и после сборки получаем исполняемый файл

Test2.mbx. Результат работы этой программы приведен на рис. 3.

Рис. 3. Результат выполнения программы

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

Include "mapbasic.def"

Include "A.def"

Include "B.def"

Include "C.def"

Declare Sub Main

Sub Main

print chr$(12)

call A1

call A2

call B1

call B2

call C1

call C2

end sub

В приведенном примере, все процедуры используются в главном модуле. Но можно использовать и другую структуру, например, использовать процедуры из модуля B в модуле A и т.д. для этого необходимо включить в модуль соответствующие объявления.