Программа эмуляции развития популяций животных
Рефераты >> Зоология >> Программа эмуляции развития популяций животных

tt:=tt+1;

k:=j;

repeat

k:=k+1;

x1:=tg[k].getx;

y1:=tg[k].gety;

at1:=tg[k].daiage;

ct1:=tg[k].daizwet;

tg[k].done;

tg[k-1].init(x1,y1,at1,ct1);

tg[k-1].show;

until k>=g;

TG[G].INIT(0,0,0,0);

G:=G-1;

j:=j-1;

end

else

begin

end;

until j>=g;

end;

end;

{**********************************************************}

procedure havka;

begin

if ((z mod 365)=0) and (tt>0) then

begin

x1:=(tt div ht);{сколько прокормилось в этом году}

j:=0;

y1:=w;{max vozrast}

if x1=0 then

begin

for i:=1 to m do

begin

hr[i].init(0,0,0,0);

hr[i].done;

end;

end;

if (x1<m) and (x1<>0) then

begin

repeat

j:=j+1;

if hr[j].daiage=y1 then

begin

hr[j].done;

hr[j].init(0,0,0,0);

for i:=j+1 to m do

-15-

begin

x:=hr[i].getx;

y:=hr[i].gety;

at1:=hr[i].daiage;

ct1:=hr[i].daizwet;

hr[i].done;

hr[i-1].init(x,y,at1,ct1);

HR[i-1].show;

end;

hr[m].init(0,0,0,0);

m:=m-1;

if m<=0 then

begin

key:=true;

break;

end;

end;

if j>=m then

begin

j:=0;

y1:=y1-1;

end;

if m<=0 then break;

until x1=m

end;

end;

end;

{***********************************************************}

procedure tmor;{мор травоядных}

begin

y:=g-x;

if x>0 then

begin

repeat

j:=random(g)+1;

tg[j].done;

tg[j].init(0,0,0,0);

tt:=tt+1;

for i:=j+1 to g do

begin

x1:=tg[i].getx;

y1:=tg[i].gety;

at1:=tg[i].daiage;

ct1:=tg[i].daizwet;

tg[i].done;

tg[i-1].init(x1,y1,at1,ct1);

tg[i-1].show;

end;

tg[g].done;

tg[g].init(0,0,0,0);

g:=g-1;

until y=g;

end;

end;

{***********************************************************}

-16-

procedure hmor;{мор хищников}

begin

y:=m-x;

if x>0 then

begin

repeat

j:=random(m)+1;

hr[j].done;

hr[j].init(0,0,0,0);

for i:=j+1 to m do

begin

x1:=hr[i].getx;

y1:=hr[i].gety;

at1:=hr[i].daiage;

ct1:=hr[i].daizwet;

hr[i].done;

hr[i-1].init(x1,y1,at1,ct1);

hr[i-1].show;

end;

hr[m].done;

hr[m].init(0,0,0,0);

m:=m-1;

until m=y;

end;

end;

{***********************************************************}

procedure zasux;{засуха}

begin

tree:=tree - random(round(tree/10));

end;

{***********************************************************}

procedure quit;

begin

window(1,1,80,25);

fon(black);

clrscr;

GOTOXY(1,24);

txt(White);

WRITELN(' --------------------------------------------------

----------------------------');

txt(yellow);

WRITELN(' Antony Sokolov | FidoNet 2:5078/20.4 AKA

2:5078/20.666 AKA 2:5078/22.666');

txt(White);

WRITELN(' --------------------------------------------------

----------------------------');

end;

{***********************************************************}

procedure herb;{травоядные}

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln('Правила ввода для травоядных');

gotoxy(2,2);write('Кол-во травоядных не более 3000.');

write(' Корм на месяц в килограммах. ');gotoxy(2,3);

-17-

write('Помет - кол-во детенышей. ');write('Цвет вывода от 1

до 15');

colorwind(40,10,65,19,black,green);

gotoxy(6,1);

txt(Yellow);

write('Травоядные');

gotoxy(2,2);

write('Кол-во: '); {начальное кол-во травоядных}

readln(g);

txt(yellow);

gotoxy(2,3);

write('Корм : ');{кол-во корма в год на одного

травоядного}

readln(ttt);

ttt:=ttt/1000;

gotoxy(2,4);

write('Помет: '); {рождаемость}

readln(tp);

gotoxy(2,5);

write('Min детородный: ');

read(tmin);

gotoxy(2,6);

write('Max детородный: ');

read(tmax);

gotoxy(2,7);

write('Max возрaст: ');

read(v);

gotoxy(2,8);

write('Цвет вывода: ');

read(ct);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure beast; {хищники}

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln('Правила ввода для хищников');

gotoxy(2,2);write('Кол-во хищников не более 1000.');

write(' Корм - кол-во травоядных в год. ');gotoxy(2,3);

write('Помет - кол-во детенышей. ');write('Цвет вывода от 1

до 15');

colorwind(40,10,65,19,black,red);

gotoxy(8,1);

txt(Yellow);

write('Хищники');

gotoxy(2,2);

txt(yellow);

write('Кол-во: ');

readln(m);

gotoxy(2,3);

write('Корм: ');{начальное кол-во хищников}

readln(ht);

gotoxy(2,4);

write('Помет: ');{рождаемость}

-18-

readln(hp);

gotoxy(2,5);

write('Min детородный: '); {естественная смертность}

read(hmin);

gotoxy(2,6);

write('Max детородный: '); {естественная смертность}

read(hmax);

gotoxy(2,7);

write('Max возраст: '); {естественная смертность}

read(w);

gotoxy(2,8);

write('Цвет вывода: ');

read(ch);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure env ; {среда обитания}

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln('Правила ввода для среды');

gotoxy(2,2);write('Кол-во травы не менее 1000.');

write('Процент восстановления любой.');gotoxy(2,3);

write('Катастрофы: 0 или 1 - нет, 2 и более-есть.');

gotoxy(2,4);

write('Задержка сообщений в мс. Рекомендуется не менее

1000');

colorwind(40,10,75,17,black,Magenta);

gotoxy(13,1);

txt(Yellow);

write('Среда обитания');

gotoxy(2,2);

txt(yellow);

write('Кол-во травы: ');{Кол-во востанавливаемой

пищи для травоядных в год}

readln(tree);

gotoxy(2,3);

write('Процент восстановления: ');

readln(tr);

gotoxy(2,4);

write('Наличие катастроф: ');

readln(kata);

gotoxy(2,5);

write('Задержка сообщений: ');

readln(q);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure info;

begin

fon(15);

colorwind(1,4,70,16,black,Lightblue);

txt(Green);

gotoxy(2,2);write('Травоядных-',g,' Хищников-',m);

str(ttt:1:2,s);

-19-

gotoxy(2,3);

write(s,' т. травы и ',ht,' туш нужно на прокорм животных');

gotoxy(2,4);

write('Max возраст травоядных ',v,', хищников ',w);

gotoxy(2,5);

write('Детородный возраст травоядных от ',tmin,' до ',tmax);

gotoxy(2,6);

write('Детородный возраст хищников от ',hmin,' до ',hmax);

gotoxy(2,7);

write('Помет травоядных до ',tp,', хищников до ',hp);


Страница: