система условий (условия)
Запись от Hrethgir размещена 20.07.2015 в 15:47
Показов 2724
Комментарии 1
|
Псевдокод [PASCAL]{область описания процедур системы проверки} процедура "x=0"; начало перейти в конец процедуры "система условий"; конец; процедура "x=1"; начало x:=1; перейти в конец процедуры "система условий"; конец; {/область описания процедур системы проверки} процедура "проверка"; начало если x=0 то выполнить процедуру "предписание"// где "предписание" либо символьная переменная, либо целочисленная для массива процедур конец процедура "система условий" начало "предписание":="x=0"; проверка; x:=x-abs[x]; "предписание":="x=1"; проверка; x:=-1; конец; [/PASCAL] это простой пример на функции Sign, пусть даже не рациональный, а у меня в программе будет проверяться образ, хоть и простой, но собирательный, так как собран из множества условий, которые будут проверяться одним условным оператором. в коде выложу позже, это будет дня 2. способ чисто мой - меня никто так не учил делать. Плюс способа-систематизация. Систематизация-это когда все данные обрабатываемые программой подводятся под одну основу, ровно как и физики пытаются создать базовую теорию всей физики, например теорию квантовой гравитации, и никто им не мешает. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
-
Процедура проверяюща направление размещения вершин треугольника (по часовой, или против, стрелки), начало координат - вершина номер один.
[PASCAL] procedure Ordering;
//type TValueSign = -1..1;
var
procinstruction: integer;
rezultat,rezultat1:extended;
arrproccond: arr;
napravleniesumm,napravlen:boolean;
// function Sign(
// const AValue: Extended
// ):TValueSign; overload;
// begin
//end;
procedure turn;//поворот
var
x2,x3,y2,y3:extended;
begin
SurfaceList := ASurfaceList[copyTimeBoxMaxY.IDsurface];
x3:=SurfaceList.x[2];
y3:=SurfaceList.y[2];
x2:=SurfaceList.x[3];
y2:=SurfaceList.y[3];
SurfaceList.x[2]:=x2;
SurfaceList.y[2]:=y2;
SurfaceList.x[3]:=x3;
SurfaceList.y[3]:=y3;
ASurfaceList[copyTimeBoxMaxY.IDsurface]:=SurfaceList;
end;
procedure smenanapravlenia;/////////////////////////////////////////////процедура с параметром, надо сделать так
begin
napravleniesumm:=not(napravleniesumm);
end;
procedure napravlenie;/////////////////////////////////////////////////////////////////////////////////////////////////////////
begin
napravlen:=true;
napravlen:=napravlen=napravleniesumm;
raise Exception.Create('napravlenie');
end;
procedure line;
begin
raise Exception.Create('line');
end;
procedure condition;//сравнение
begin
if rezultat=0 then ///////////////
begin
arrproccond[procinstruction];
procinstruction:=procinstruction+1;
end;
end;
procedure sistemscondition;
begin
napravleniesumm:=true;
procinstruction:=0;
rezultat:=SurfaceList.x[3]/SurfaceList.y[3]-SurfaceList.x[2]/SurfaceList.y[2];
condition;
rezultat:=SurfaceList.y[3] - abs(SurfaceList.y[3]);
condition;
procinstruction:=procinstruction-1;
rezultat:=SurfaceList.y[2] - abs(SurfaceList.y[2]);
condition;
rezultat:=rezultat-abs(rezultat);
condition;
napravlen:=false;
raise Exception.Create('sistemscondition');
rezultat := ord(napravlen);
condition;
end;
begin
arrproccond[0]:=@line;
arrproccond[1]:=@smenanapravlenia;
arrproccond[2]:=@napravlenie;
arrproccond[3]:=@turn;
sistemscondition;
end;[/PASCAL]
Впереди, это непростое написание простой программы "генератора карты высот и G-кода, ещё одна интересная процедура с тем-же стилем программирования, но другой логикой.Запись от Hrethgir размещена 18.08.2015 в 16:19


