![]() |
|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
![]() Для начала, создай собственную тему - не мусорь в чужих.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
|||
|
|||
![]() между прочим любопытное наблюдение
если уменьшать длительность невосприимчивости (иммунитета) то возникает следующий эффект кольцо иммунитета становится более тонким ( у меня это кольцо желтого цвета) в результате некоторые зараженные клетки проскакивают внутрь кольца и оказываются в области где находятся клетки уже переболевшие и успевшие потерять иммунитет. В результате происходит вторичное заражение! Процесс развивается бесконечно! (не знаю насколько эта модель близка к реальности) В общем любопытная игрушка получилась.... |
#11
|
||||
|
||||
![]() Дык лишай реально трудно излечим. Вероятно из-за случаев вторичного заражения.
Хорошо написанная программа не требует документации ICQ 9-184-668. |