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