Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 00:32   #1
Пони-плакса
 
Регистрация: 24.05.2010
Сообщений: 9
Вопрос Моделирование "Хищник-жертва".Необходим совет

Всем привет!Мне нужна помощь в моделировании системы хищник-жертва.Программу за меня писать не надо,я ее уже сделала.Мне необходимо добавить условие отлова хищников.Подскажите, как мне это сделать?Мне нужно ввести новую переменную и обозначить ее за отлов хищников?Или есть для этого формула?Подскажите,пожалуйста,если не трудно.Код и скрин программы я предоставлю

Задание.Создать модель системы "хищник-жертва" с условием отлова хищников.

Код программы
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button1: TButton;
Button2: TButton;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
var
N,C,r,q,a,f,dC,dN,dt,t:real;
//t:integer;
begin
N:=strtofloat(edit1.Text);
C:=strtofloat(edit2.Text);
r:=strtofloat(edit3.Text);
q:=strtofloat(edit4.Text);
a:=strtofloat(edit5.Text);
f:=strtofloat(edit6.Text);
t:=0;
dt:=0.01;
repeat
series1.AddXY(t,C,'',clred);
series2.AddXY(t,N,'',clblue);
t:=t+dt;
N:=N+(r*N-a*N*C)*dt;
C:=C+(f*a*C*N-q*C)*dt;
//C:=C+dC*dt;//100000;
//N:=N+dN*dt;//100000;
until t>1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
series1.Clear;
series2.Clear;
end;

end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Изображения
Тип файла: jpg хищник-жертва.JPG (46.4 Кб, 223 просмотров)

Последний раз редактировалось Serge_Bliznykov; 08.12.2010 в 08:43. Причина: код не был отформатирован
Пони-плакса вне форума Ответить с цитированием
Старый 08.12.2010, 07:15   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Может Вы все-таки снизойдете до простых смертных и объясните сирым и убогим, что же это за фигня - система хищник-жертва ? Или Вы думаете это обязан знать каждый?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 08.12.2010, 08:31   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Utkin, я с Вами согласен, обязательно нужно формулировать исходное условие задачи.

Хотя, в данном случае, в принципе, из рисунка всё понятно - задаются условия популяции, программа строит график зависимости численности (?кого? - жертв? хищников?) от времени...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.12.2010, 18:28   #4
Пони-плакса
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Utkin, я с Вами согласен, обязательно нужно формулировать исходное условие задачи.
Я написала условие.
Создать модель системы "Хищник-жертва" с условием отлова хищников.

Да, программа строит график зависимости численности хищников и жертв от времени
Пони-плакса вне форума Ответить с цитированием
Старый 08.12.2010, 21:05   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) имена Edit'ам лучше давать ОСМЫСЛЕННЫЕ!
2) у Вас же уже есть в Edit4 (переменная q) скорость убывания хищников? Это не оно?
3) если не оно - тогда добавляйте ещё один Edit и вычитайте на каждом шаге времени от количества хищников число отлова.
4) правильно писать "Скорость роста" (у Вас на форме "Скорость раста)
5) а если не секрет, откуда получены формулы для вычисления N и C ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.12.2010, 00:15   #6
Пони-плакса
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) имена Edit'ам лучше давать ОСМЫСЛЕННЫЕ!
2) у Вас же уже есть в Edit4 (переменная q) скорость убывания хищников? Это не оно?
3) если не оно - тогда добавляйте ещё один Edit и вычитайте на каждом шаге времени от количества хищников число отлова.
4) правильно писать "Скорость роста" (у Вас на форме "Скорость раста)
5) а если не секрет, откуда получены формулы для вычисления N и C ?
1.Имена осмысленные.Понимаете,нам так говорят подписывать
2.q это скорость убывания хищников в следствие естественных причин(например болезней)
3.Я знаю,что пишется рОста,не было времени исправлять
4.Все формулы взяты из учебника "Практикум по информатике" авторы Могилев,Пак,Хеннер (2 из-е) и из методички преподавателя
Пони-плакса вне форума Ответить с цитированием
Старый 09.12.2010, 01:27   #7
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

В общем и целом отлов-та же убыль численности,как и болезни,поэтому думаю,что возможно ввести такую формулу:
Код:
N:=N+(r*N-a*N*C)*dt;
C:=C+(f*a*C*N-(ОТЛОВ+q)*C)*dt;
Хотя когда я проходил эту модель нам необходимо решать диф-ное уравнение или использовать Рунге-Кутта... НО раз в учебнике написано...
P.S. Мне кажется в корне неверным такое решение, ибо это система диф. уравнений,а не просто уравнений и брать малое приращение,мягко говоря, неправильно... Возможно я ошибаюсь. Даю ссылку на учебник Самарского "Мат. моделирование", ПДФ, 2,7 Мб. Модель хищник-жертва на 171 стр.
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 09.12.2010 в 01:44.
Скарам вне форума Ответить с цитированием
Старый 09.12.2010, 09:15   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Скарам, отличный ответ!


Цитата:
Сообщение от Пони-плакса
Цитата:
Сообщение от Serge_Bliznykov
имена Edit'ам лучше давать ОСМЫСЛЕННЫЕ!
Имена осмысленные.Понимаете,нам так говорят подписывать
Вы, похоже, не понимаете, о чём я говорю...
edit1 лучше назвать не edit1, а, например, edCountOfBeast или edKolichestvoHishnikov
edit2 лучше переименовать в edCountOfFoodAnimal или edKolichestvoGertv
edit3 -> edSpeedOfRaiseFoodAnimal
ну и т.д.

согласитесь, что так немного понятнее?... и ошибится, в каком поле что находится, намного меньше, и понимать/сопровождать проще....
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Моделирование работы конечного детерминированного автомата" Леська17 Помощь студентам 7 19.05.2016 19:53
Создание модели хищник-жертва средствами Excel. Pavel_Ine Microsoft Office Excel 5 05.05.2014 18:26
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
СРОЧНО!!! Тема:"Моделирование колебаний линейного гармонического осциллятора" Может у Бука Помощь студентам 1 04.03.2007 16:22