IPB
ЛогинПароль:

> помогите с практикой пожалуйста, Задача об инфекции стригущего лишая.
ИлюХа
сообщение 24.06.2009 18:01
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Задача об инфекции стригущего лишая.
Промоделировать процесс распространения инфекции — стригущего лишая по участку кожи размером n*n (n — нечетное) клеток. Предполагается, что исходной зараженной клеткой кожи является центральная. В каждый интервал времени пораженная инфекцией клетка может с вероятностью 0,5 заразить любую из соседних здоровых клеток. По прошествии шести единиц време­ни зараженная клетка становится невосприимчивой к инфекции. Возникший иммунитет действует в течение последующих четырех единиц времени, а затем клетка оказывается здоровой. В ходе моделирования описанного процесса выдавать текущее состояние моделируемого участка кожи в каждом интервале времени отмечая зараженные, невосприимчивые к инфекции и здоровые клетки. пожалуйста если можно сделайте в течении 3 дней


Сообщение отредактировано: ИлюХа - 24.06.2009 18:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 1.07.2009 13:48
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Теперь можно опубликовать код, использованных для приведенных выше расчетов.

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.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.07.2025 3:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"