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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2019, 20:19   #51
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

Я не просто так мечусь между грибами и социумом.
По грибам у меня есть у кого спросить научного совета по части математики и алгоритмов.
По социуму есть у кого спросить совета по теории социума.
Но математика модели- она первична.
Потому пока что решил сначала получить шаблон статьи по модели. сделать шаблон, по которому я сделаю статью социальной модели

этим шаблоном будет являться статья по грибам

когда мне научный редактор - он работает на кафедре биофизики МГУ- скажет, что статья норм, я буду ее переделывать уже под социум
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Старый 01.03.2019, 11:52   #52
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

Добавил в lybrary
более простое описание клеточного автомата. частично с хабра стырил

Идея КА моделирования была сформулирована в 1940-х годах Дж. фон Нейманом (Гаврилов and Матюшкин 2015). КА включает таблицу из ячеек-клеток, и каждая из них может находиться в одном из состояний, определяемых некоторыми правилами. Таблица может состоять из одной строки.
Вид каждой ячейки или вид переменных внутри ячейки определяются правилами, одинаковыми для всех таблицы. Эти правила диктуют преобразование состояния каждой клетки в последующий момент в зависимости от состояния клетки и ее соседей в предыдущий момент.

Представим ряд нулей с двойкой на втором месте:

... 0 2 0 0 0 0 0 0 ...
Введем правило КА, что на каждом шаге автомата мы заменяем число в каждой клетке на сумму этого числа и соседа слева. Произведем вычисления на первом шаге клеточного автомата. Первый член ряда, ноль, не имеет соседа слева, потому ноль плюс ноль равно ноль. До первого шага на первом месте был ноль, и заменяем мы этот ноль на сумму 0+0. Второй член – двойка – в качестве соседа слева имеет ноль, потому при суммировании 0+2 получаем два, и эту двойку мы поставим на первом шаге клеточного автомата вместо старой двойки. А вот на третьем месте до первого шага был ноль, на первом же шаге мы к нему суммируем двойку слева и получаем двойку на третьей ячейке КА. Действуя аналогично, получим следующую серию состояний:

... 0 2 0 0 0 0 0 0 ...шаг 0
... 0 2 2 0 0 0 0 0 ...шаг 1
... 0 2 4 2 0 0 0 0 ...шаг 2


Основная проблема в КА сделать такие правила поведения ячеек, которые, будучи применены ко всему их множеству, дадут схожую с реальностью картину (Гаврилов and Матюшкин 2015). Правила КА могут быть разными, такими как выбор: 1 и 0, правда и ложь, функция, число. Правилом КА может быть также система дифуров. Состояние одной клетки определяется правилами, а реализация этих правил зависит от соседних клеток.
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Старый 01.03.2019, 16:46   #53
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

Ошибка
[dcc32 Error] Unit2.pas(265): E2096 Method identifier expected

Из FArea
-массива класса TFiield , я отправляю числа в таблицу Стринг грид класса Tform2 , с помощью procedure TForm2.fillStiringGrid.

После заполнения стрингГрид я окрашиваю стринг грид, Окрашиваю те ячейки, в которых есть пометка Fiield[i,j].exist=true
Вот код процедуры . Ошибка подсвечена оранжевым

Код:
procedure TForm2.StringGrid1DrawCell(Field:Tfield; Sender: TObject; ACol, ARow: integer;
  Rect: TRect; State: TGridDrawState);
var
  text: string;  //для пуша
begin
  Field:= Tfield.Farea ;
  StringGrid1.Canvas.Brush.Color := clRed;
  if ((ACol = 4) and (ARow = 4) and (StringGrid1.Cells[ACol, ARow] <> '')) then
    StringGrid1.Canvas.FillRect(Rect);
  if StringGrid1.Cells[ACol, ARow] = '' then    //для пуша
    exit;

  if (abs(ACol - 4) <= 1) and (abs(ARow - 4) <= 1) and
    ((ACol <> 4) or (ARow <> 4)) and
    (FArea[ACol, ARow].exist = true) then
  begin
    StringGrid1.Canvas.Brush.Color := clGreen;
    StringGrid1.Canvas.Font.Color := clWhite;
    StringGrid1.Canvas.FillRect(Rect);
    text := StringGrid1.Cells[ACol, ARow];
    DrawText(StringGrid1.Canvas.Handle, PChar(text), Length(text), Rect,
      DT_CENTER or DT_VCENTER or DT_SINGLELINE);
  end;
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками

Последний раз редактировалось anaschu; 01.03.2019 в 17:27.
anaschu вне форума Ответить с цитированием
Старый 03.03.2019, 14:19   #54
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

Пока не получается у меня визуализировать изменения внутри Стринг грид. Но внутри ТФилд все работет.

