Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Решение задания №2.






Текст программы представлен далее.

 

#include " stdafx.h" // подключение стандартной системной библиотеки

#include " iostream" // подключение библиотеки ввода/вывода

#include " math.h" // подключение библиотеки математических функций

 

using namespace System; // используем системное пространство имен

using namespace std; // используем пространство имен стандартной библиотеки ввода-вывода

 

int population(int R, int Nt, double a, double b) // функция расчета популяции

{

double next; // дополнительная переменная

next=(double)Nt*R/(1+pow(a*Nt, b)); // расчет популяции по формуле

return floor(next); //выделение целой части числа (отбрасываем дробную часть)

}

 

int main(array< System:: String ^> ^args) // точка входа в программу

{

int R, N0, T; // объявление целочисленных переменных

double a, b, x; // объявление переменных вещественного типа

int Nt; // дополнительная переменная для использования в программе

 

cout< < " Enter R: "; // вывод на экран запроса ввести значение R

cin> > R; // считывание введенного пользователем значения

cout< < " Enter N0: "; // вывод на экран запроса ввести значение N0

cin> > N0; // считывание введенного пользователем значения

cout< < " Enter a: "; // вывод на экран запроса ввести значение a

cin> > a; // считывание введенного пользователем значения

cout< < " Enter b: "; // вывод на экран запроса ввести значение b

cin> > b; // считывание введенного пользователем значения

cout< < " Enter t: "; // вывод на экран запроса ввести значение t

cin> > T; // считывание введенного пользователем значения

 

if(T< 1) //проверка чтобы введенное значение t было не меньше 1

{

cout< < " t must be greater than 0! "; // вывод сообщения пользователю

return 0; // завершение работы программы

}

 

Nt=N0; // присволение переменной Nt начального значения N0

for(int t=0; t< T; t++) // в цикле выполняется расчет популяции в каждом поколении

{

// в функцию передается численность популяции Nt в предыдущем поколении

Nt=population(R, Nt, a, b); // вызов функции расчета популяции

cout< < " N(" < < t< < ")=" < < Nt< < " \n"; // ввод результата на экран

}

 

Console:: ReadLine(); // чтобы окно программы не закрылось, запрашиваем ввод любых данных

return 0; // завершение работы программы

}

 

В результате выполнения программы на экране появится окно, представленное на рис. 3. Вводим значения переменных для исследования эволюции численности. При a=1, b=0.1, начальной численности 200 особей и при скорости воспроизводства популяции, равной 2, можно видеть, что численность популяции в каждом следующем поколении уменьшается, что не есть хорошо. Исследование проводилось для 20 поколений.

 

 

Рис. 3.

 

При других значениях параметров получены результаты, представленные на рис. 4. При скорости воспроизводства популяции, равной 10, в течении 7 поколений численность популяции снижается, но потом наступает состояние равновесия, и в течении последующих поколений численность остается постоянной, т.к. при заданной численности количество убывших особей пополняется естественным путем.

 

 

Рис. 4.

 

На рис. 5 представлены результаты исследования эволюции при a=1, b=0.2, начальной численности 200 особей и при скорости воспроизводства популяции, равной 10. В этом случае численность популяции растет.

 

 

Рис. 5.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.