Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовой проект / Cursov / TrdCalc
.pas unit TrdCalc; {!!! Зависит от входного языка !!!}
interface
{ Модуль, вычисляющий значения триад при свертке операций }
uses TrdType;
{ Функция вычисления триады по типу и значениям
двух операндов }
function CalcTriad(Triad: TTriadType;
iOp1,iOp2: integer): integer;
implementation
function CalcTriad(Triad: TTriadType;
iOp1,iOp2: integer): integer;
{ Функция вычисления триады по типу и значениям
двух операндов }
begin
Result := 0;
case Triad of
TRD_OR: Result := (iOp1 or iOp2) and 1;
TRD_XOR: Result := (iOp1 xor iOp2) and 1;
TRD_AND: Result := (iOp1 and iOp2) and 1;
TRD_NOT: Result := (not iOp1) and 1;
TRD_LT: if iOp1<iOp2 then Result := 1
else Result := 0;
TRD_GT: if iOp1>iOp2 then Result := 1
else Result := 0;
TRD_EQ: if iOp1=iOp2 then Result := 1
else Result := 0;
TRD_NEQ: if iOp1<>iOp2 then Result := 1
else Result := 0;
TRD_ADD: Result := iOp1 + iOp2;
TRD_SUB: Result := iOp1 - iOp2;
TRD_UMIN: Result := -iOp2;
end;
end;
end.
interface
{ Модуль, вычисляющий значения триад при свертке операций }
uses TrdType;
{ Функция вычисления триады по типу и значениям
двух операндов }
function CalcTriad(Triad: TTriadType;
iOp1,iOp2: integer): integer;
implementation
function CalcTriad(Triad: TTriadType;
iOp1,iOp2: integer): integer;
{ Функция вычисления триады по типу и значениям
двух операндов }
begin
Result := 0;
case Triad of
TRD_OR: Result := (iOp1 or iOp2) and 1;
TRD_XOR: Result := (iOp1 xor iOp2) and 1;
TRD_AND: Result := (iOp1 and iOp2) and 1;
TRD_NOT: Result := (not iOp1) and 1;
TRD_LT: if iOp1<iOp2 then Result := 1
else Result := 0;
TRD_GT: if iOp1>iOp2 then Result := 1
else Result := 0;
TRD_EQ: if iOp1=iOp2 then Result := 1
else Result := 0;
TRD_NEQ: if iOp1<>iOp2 then Result := 1
else Result := 0;
TRD_ADD: Result := iOp1 + iOp2;
TRD_SUB: Result := iOp1 - iOp2;
TRD_UMIN: Result := -iOp2;
end;
end;
end.
Соседние файлы в папке Cursov