Программирование - это просто
Advertisement
Главная arrow Размышления arrow Компьютерное моделирование систем arrow Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)
06.05.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart) Печать E-mail
Автор megabax   
24.09.2012 г.
New Page 2

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Исходники к уроку можно скачать здесь.

Сегодня мы немного усовершенствуем программу моделирования системы "Хищник, жертва, растения". В частности, добавим график изменения численности хищников, травоядных и растений:

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

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

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Вот как теперь будет программно выглядеть процесс симуляции:

        private void btnSimul_Click(object sender, EventArgs e)

        {

 

            _area = new Area();

            _area.availabalArea = Convert.ToDouble(tbAvailabalArea.Text);

            _area.herbivore = new Herbivore();

            _area.herbivore.count = Convert.ToInt32(tbHerbirove.Text);

            _area.herbivore.foodNeed = Convert.ToDouble(tbHerbiroveFood.Text);

            _area.herbivore.growthSpeed = Convert.ToDouble(tbHerbiroveSpeed.Text);

 

            _area.plant = new Plant();

            _area.plant.count = Convert.ToInt32(tbPlants.Text); ;

            _area.plant.countOnAreaUnit = Convert.ToDouble(tbCountOnAreaUnit.Text);

            _area.plant.growthSpeed = Convert.ToDouble(tbGrowthSpeed.Text);

 

            _area.predator = new Predator();

            _area.predator.count = Convert.ToInt32(tbPredators.Text);

            _area.predator.foodNeed = Convert.ToInt32(tbPredatorsFood.Text);

            _area.predator.growthSpeed = Convert.ToDouble(tbGrowthSpeedPred.Text);

           

           

            chGraphic.Series.Clear();

            chGraphic.Series.Add("Травоядные");

            chGraphic.Series.Add("Растения");

            chGraphic.Series.Add("Хищники");

            chGraphic.Series[0].ChartType = SeriesChartType.Line;

            chGraphic.Series[0].BorderWidth = 3;

            chGraphic.Series[1].ChartType = SeriesChartType.Line;

            chGraphic.Series[1].BorderWidth = 3;

            chGraphic.Series[2].ChartType = SeriesChartType.Line;

            chGraphic.Series[2].BorderWidth = 3;

 

            int cn = Convert.ToInt32(tbCount.Text);

 

            for (int i = 1; i < cn; i++)

            {

                chGraphic.Series[0].Points.AddXY(i, _area.herbivore.count);

                chGraphic.Series[1].Points.AddXY(i, _area.plant.count);

                chGraphic.Series[2].Points.AddXY(i, _area.predator.count);

                _area.liveLoop();

            }

        }

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

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Кстати, вы наверняка заметили, что данная модель очень далека от жизни: в реальности не бывает так, что растения, животные размножаются с постоянной скоростью, вне зависимости от численности популяции. Обычно бывает какой то естественный прирост в % от общего количества особей данного вида. С хищниками и травоядными у нас в модели это правило соблюдается. А с растениями нет. Вот и мы это и исрпавим в нашей модели, но это уже тема следующего урока.


Скриншоты, приведенные в данной статье, являются цитатами и иллюстрациями   программного продукта "Microsoft Visual Studio 2010", авторское право на который принадлежит Microsoft


 

 

Последнее обновление ( 24.09.2012 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги