Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2011, 18:24   #1
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
Сообщение

Смоделировать процесс распространения инфекции — стригущего лишая по участку кожи размером 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.

Последний раз редактировалось AlDelta; 08.05.2011 в 12:34.
r_max вне форума Ответить с цитированием
Старый 07.05.2011, 18:46   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

поиск то для чего придумали

http://programmersforum.ru/showthrea...8%E0%E9&page=3
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 07.05.2011, 18:50   #3
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию

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

вообще я считаю что тут можно создать матрицу n*n центральному элементу присвоить какой,нибудь символ и считать его зараженным. Но что взять за единицу времени?

вот подумал может от безысходности начать спамить типа "помогите!!!", решите срочно!!!!!!!!!"?)))))))))



//Пользуйтесь "правкой" постов, не надо плодить бессмысленные цепочки своих постов.
//Пока устное предупреждение.

Последний раз редактировалось AlDelta; 08.05.2011 в 12:36.
r_max вне форума Ответить с цитированием
Старый 07.05.2011, 19:25   #4
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Одна из тех задач, где ООП подход как нельзя кстати. Создаете классы: клетка, вирус. Далее чистый сандбокс... Можно даже графику прикрутить.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 07.05.2011, 19:28   #5
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию

в чем смысл создания классов? а графика необходима, только не знаю что именно использовать
r_max вне форума Ответить с цитированием
Старый 07.05.2011, 19:48   #6
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
в чем смысл создания классов?
В системе их взаимодействия.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 08.05.2011, 12:17   #7
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию

ну и каким образом они будут взаимодействовать?
r_max вне форума Ответить с цитированием
Старый 08.05.2011, 16:19   #8
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию

Вот какой я молодец)) сам решил) выложу для будущих поколений
p.s. это черновой вариант

Уже целых три просмотра)) интересно ваше мнение, господа... Что скажете?
Вложения
Тип файла: zip lishai.zip (6.0 Кб, 30 просмотров)

Последний раз редактировалось AlDelta; 09.05.2011 в 11:16.
r_max вне форума Ответить с цитированием
Старый 08.05.2011, 22:00   #9
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Заинтересовали вы меня! Решил сделать такой же, посмотрим что получится.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 09.05.2011, 09:25   #10
r_max
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию

хорошо, выкладывайте, посмотрим. может извлеку для себя что-нибудь полезное
r_max вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неубиваемый процесс Veiron Общие вопросы Delphi 12 11.12.2011 19:00
запущен ли процесс Vaska Общие вопросы C/C++ 0 03.04.2009 15:42
Завершить процесс Roman®© Общие вопросы Delphi 5 01.02.2009 15:53
Процесс ryton Операционные системы общие вопросы 5 28.05.2008 18:14
Завершить процесс doniyor Win Api 2 15.05.2008 21:52