Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Как управлять массовым сознанием. Современные модели. Монография

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
реходят в состояние возбуждения, // а сама клетка-источник не изменит своего состояния procedure Istochnic; var Vi,Vj:integer; begin for vi:=1 to kol do for vj:=1 to kol do if (wtmp[Vi,Vj]<=0)and(mas_istochnick_boolean[Vi,Vj]=true) then Begin if (automats[Vi,Vj]=2) then //проверка состояния соседних клеток и //присвоение им с определенной вероятностью состояния воз- буждения, //если они находятся в состоянии покоя begin if (vi<>1) and (automats[Vi–1,Vj]=0) then begin automatstmp[Vi–1,Vj]:=2;mas_istochnick_boolean[Vi–1,Vj]: =false; wtmp[Vi–1,Vj]:=StrToInt(form1.RxSpinEdit4.Text)–1; w[Vi–1,Vj]:=StrToInt(form1.RxSpinEdit4.Text)–1; name_automat[Vi–1,Vj]:=name_automat[Vi,Vj]; end; if (vi<>kol) and (automats[Vi+1,Vj]=0) then begin automatstmp[Vi+1,Vj]:=2; wtmp[Vi+1,Vj]:=StrToInt(form1.RxSpinEdit4.Text)–1; w[Vi+1,Vj]:=StrToInt(form1.RxSpinEdit4.Text)–1; name_automat[Vi+1,Vj]:=name_automat[Vi,Vj]; end; if (vj<>1) and (automats[Vi,Vj–1]=0) then begin automatstmp[Vi,Vj–1]:=2; wtmp[Vi,Vj–1]:=StrToInt(form1.RxSpinEdit4.Text)–1; w[Vi,Vj–1]:=StrToInt(form1.RxSpinEdit4.Text)–1;
181
name_automat[Vi,Vj–1]:=name_automat[Vi,Vj]; end; if (vj<>kol) and (automats[Vi,Vj+1]=0) then begin automatstmp[Vi,Vj+1]:=2; wtmp[Vi,Vj+1]:=StrToInt(form1.RxSpinEdit4.Text)–1; w[Vi,Vj+1]:=StrToInt(form1.RxSpinEdit4.Text)–1; name_automat[Vi,Vj+1]:=name_automat[Vi,Vj]; end; wtmp[Vi,Vj]:=w[Vi,Vj]; end; End Else if (mas_istochnick_boolean[Vi,Vj]=true) then wtmp[Vi,Vj]: =wtmp[Vi,Vj]–1; end; //Нажата кнопка [GO] procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin wtmp:=w; automats_graph:=automats; for i:=1 to strtoint(form1.RxSpinEdit2.Text) do begin vozb; automats:=automatstmp; Istochnic; automats:=automatstmp; refr_1; //процедура уменьшения времени рефрактерности на
единицу
showautomats; // процедура прорисовки клеток end; end; //Вызов формыО программе” procedure TForm1.Button1Click(Sender: TObject); begin form3.showmodal;
182
end; // процедура, выполняемая при получении формой фокуса вво-
да
procedure TForm1.FormActivate(Sender: TObject); var fax,fay:word; begin randomize; for fax:=1 to kol do for fay:=1 to kol do begin name_automat[fax,fay]:=''; mas_istochnick_boolean[fax,fay]:=false; end; wtmp:=w; ver:=strtoint(form1.RxSpinEdit3.Text); end; // Изменение времени рефрактерности procedure TForm1.RxSpinEdit1Change(Sender: TObject); begin TimeRef:=strtoint(form1.RxSpinEdit1.Text)+1; end; // Событие, возникающее при нажатии кнопки мышки (на Фор- ме) procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if form1.GroupBox1.Visible=true then exit; //если панель выбора параметров клетки //уже активна, то выход из процедуры xx:=(x+shag) div shag; yy:=(y+shag) div shag; //определяет коор- динаты клетки if (xx<=50) and (yy<=50)then //при попадании координаты клет- ки в заданную область // выполняется следующий цикл: begin
183
form1.RxLabel6.Caption:=IntToStr(xx); //отображение коорди- наты клетки X form1.RxLabel7.Caption:=IntToStr(yy); //отображение коорди- наты клетки Y form1.GroupBox1.Visible:=true; //активация панели выбора па- раметров клетки end; end; // Процедура запускается, когда необходимо перерисовать Фор-
му
procedure TForm1.FormPaint(Sender: TObject); var fax,fay:word; begin for fax:=1 to kol do for fay:=1 to kol do automats_graph[fax,fay]:=1; showautomats; end; //Отмена установки параметров выбранной клетки procedure TForm1.Button4Click(Sender: TObject); begin form1.GroupBox1.Visible:=false; end; // Выбор клетки, задание ее параметров // Процедура, выполняемая при нажатии кнопки [OK] procedure TForm1.Button3Click(Sender: TObject); begin form1.GroupBox1.Visible:=false; //убирается панель выбора па- раметров клетки //выбранной клетке присваивается заданное состояние if form1.RadioButton1.Checked=true then automats[yy,xx]:=0; if form1.RadioButton2.Checked=true then begin ref[yy,xx]:=form1. SpinEdit1.Value;automats[yy,xx]:=3;end; if form1.RadioButton3.Checked=true then begin w[yy,xx]:=form1. SpinEdit2.Value–1;mas_istochnick_boolean[yy,xx]:=false;automat s[yy,xx]:=2;name_automat[yy,xx]:=form1.edit2.text;end; if form1.RadioButton4.Checked=true then automats[yy,xx]:=1; if form1.RadioButton5.Checked=true then begin w[yy,xx]:=form1.
184
SpinEdit2.Value–2; automats[yy,xx]:=2;mas_istochnick_boolean [yy,xx]:=true;name_automat[yy,xx]:=form1.edit2.text;end; showautomats; // прорисовываем поле клеточных автоматов end; //Задание визуального набора параметров при выборе состоя­ния клетки procedure TForm1.RadioButton1Click(Sender: TObject); begin if form1.RadioButton1.Checked=true then begin form1.Panel1.Visible:=false; form1.Panel2.Visible:=false; end; if form1.RadioButton2.Checked=true then begin form1.Panel1.Visible:=false; form1.Panel2.Visible:=true; end; if form1.RadioButton3.Checked=true then begin form1.Panel1.Visible:=true; form1.Panel2.Visible:=false; end; if form1.RadioButton4.Checked=true then begin form1.Panel1.Visible:=false; form1.Panel2.Visible:=false; end; if form1.RadioButton5.Checked=true then begin form1.Panel1.Visible:=true; form1.Panel2.Visible:=false; end; end; // Выход из программы procedure TForm1.Button5Click(Sender: TObject); begin Close; end; // Установка вероятности перехода возбуждения procedure TForm1.RxSpinEdit3Change(Sender: TObject);
185
begin ver:=strtoint(form1.RxSpinEdit3.Text); end; //Процедура выполняется при нажатии на клавишуОчистить поле” //сброс значений параметров клеток, все клетки переходят в со- стояние покоя. //прорисовка формы procedure TForm1.Button6Click(Sender: TObject); var fax,fay:word; begin randomize; for fax:=1 to kol do for fay:=1 to kol do begin name_automat[fax,fay]:=''; mas_istochnick_boolean[fax,fay]:=false; automats[fax,fay]:=0; ref[fax,fay]:=0; automats[fax,fay]:=0; form1.canvas.Brush.Color:=$0080FFFF; form1.Canvas.Rectangle(sAx+fAx*shag,sAy+fAy*shag,sAx+(shag +1)+fAx*shag,sAy+(shag+1)+fAy*shag); end; wtmp:=w; ver:=strtoint(form1.RxSpinEdit3.Text); end; // Процедура запускается при создании формы procedure TForm1.FormCreate(Sender: TObject); begin TimeRef:=strtoint(form1.RxSpinEdit1.Text)+1; end; end.
186
РЕЗУЛЬТАТЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ
РАСПРОСТРАНЕНИЯ И КОНКУРЕНЦИИ ИНФОРМАЦИОННЫХ
СИГНАЛОВ В ТОЛПЕ
Рис. 1 (а). Спонтанное начало возбуждения от одного случайного источника
со временем возбуждения 10 тактов, временем рефрактерности 1 такт
при 70% вероятности передачи возбуждений
Рис. 1 (б). Развитие процесса от случайного источника через 100 тактов
от начала процесса при 70% вероятности передачи возбуждений
187
Рис. 1(в). Развитие процесса от случайного источника через 400 тактов
от начала процесса при 70% вероятности передачи возбуждений
Рис. 2 (а). Появление стихийного возбуждения в решетке 9´9 клеток
при времени возбуждения 10 тактов, рефрактерности 1 такт
и вероятности передачи возбуждения 70%
188
Рис. 2 (б). Поддержание автоколебаний в решетке размером 9´9 клеток
после стихийного возбуждения в решетке при вероятности передачи
возбуждения 70%. Время процесса – 200 тактов
Рис. 2 (в). Разбиение решетки 9´9 на две решетки 9´ 5 и 9´3.
189
Рис. 2 (г). Затухание возбуждений в решетке 9´3 после 1000 тактов при времени возбуждения 10 тактов, времени рефрактерности 1 такт
и вероятности возбуждения 70% и поддержание
при этом автоколебаний в решетке 9
Рис. 2 (д). Затухание возбуждений в решетке 9´5 после 100 тактов
при времени возбуждения 10 тактов, времени рефрактерности 1 такт
и вероятности возбуждения 50%
´5
190
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]