
08.05.2011, 13:23
|
Прохожий
|
|
Регистрация: 08.05.2011
Адрес: казахстан
Сообщения: 4
Версия Delphi: 7 enterprise
Репутация: 10
|
|
Моделирование инфекционного заболевания на Delphi
Смоделировать процесс распространения инфекции — стригущего лишая по участку кожи размером n*n (n — нечетное) клеток. Предполагается, что исходной зараженной клеткой кожи является центральная. В каждый интервал времени пораженная инфекцией клетка может с вероятностью 0,5 заразить любую из соседних здоровых клеток. По прошествии шести единиц времени зараженная клетка становится невосприимчивой к инфекции. Возникший иммунитет действует в течение последующих четырех единиц времени, а затем клетка оказывается здоровой. В ходе моделирования описанного процесса выдавать текущее состояние моделируемого участка кожи в каждом интервале времени отмечая зараженные, невосприимчивые к инфекции и здоровые клетки. Я к сожалению не силен в Delphi, смог реализовать только на Pascal. Теперь пытаюсь разобраться и в Delphi, надеюсь что Ваши советы направят меня по нужному пути!
вот то что у меня получилось в Pascal
Код:
Код:
uses
CRT;
const
n= 21; {размер области}
Cont= 50; {заразность в процентах}
Ill= 6; {время болезни}
Imm= 4; {длительность иммунитета}
var
a,b: array[1..n,1..n]of integer;
i,j: integer;
c: char;
procedure Show;
begin
for i:=1 to n do begin
for j:=1 to n do
if (a[i,j]>0) then Write(' #') else if a[i,j]<0 then Write(' +') else Write(' ');
WriteLn
end
end;
begin
FillChar(a,SizeOf(a),0);
a[n div 2+1,n div 2+1]:=1;
Show;
Randomize;
repeat
b:=a;
for i:=1 to n do begin
for j:=1 to n do begin
if a[i,j]>0 then begin
if (i>1) and (b[i-1,j]=0) and (Random(100)<Cont) then b[i-1,j]:=1;
if (j>1) and (b[i,j-1]=0) and (Random(100)<Cont) then b[i,j-1]:=1;
if (i<n) and (b[i+1,j]=0) and (Random(100)<Cont) then b[i+1,j]:=1;
if (j<n) and (b[i,j+1]=0) and (Random(100)<Cont) then b[i,j+1]:=1;
Inc(b[i,j]);
if b[i,j]>Ill then b[i,j]:=-Imm
end
else if a[i,j]<0 then Inc(b[i,j])
end
end;
a:=b;
Show;
WriteLn;
c:=ReadKey
until c=#27
end.
Последний раз редактировалось Aristarh Dark, 08.05.2011 в 14:06.
|