Программа эмуляции развития популяций животных
| Категория реферата: Рефераты по зоологии
| Теги реферата: решебник 6, дипломы скачать бесплатно
| Добавил(а) на сайт: Доса.
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата
program fauna;
uses mycrt,dos,graph,fauna1,tpcrt; var q,x,y,x1,y1,gd,gm,t,i,j,k,AT,at1,ct1,ctp:integer;{общие} g,v,m,w:integer;{} ct,ch:shortint;{цвет} tmin,tmax,hmin,hmax,tp,hp:integer;{детородность} tt:integer;{трупы и съеденые травоядные за 1 год} kata,ht:integer; ttt,tr:real; z,tree,TREE1:longint; key:boolean; s,ss:string[17]; tg:array[1..4400] of tosob; {green-травоядных} hr:array[1..1350] of tosob; {red-хищников} pal:FillPatternType;
{***********************************************************}
procedure ini;
begin for i:=1 to g do begin at:=RANDOM(v)+1; tg[i].init((random(630)+5),(random(462)+18),at,ct); tg[i].show; end; for i:=1 to m do begin at:=random(w)+1;
HR[i].init((random(630)+5),(random(462)+18),at,ch); hr[i].show; end;
end;
{***********************************************************}
procedure tnew;
begin
I:=0;
REPEAT
I:=I+1; begin x:=tg[i].getx; y:=tg[i].gety;
AT:=TG[I].DAIAGE;
CTP:=TG[I].DAIZWET; if (z mod 365)=0 then
BEGIN at:=at+1; {Happy New Year!}
TG[I].INIT(X,Y,AT,CTP);
END; if at>v then {Old ?} begin tg[i].done;
-11-
tg[i].init(0,0,0,0); tt:=tt+1;{умершее животное} for j:=i+1 to g do begin x1:=tg[j].getx; y1:=tg[j].gety; at1:=tg[j].daiage; ct1:=tg[j].daizwet; tg[j].done; tg[j-1].init(x1,y1,at1,ct1); tg[j-1].show; end;
TG[G].INIT(0,0,0,0);
G:=G-1;
I:=I-1;
CONTINUE; end; x:=tg[i].getx; y:=tg[i].gety; x:=x+(random(3)-1); y:=y+(random(3)-1); if x635 then x:=634;if y480 then y:=479;
AT:=TG[I].DAIAGE;
CTP:=TG[I].DAIZWET; tg[i].done;
IF CT0 THEN
BEGIN tg[i].init(x,y,at,CTP); tg[i].show;
END;
END;
UNTIL I>=G;
end;
{***********************************************************}
procedure trod;
begin if (z mod 365)=0 then {Happy New Year!} begin t:=0; for i:=1 to g do begin at:=tg[i].daiage; if (tmin4100 then break; end; g:=g+1+x; if g>4000 then begin key:=true; end; end else begin end; end;
end;
{***********************************************************}
procedure hnew;
begin
I:=0;
REPEAT
I:=I+1; begin x:=hr[i].getx; y:=hr[i].gety;
At:=hr[I].DAIAGE;
CTp:=hr[I].DAIZWET; if (z mod 365)=0 then
BEGIN at:=at+1; {Happy New Year!} hr[I].INIT(X,Y,At,CTp);
END; if at>w then {Old ?} begin hr[i].done; hr[i].init(0,0,0,0); for j:=i+1 to m do begin x1:=hr[j].getx; y1:=hr[j].gety; at1:=hr[j].daiage; ct1:=hr[j].daizwet; hr[j].done; hr[j-1].init(x1,y1,at1,ct1); hr[j-1].show; end; hr[m].INIT(0,0,0,0); m:=m-1;
I:=I-1;
CONTINUE; end; x:=hr[i].getx; y:=hr[i].gety; x:=x+(random(3)-1); y:=y+(random(3)-1); if x635 then x:=634;if y480 then y:=479;
AT:=hr[I].DAIAGE;
CTp:=hr[I].DAIZWET; hr[i].done;
IF CTp0 THEN
BEGIN hr[i].init(x,y,at,CTp); hr[i].show;
END;
END;
UNTIL I>=m;
end;
{**********************************************************}
procedure hrod;
begin if (z mod 365)=0 then {Happy New Year!} begin t:=0; for i:=1 to m do begin at:=hr[i].daiage; if (hmin1000) or (m=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 (x10 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); gotoxy(2,8);write('Травы ',tree,' тонн '); str(tr:1:2,s); gotoxy(2,9);write('Прирост травы на каждый месяц ',s,'%'); if (kata=0) or (kata=1) then s:='отсутствует' else s:='присутствует'; gotoxy(2,10);write('Вероятность катаклизмов ',s); s:=colword(ct); gotoxy(2,11);write('Цвет травоядных ',s); s:=colword(ch); write(' Цвет хищников ',s);
end;
{***********************************************************}
procedure Gmenu;
begin fon(black); clrscr; colorwind(1,1,80,4,black,darkgray); txt(14); gotoxy(5,2); write(' S'); txt(white); write('tart '); txt(yellow); write('O'); txt(white); write('ption '); txt(yellow); write('Q'); txt(white); write('uit');
END;
{***********************************************************}
PROCEDURE Omenu;
begin colorwind(45,3,62,8,black,darkgray); hiddencursor; txt(14); gotoxy(2,2); write('H'); txt(white); writeln('erbivorous'); txt(yellow); gotoxy(2,3); write('B'); txt(white);
-20-
writeln('east of prey'); txt(yellow); gotoxy(2,4); write('E'); txt(white); write('nvironment');
end;
{***********************************************************}
procedure start;
begin randomize; gD := Detect;
InitGraph(gD,gM,''); setfillpattern(pal,black); z:=0;{начало эры} tt:=0; {трупы и съеденные} ini; repeat key:=false; z:=z+1; if ((z mod 365)=0) or ((z mod 365)=31) or ((z mod 365)=59) or ((z mod 365)=90) or ((z mod 365)=120) or ((z mod
365)=151) or ((z mod 365)=181) or ((z mod 365)=212) or
((z mod 365)=242) or ((z mod 365)=273) or ((z mod
365)=303) or ((z mod 365)=334) then begin tree:=round(tree-g*ttt);{съели за месяц} tree:=tree+round(tree*(tr/100));{прирост травы в месяц} x:=round(tree*ttt);{травоядные умирают от недоедания} if tree0 then begin dead;{хищники едят травоядных} hnew;{естественная смертность хищников} havka;{хищники умирают от недоедания} hrod;{рождение хищников} end; if ((z mod 365)=180)and(g>0)and(m>0) then begin if random(kata)0 then begin x:=random(4); if x=0 then begin x:=random(round(g/50))+5; moveto(320,240);setcolor(Lightred);str(x,s);
Outtext('Болезнь травоядных унесла ');
Рекомендуем скачать другие рефераты по теме: курсовая работа 2011, сеть рефератов, реферат по русскому.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата