![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Смоделировать процесс распространения инфекции — стригущего лишая по участку кожи размером 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. |
|
#2
|
|||
|
|||
|
Инфицированная клетка может заразить только одну соседнюю здоровую клетку с вер. 0.5? Или любое кол-во соседних с вер. 0.5?
|
|
#3
|
|||
|
|||
|
одну в каждый интервал времени
|
|
#4
|
|||
|
|||
|
Нажмешь кнопку "Начать"
|
|
#5
|
|||
|
|||
|
Благодарю! очень помог!!
|
|
#6
|
|||
|
|||
|
вспоминаю свое детство. Похоже.
Не гладь бродячих кошек. Тогда и над программой не придется пыхтеть..... |
|
#7
|
|||
|
|||
|
Благодарю и Вас, chainik! но считаю что выбранный Вами способ не дает наглядности
Последний раз редактировалось r_max, 09.05.2011 в 10:37. |
|
#8
|
|||
|
|||
|
помогите пожалуйста написать программу на Delphi!!!!
Есть код на DPSS, а в Delphi я не сильна.... Двухколейная железная дорога имеет между станциями A и B одноколейный участок с разъездом C. На разъезде имеется запасной путь, на котором один состав может пропустить встречный поезд. К станциям A и B поезда прибывают с двухколейных участков каждые минут. Участок пути AC поезда преодолевают за минут, а участок BC за минут. Со станций A и B поезда пропускаются на одноколейный участок до разъезда только при условии, что участок свободен, а на разъезде не стоит состав. После остановки на разъезде поезда пропускаются на участок сразу, после его освобождения. Поезд останавливается на разъезде, если по лежащему впереди него участку пути движется встречный поезд. Смоделировать работу одноколейного участка железной дороги при условии, что в направлении AB через него должны проследовать 50 составов. Определить среднее время ожидания составов на станциях A и B, а также среднее время ожидания на разъезде C и коэффициент загрузки запасного пути. |
|
#9
|
||||
|
||||
|
Для начала, создай собственную тему - не мусорь в чужих.
|
|
#10
|
|||
|
|||
|
между прочим любопытное наблюдение
если уменьшать длительность невосприимчивости (иммунитета) то возникает следующий эффект кольцо иммунитета становится более тонким ( у меня это кольцо желтого цвета) в результате некоторые зараженные клетки проскакивают внутрь кольца и оказываются в области где находятся клетки уже переболевшие и успевшие потерять иммунитет. В результате происходит вторичное заражение! Процесс развивается бесконечно! (не знаю насколько эта модель близка к реальности) В общем любопытная игрушка получилась.... |
|
#11
|
||||
|
||||
|
Дык лишай реально трудно излечим. Вероятно из-за случаев вторичного заражения.
|