Ламер пита

1 отговора 112 прегледа
#1

Ламер пита

Хабер си нямам от Делфи
Някой ще ми каже ли тази програма бива ли я или не
Това трябва да е свързано с комбинаторна логика



Unit RLogic;
Interface
Function RLAnd(A,B:real):real;
// Операция И
Function RLOr(A,B:real):real;
// Операция ИЛИ
Function RLNot(A:real):real;
// Операция НЕ
Function RLMid(A,B:real):real;
// Средно аритметично
Function RLCheck(A:real):boolean;
// Проверка входящи A в диапазон 0..1
Function RLYesNo(A:real):string;
// Преобразуване в НЕ ... ДА
Function RLSfun(X,X1,X2:real):real;
// S-функция
Function RLSarg(A,X1,X2:real):real;
// Обратна S - функция
Function RLZfun(X,X1,X2:real):real;
// Z-функция
Function RLZarg(A,X1,X2:real):real;
// Обратна Z - функция
Function RLAfun(X,X1,X2,X3:real):real;
// A-функция
Function RLVfun(X,X1,X2,X3:real):real;
// V-функция
Function RLPfun(X,X1,X2,X3,X4:real):real;
// П-функция
Function RLUfun(X,X1,X2,X3,X4:real):real;
// U-функция
implementation

Function RLAnd(A,B:real):real;
begin
if A<B then Result:=A else Result:=B;
end;

Function RLOr(A,B:real):real;
begin
if A>B then Result:=A else Result:=B;
end;

Function RLNot(A:real):real;
begin
Result:=1-A;
end;

Function RLMid(A,B:real):real;
begin
Result:=(A+B)/2;
end;

Function RLCheck(A:real):boolean;
begin
Result:=(A>=0) and (A<=1);
end;

Function RLYesNo(A:real):string;
begin
if A>0.8 then Result:='очевидно' else
if A>0.6 then Result:='возможно' else
if A>0.4 then Result:='неопределено' else
if A>0.2 then Result:='малковероятно' else
Result:='невероятно';
end;

Function RLSfun(X,X1,X2:real):real;
begin
if X<=X1 then Result:=0 else
if X>=X2 then Result:=1 else
Result:=(X-X1)/(X2-X1);
end;

Function RLSarg(A,X1,X2:real):real;
begin
if A<=0 then Result:=X1 else
if A>=1 then Result:=X2 else
Result:=A*(X2-X1)+X1;
end;

Function RLZfun(X,X1,X2:real):real;
begin
if X<=X1 then Result:=1 else
if X>=X2 then Result:=0 else
Result:=1-(X-X1)/(X2-X1);
end;

Function RLZarg(A,X1,X2:real):real;
begin
if A<=0 then Result:=X2 else
if A>=1 then Result:=X1 else
Result:=(1-A)*(X2-X1)+X1;
end;

Function RLAfun(X,X1,X2,X3:real):real;
begin
Result:=RLOr(RLSFun(X,X1,X2),RLZFun(X,X2,X3));
end;

Function RLVfun(X,X1,X2,X3:real):real;
begin
Result:=RLAnd(RLZFun(X,X1,X2),RLSFun(X,X2,X3));
end;

Function RLPfun(X,X1,X2,X3,X4:real):real;
begin
Result:=RLOr(RLSFun(X,X1,X2),RLZFun(X,X3,X4));
end;

Function RLUfun(X,X1,X2,X3,X4:real):real;
begin
Result:=RLAnd(RLZFun(X,X1,X2),RLSFun(X,X3,X4));
end;

end.




Редактирано от Kapъk на

Отговор
в отговор на Kapъk #2

Re: Ламер пита

Ами като Delphi код изглежда идеално. Лошото е:
1. Не е програма, а библиотека. Демек нещо което може да се ползва, ама в случая не прави нищо
2. От комбинаторна логика за реални числа сигурно разбирам по-малко и от теб. Та колко са правилни функциите не мога да ти кажа.

чети и дишай по-леко
Отговор