anaschu » Чт окт 15, 2020 5:13 pm
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ButtonGroup,
Vcl.ExtCtrls;
type
TForm1 = class(TForm)
LogCanEd: TEdit;
CanalPan: TPanel;
LogCanLab: TLabel;
IntCanLab: TLabel;
EticCanLab: TLabel;
SensCanLab: TLabel;
CanalPanel: TLabel;
NamPanLab: TLabel;
EtCanEd: TEdit;
SenCanEd: TEdit;
IntCanEd: TEdit;
HeadPan: TPanel;
LogHeadLab: TLabel;
IntHeadLab: TLabel;
EtHeadLab: TLabel;
SensHeadLab: TLabel;
HeadPanel: TLabel;
NamPan2Lab: TLabel;
EtHeadEd: TEdit;
SenHeadEd: TEdit;
LogHeadEd: TEdit;
IntHeadEd: TEdit;
StepComp: TButton;
Progress: TLabel;
Label1: TLabel;
NotGoodLab: TLabel;
NotGoodValueLab: TLabel;
TimeLab: TLabel;
TimeValueLab: TLabel;
procedure StepCompClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
var
Time, Good,NotGood,intCan, logCan, EtCan,SensCan, IntHead, logHead, etHead, SenHead: integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StepCompClick(Sender: TObject);
var i,integral:integer;
begin
NotGood:=0;//ощущения незавершённости гештальта нет
//заполняем значения с внешних каналов на переменные процедуры
intCan:= strtoInt(IntCanEd.Text);
logCan := strtoInt(logCanEd.Text);
EtCan := strtoInt(EtCanEd.Text);
SensCan := strtoInt(SenCanEd.Text);
intHead := strtoInt(IntHeadEd.Text);
logHead := strtoInt(logHeadEd.Text);
etHead := strtoInt(etHeadEd.Text);
senHead := strtoInt(senHeadEd.Text);
// вычисляем общую частоту раздражения входящего сигнала
integral:=intCan*4+logCan*3+EtCan*2+SensCan;
// вычисляем общую частоту уверенности в своих силах
Good:= intHead*4+logHead*3+EtHead*2+SenHead;
if integral>Good then notGood:=Integral-Good;
if (notGood<20) then
begin
//блок интуиции
//высокий порог возбуждения для интуиции
if integral+intCan>10 then begin
for I := 0 to intHead do begin
integral:= integral-1;
inc(Time);
// низкочастотный канал угасания работы для интуиции
if integral<5 then break
end;
//второй высокочастотный канал = логика. высокий порог начала работы
if integral+logHead>8 then begin
for I := 0 to logHead do begin
integral:= integral-1;
inc(Time) ;
if integral>5 then break //тормозиться высокой частотой
end;
//третий канал- низкочастотный, это этика
if (integral-etHead<6) and (integral>0) then begin
for I := 0 to etHead do begin
integral:= integral-1;
inc(Time);
if integral=0 then break
end;
end;
//четвертый канал- сенсорика
if (integral<5) and (integral>0) then begin
for I := 0 to senHead do begin
integral:= integral-1;
inc(Time);
if integral=0 then break
end;
end;
end;
end;
Progress.Caption:=inttostr(Integral) ;
NotGoodValueLab.Caption:=inttostr(NotGood) ;
TimeValueLab.Caption:=inttostr(Time) ;
end;
end;
end.