Уроки 13 - 16
§1.5. Биологические модели развития популяций
Содержание урока
1.5.2. Компьютерные модели развития популяций на языке Visual Basic
Проект «Численность популяций» на языке Visual Basic
Анализ полученных результатов
Контрольные вопросы
1.5.2. Компьютерные модели развития популяций на языке Visual Basic
Проект «Численность популяций» на языке Visual Basic
Построим на языке Visual Basic компьютерную модель, позволяющую исследовать изменение со временем численности популяций с использованием различных моделей:
• неограниченного роста,
• ограниченного роста,
• ограниченного роста с отловом и «жертва-хищник».
1. Поместить на форму (рис. 1.23) текстовые поля для ввода:
• значений коэффициентов а, b, с и f, влияющих на изменение численности жертв: TextBoxA, TextBoxB, TextBoxC и TextBoxF;
• значений коэффициентов dug, влияющих на изменение численности хищников: TextBoxD и TextBoxG;
• начальной численности популяций жертв и хищников: TextBoxX и TextBoxY;
• количества рассматриваемых жизненных циклов (лет) TextBoxN.
2. Поместить на форму надписи для вывода численности популяций через заданное количество лет:
• при неограниченном росте Label1;
• при ограниченном росте Label2;
• при ограниченном росте с отловом Label3;
• в модели «жертва-хищник» Label4 и Label5.
3. Поместить на форму графическое поле PictureBox1 для рисования графиков зависимости численности популяций жертв и хищников от количества жизненных циклов (лет).
С помощью диалогового окна Свойства присвоить свойству Width значение 320, а свойству Height — значение 220.
4. Поместить на форму надписи для вывода обозначений и поясняющих текстов.
5. Объявить переменные и графические инструменты:
Dim Graphl As Graphics
Dim Pen1 As New Pen (Color. Black, 2)
Dim Pen2 As New Pen (Color, Green, 2)
Dim Pen3 As New Pen (Color. Blue, 2)
Dim Pen4 As New Pen (Color. Brown, 2)
Dim Pen5 As New Pen (Color. Red, 2)
Dim drawBrush As New SolidBrush(Color.Black)
Dim drawFont As New Font("Arial", 10)
Dim X, Y As Integer, N, I, А, В, C, D, G, _ F, XI, X2, X3, X4, Yl As Single
Для различных моделей динамики изменения численности популяций создадим событийные процедуры, где в цикле вычисляется численность популяций и результат (численность популяций) выводится на надписи.
6. Поместить на форму кнопку Button2 и создать событийную процедуру вычисления численности популяции в модели неограниченного роста:
' Нeограничемный рост
Private Sub Button2_Click (...)
A=val(TextBoxA.Text)
Xl=Val(TextBoxX.Text)
N-Val(TextBoxN.Text)
For I=1 To N
X1=A*X1
Next I
Label1.Text=Int (X1)
End Sub
7. Поместить на форму кнопку Button3 и создать событийную процедуру вычисления численности популяции в модели ограниченного роста:
'Ограниченный рост
Private Sub Button3_Click (...)
A=Val(TextBoxA.Text)
B=Val(TextBoxB.Text)
X2=Val(TextBoxX.Text)
N=Val(TextBoxN.Text)
For I=1 To N
X2=(A-B*X2)*X2
Next I
Label2, Text=Int (X2)
End Sub
8. Поместить на форму кнопку Button4 и создать событийную процедуру вычисления численности популяции в модели ограниченного роста с отловом:
'Ограниченный рост с отловом
Private Sub Button4_Click (...)
A=Val(TextBoxA.Text)
B=Val(TextBoxB.Text)
C=Val(TextBoxC.Text)
X3=Val(TextBoxX.Text)
N=Val(TextBoxN.Text)
For I=1 To N
X3=(A-B*X3)*X3-C
Next I
Label3, Text=Int (X3)
End Sub
9. Поместить на форму кнопку Button5 и создать событийную процедуру вычисления численности популяции в модели «жертва-хищник»:
'Жертва -хищник
Private Sub Button5_Click (...)
A=Val(TextBoxA.Text)
B=Val(TextBoxB.Text)
C=Val(TextBoxC.Text)
D=Val(TextBoxD.Text)
F=Val(TextBoxF.Text)
G=Val(TextBoxG.Text)
X4=Val(TextBoxX.Text)
Yl=Val(TextBoxY.Text)
N=Val(TextBoxN.Text)
For I=1 To N
X4=(A-B*X4)*X4-C-F*X4*Y1
Y1=D*Y1+G*X4*Y1
Next I
Label4.Text=Int(X4)
Label5.Text=Int(Yl)
End Sub
10. Поместить на форму кнопку Button1 и создать событийную процедуру построения графиков зависимости численности популяций от количества жизненных циклов (лет) для различных моделей:
Private Sub Button1_Click (...)
Graph1=Me.PictureBoxl.CreateGraphics()
Graph1.Clear(Color.White)
'Печать шкал системы координат
For Х=20 То 320 Step 50
Graph1.DrawString ( (X-20), drawFont,_drawBrush, X-20, 200)
Next X
For Y=0 To 200 Step 40
Graph1.DrawString(Y, drawFont, drawBrush,_0, 200-Y)
Next Y
'Преобразование компьютерной системы
'координат в используемую систему координат
Graph1.ScaleTransform(1, -1)
'Поворот оси Y
Graph1.TranslateTransform(20, -200)
'Сдвиг по осям X и Y
'Рисование осей с засечками
Graph1.DrawLine(Penl, О, О, 300, 0) 'Ось X
Graph1.DrawLine (Penl, О, О, 0, 200) 'Ось Y
For Х=0 То 300 Step 50 'Засечки на оси X
Graph1.DrawLine(Penl, X, -5, X, 5)
Next X
For Y=0 To 200 Step 40 'Засечки на оси У
Graph1.DrawLine (Pen1, -5, Y, 5, Y)
Next Y
'График неограниченного роста
Xl=Val(TextBoxX.Text)
For I = 1 To 100
Graph1.DrawEllipse (Pen1, I, XI, 1, 1)
X1=A*X1
Next I
'График ограниченного роста
X2=Val(TextBoxX,Text)
For I = 1 To N
Graph1.DrawEllipse(Pen2, I, X2, 1, 1)
X2=(A-B*X2)*X2 Next I
'График ограниченного роста с отловом
X3=Val(TextBoxX.Text)
For I = 1 To N
Graph1.DrawEllipse(Pen3, I, X3, 1, 1)
X3= (A-B*X3) *X3-C
Next I
'Графики в модели жертва-хищник
X4=Val(TextBoxX.Text)
Yl=Val(TextBoxY.Text)
For I = 1 To N
X4=(A-B*X4)*X4-C-F*X4*Y1
Y1=D*Y1+G*X4*Y1
Graph1.DrawEllipse(Pen4, I, X4, 1, 1)
Graph1.DrawEllipse(Pen5, I, Yl, 1, 1)
Next I
End Sub
11. Запустить проект и ввести значения коэффициентов, начальное количество жертв и хищников и количество жизненных циклов (лет). Последовательно щелкнуть по кнопкам, на надписи будут выведены значения численности популяций, а в графическом поле будут построены графики, показывающие динамику развития популяций (см. рис. 1.23).
Рис. 1.23. Проект «Численность популяций» на языке Visual Basic
Следующая страница Анализ полученных результатов
Cкачать материалы урока