На основе 4го урока Пока что делаю вот что :
добавляю класс фэмили внутрь своей программы

Класс работает, но не отображается в стринг грид



Предыдущие ошибки по работе с классами будут разбираться вот тут
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками

Последний раз редактировалось anaschu; 03.03.2019 в 14:23.
anaschu вне форума Ответить с цитированием
Старый 04.03.2019, 16:57   #55
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

начал делать саму соц модель, а не шаблон для любых организмов ( растения животные грибы).
Теперь точно для людей.
Вот последовательное усложнение программы. TField работает, но не отображается в стринг грид/
Последние изменения буду делать в отдельном репозитории для социальной модели

https://gitlab.com/anaschu/social_model

Вот описание модели
https://docs.google.com/document/d/1...3WFCb3gno/edit

поле для Fstep не ввёл пока что, потому программа выходит на бескончечный цикл. надо ограничить Fstep
Вложения
Тип файла: rar 5. создаем tcell1.rar (910.3 Кб, 8 просмотров)
Тип файла: rar 5. создаем tcell2.rar (910.3 Кб, 8 просмотров)
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками

Последний раз редактировалось anaschu; 04.03.2019 в 17:12.
anaschu вне форума Ответить с цитированием
Старый 04.03.2019, 19:12   #56
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

Дальше буду рассматривать:

1.запись в стринг грид У меня ошибки там сейчас)
2. вычитание ресурсов из клетки на функционирование человека
3. разделение Unita на листы
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Старый 04.03.2019, 21:21   #57
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

1. запись в стринг грид и ошибки.

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

Конкретно это переменные MaxRes и Farea

так же проблемы были с :
// step:Integer;
// field: TField;
их я тоже не там создавал, они были не глобальные переменные, а переменные внутри класса Tform2

измененная программа содержится в прикрепленном файле.
но сейчас получается крайне правильный узор заполнения клеточного автомата. Возможно, это связано с параметром exist
Изображения
Тип файла: jpg Скриншот 2019-03-04 21.23.44.jpg (100.4 Кб, 129 просмотров)
Вложения
Тип файла: rar 5. создаем tcell3.rar (918.6 Кб, 9 просмотров)
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками

Последний раз редактировалось anaschu; 04.03.2019 в 21:25.
anaschu вне форума Ответить с цитированием
Старый 04.03.2019, 23:04   #58
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

https://www.youtube.com/watch?v=ZeX77r1HvRA

https://www.youtube.com/watch?v=f_vcg7NXeMY
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Старый 07.03.2019, 15:14   #59
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

У меня есть процедура нажатия на кнопку.
Внутри нее есть перенос информации из двойного массива field в средство визуализации данных StringGrid1.
но отображение неверное, внутри массива field есть класс Cell, в нём каждый шаг моделирования Fstep уменьшается переменная Resource.
Конкретно сейчас пока что уменьшается ресурс от сотни до нуля только в клетке field[4,4]. он становится равным нулю уже на Fstep =5.
Но на поле он как был равен сотне, так и остался.

в чем дело?

procedure TForm2.Button1Click
(Sender: TObject { ACol, ARow: Integer; Rect: TRect; State: TGridDrawState } );
var
i, j, FStepCount: integer;
// step:Integer;
// field: TField;
begin
i := 10;
j := 10;

field.Free;
field := TField.Create(i, j);
field.fillField(i, j, 10);
fillStiringGrid(field, StringGrid1, i, j, 10);

// закрашиваем ячейку

// находим максимальное значение

field.Fstep := 0;
for FStepCount := 0 to 100000 do //количество шагов
begin
field.DoStep(field.Fstep);
inc(field.Fstep);
end;
fillStiringGrid(field, StringGrid1, i, j, 10);

end;
Вложения
Тип файла: rar 18.1 урок.rar (925.6 Кб, 7 просмотров)
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Старый 07.03.2019, 16:26   #60
anaschu
Форумчанин
 
Регистрация: 21.09.2012
Сообщений: 372
По умолчанию

этот вопрос решается в теме
Занимаюсь:1.зверьком- покемончиком для компьютерного затончика. 2 IT-грибами,что бы скушать потом их с вами.3. цифровым обезьянками, как куны ударяют за тянками
anaschu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение клеточного автомата в Excel olgafirst Помощь студентам 0 02.04.2014 00:26
Математическая модель "Автосервис" pro100saniok Помощь студентам 4 24.05.2012 18:31
Меня раздражают наши "звезды", которые считают себя сливками общества... grenles Свободное общение 53 16.02.2011 11:16
Стоит ли покупать видеокурс О.Л.Соколова, Видеокурс О.Л.Соколова "Проф.хакер" arkad-167 Помощь студентам 1 27.02.2010 10:32
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49