Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
1.2 Кб
Скачать
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.
Соседние файлы в папке Cursov