Категории
- Авиация и космонавтика
- Административное право
- Арбитражный процесс
- Архитектура
- Астрология
- Астрономия
- Банковское дело
- Безопасность жизнедеятельности
- Биографии
- Биологии
- Биология и химия
- Биржевое дело
- Ботаника и сельское хозяйство
- Бухгалтерский учет и аудит
- Валютные отношения
- Ветеринарии
- Военная кафедра
- География
- Геодезия
- Геология
- Геополитика
- Государство и право
- Гражданское право и процесс
- Делопроизводство
- Естествознание
- Журналистика
- Зарубежная литература
- Зоология
- Издательское дело и полиграфия
- Инвестиции
- Информатика
- Информатика, программирование
- Истории
- Исторические личности
- История техники
- Кибернетика
- Коммуникации и связь
- Компьютерные науки
- Косметология
- Краткое содержание произведений
- Кредитование
- Криминалистика
- Криминология
- Криптология
- Кулинария
- Культура и искусство
- Культурология
- Литература и русский язык
- Логика
- Логистика
- Маркетинг
- Математика
- Медицина
- Медицинские науки
- Международное публичное право
- Международное частное право
- Международные отношения
- Менеджмент
- Металлургия
- Москвоведение
- Музыка
- Муниципальное право
- Налогообложение
- Наука и техника
- Начертательная геометрия
- Новейшая история, политология
- Оккультизм и уфология
- Остальные рефераты
- Педагогика
- Полиграфия
- Политология
- Право
- Предпринимательство
- Промышленность, производство
- Психология
- психология, педагогика
- Радиоэлектроника
- Реклама
- Религия и мифология
- Рефераты
- Риторика
- Сексология
- Социология
- Статистика
- Страхование
- Строительные науки
- Строительство
- Схемотехника
- Таможенная система
- Теория государства и права
- Теория организации
- Теплотехника
- Технологии
- Товароведение
- Топики по английскому языку
- Транспорт
- Трудовое право
- Туризм
- Уголовное право и процесс
- Управление
- Управленческие науки
- Физика
- Физкультура и спорт
- Философия
- Финансовые науки
- Финансы
- Фотография
- Химия
- Хозяйственное право
- Цифровые устройства
- Экологическое право
- Экология
- Экономика
- Экономико-математическому моделированию
- Экономическая география
- Экономическая теория
- Эргономика
- Этика
- Юридические науки
- Юриспруденция
- Языковедение
- Языкознание, филология
Реферат: Программа эмуляции развития популяций животных
Раздел :: Рефераты по зоологииПросмотров: 300 Скачать реферат
Институт Переподготовки Кадров
Уральского Государственного Технического Университета
Кафедра микропроцессорной техники
Оценка работы
Члены комиссии
ПРОГРАММА ЭМУЛЯЦИИ РАЗВИТИЯ
ПОПУЛЯЦИЙ ЖИВОТНЫХ
Курсовая работа
Пояснительная записка
Руководитель
Доцент С.С.Соколов
Слушатель
Группа СП-913 А.А.Соколов
ЕКАТЕРИНБУРГ
1997
СОДЕРЖАНИЕ
ПОСТАНОВКА ЗАДАЧИ..............................-
ВВЕДЕНИЕ.......................................3
1. ОСНОВНАЯ ЧАСТЬ..............................4
1. Методика взаимодействия популяций.........4
2. Описание программы........................5
3. Описание библиотеки Fauna1 ...............6
4. Описание библиотеки Mycrt ................7
5. Описание основного тела программы.........8
2. ЗАКЛЮЧЕНИЕ..................................9
Приложение 1. Основная программа...............10
Приложение 2. Библиотека Fauna1................24
Приложение 3. Библиотека Mycrt.................26
Приложение 4. Инструкция пользователя..........28
-3-
1. ВВЕДЕНИЕ.
Ради интереса было дано задание написать программу типа
"Жизнь", но с некоторыми изменениями в начальных условиях.
Условия были таковы, что в эмуляции должны участвовать две популяции: хищники и травоядные, которые взаимодействовали бы друг с другом путем поедания травоядных хищниками.
В процессе разработки программы были введены дополнительные параметры:
- Возраст животных
- Минимальный и максимальный репродуктивный возраст животных
- Количество пищи нужный животным для поддержания жизни
- Количество травы
- Процент восстановления травы
- Вероятность природных катаклизмов влияющих на популяции животных
-4-
2. ОСНОВНАЯ ЧАСТЬ.
2.1 Методика взаимодействия популяций.
Методика взаимодействий хищника и травоядного заключается в том, что и хищники, и травоядные представлены в виде точек, которые передвигаются по экрану с шагом в один пиксель. При этом заданно условие, если в радиусе один пиксель от точки принадлежащей хищнику появляется точка принадлежащая травоядному, то считается, что хищник съел травоядного.
Способ передвижения точек на экране был организован по алгоритму случайного блуждания, т.е. передвижение по осям Х и Y с шагом в один пиксель выбирается случайным образом.
Умершие своей жизнью травоядные считаются, как съевшиеся хищниками.
При недоедании обеими популяциями, особи умирают в процессе уменьшения возраста, т.е. чем больше возраст животного, тем больше вероятность погибнуть от голода. Из-за больших промежуточных расчетов учет по недоеданию был выбран так, что хищники учитываются один раз в год, а травоядные двенадцать раз в год.
-5-
2.2 Описание программы.
Данная программа написана с использованием объектно-ориентированного языка Borland Pascal 7.1 и построена на обработке массивов типа tosob описанного в объектном модуле fauna1. Этот тип имеет следующие параметры: x - расположение по координате Х экрана y - расположение по координате Y экрана age - возраст точки col - цвет вывода на экран
Программа обеспечивает следующие операции:
- Задание параметров популяции травоядных
- Задание параметров популяции хищников
- Задание параметров окружающей среды
- Просмотр взаимодействия животных в графическом режиме
- Индикация результатов по выходу из режима просмотра взаимодействия животных
- Выход из программы
При помощи зарезервированного слова "uses" к программе подключается стандартные библиотечные модули TPCRT, GRAPH, DOS и библиотечные модули написанные программистом-разработчиком MYCRT и FAUNA1.
В разделе описания констант и переменных были объявленны следующие
переменные:
- gd,gm типа integer для инициализации графики
- q,x,y,x1,y1,t,i,j,k,at,at1,ct1,ctp типа integer для использования их в теле циклов
- g,m типа integer для задания начального количества животных
- v,w типа integer для задания максимального возраста животных
- ct,ch типа shortint для задания цвета отображаемых точек
- tmin,tmax,hmin,hmax,tp,hp типа integer для задания факторов влияющих на репродуктивность животных
- tt типа integer для учета умерших и съеденных травоядных
- kata типа integer для задания вероятности природных катаклизмов
- ht типа integer для задания количества травоядных нужных хищнику для пищи
- ttt типа real для задания количества травы нужных травоядному для пищи
- tr типа real для задания процента восстановления количества травы
- tree,tree1 типа longint для задания и модификации количества травы
- z типа longint для счетчика времени
- key типа boolean для отслеживания нажатия клавиш
- s,ss типа string размером в семнадцать символов для вывода на экран в графическом режиме
- pal типа FillPatternType стандартная переменная библиотеки
GRAPH для хранения типа и цвета заливки графических фигур объектов
- tg массив объемом 4400 точек типа tosob для хранения травоядных
- hr массив объемом 1350 точек типа tosob для хранения хищников
-6-
2.3 ОПИСАНИЕ БИБЛИОТЕКИ FAUNA1
В данной библиотеке описано два типа данных Tposition и Tosob. Тип
Tposition имеет два параметра: x - расположение по координате Х экрана y - расположение по координате Y экрана
Задействованы функции: getx - получение координаты Х gety - получение координаты Y
А также процедура инициализации объекта init
Тип Tosob имеет четыре параметра: x - расположение по координате Х экрана y - расположение по координате Y экрана age - возраст точки col - цвет вывода на экран
Задействованы функции: daizwet - получение цвета точки daiage - получение параметра age vidnoli - получение факта отображения на экране
процедуры: blind - гашение точки show - отображение точки init - создание объекта Tosob done - уничтожение объекта Tosob
-7-
2.4 ОПИСАНИЕ БИБЛИОТЕКИ MYCRT
В данную библиотеку включены функции и процедуры предназначенные для
работы в текстовом режиме.
Процедуры: fon - задание цвета фона экрана txt - задание цвета выводимых символов ramka - вывод прямоугольника символами
186,187,188,200,201,205 colorwind - вывод окна с рамкой
Функции: colword - преобразование чисел от одного до пятнадцати в строку с наименованием цвета mes - преобразование чисел от нуля до триста шестидесяти пяти в строку с названием месяца
-8-
2.4 ОПИСАНИЕ ОСНОВНОГО ТЕЛА ПРОГРАММЫ
В основном модуле программы включены процедуры: ini - вывод на экран массивов hr и tr со стартовыми параметрами tnew - движение точки принадлежащей массиву tr с проверкой возраста hnew - движение точки принадлежащей массиву hr с проверкой возраста trod - создание новых точек массива tr hrod - создание новых точек массива hr dead - процесс поглощения точки массива tr точкой массива hr havka - процесс уничтожения точек массива tr в зависимости от значения переменной tt tmor - процесс уничтожения случайного количества точек массива tr hmor - процесс уничтожения случайного количества точек массива hr zasux - подсчет переменной tree quit - выход из программы herb - организация ввода стартовых значений переменных для массива tr beast - организация ввода стартовых значений переменных для массива hr env - организация ввода значений переменных для задания переменных tree, tr, kata, q info - организация информационного окна gmenu - прорисовка основного меню omenu - прорисовка меню Option start - запуск графического режима и запуск основного цикла komenu - организация меню Option gkmenu - организация основного меню
-9-
3. ЗАКЛЮЧЕНИЕ
Данная программа представляет достаточно грубую модель
жизнедеятельности и взаимодействия живых организмов. Однако, даже такое
моделирование позволяет проследить основные моменты цикла жизни популяции.
При возможном добавлении некоторых дополнительных факторов, моделирование
может более приблизиться к реальной ситуации. Такими факторами могут
являться:
- Сезонные изменения климата
- «Технология» охоты
- Окружающая флора и фауна
- Влияние жизнедеятельности человека
- Взаимодействие особей внутри популяции
Данная программа может служить в качестве учебного пособия по
программированию на языке Pascal.
-10-
Приложение 1.
Основная программА
program fauna;
uses mycrt,dos,graph,fauna1,tpcrt; var q,x,y,x1,y1,gd,gm,t,i,j,k,AT,at1,ct1,ctp:integer;{общие} g,v,m,w:integer;{} ct,ch:shortint;{цвет} tmin,tmax,hmin,hmax,tp,hp:integer;{детородность} tt:integer;{трупы и съеденые травоядные за 1 год} kata,ht:integer; ttt,tr:real; z,tree,TREE1:longint; key:boolean; s,ss:string[17]; tg:array[1..4400] of tosob; {green-травоядных} hr:array[1..1350] of tosob; {red-хищников} pal:FillPatternType;
{***********************************************************}
procedure ini;
begin for i:=1 to g do begin at:=RANDOM(v)+1; tg[i].init((random(630)+5),(random(462)+18),at,ct); tg[i].show; end; for i:=1 to m do begin at:=random(w)+1;
HR[i].init((random(630)+5),(random(462)+18),at,ch); hr[i].show; end;
end;
{***********************************************************}
procedure tnew;
begin
I:=0;
REPEAT
I:=I+1; begin x:=tg[i].getx; y:=tg[i].gety;
AT:=TG[I].DAIAGE;
CTP:=TG[I].DAIZWET; if (z mod 365)=0 then
BEGIN at:=at+1; {Happy New Year!}
TG[I].INIT(X,Y,AT,CTP);
END; if at>v then {Old ?} begin tg[i].done;
-11-
tg[i].init(0,0,0,0); tt:=tt+1;{умершее животное} for j:=i+1 to g do begin x1:=tg[j].getx; y1:=tg[j].gety; at1:=tg[j].daiage; ct1:=tg[j].daizwet; tg[j].done; tg[j-1].init(x1,y1,at1,ct1); tg[j-1].show; end;
TG[G].INIT(0,0,0,0);
G:=G-1;
I:=I-1;
CONTINUE; end; x:=tg[i].getx; y:=tg[i].gety; x:=x+(random(3)-1); y:=y+(random(3)-1); if x635 then x
