Помогите согласовать типы в двух юнитах, первый - основной, где находиться основное тело калькулятора, второй - это юнит в котором описано функции расчета комплексных чисел. Как вы поняли разговоро пойдет о комплексных числах. В первом юните я создал тип запись, который включает две переменные типа double:
Код | type TComplex = record a, b: double; end;
|
Во втором я создал идентичную запись:
Код | type TComplex = record a, b: double; end;
|
В формулах я использую не на прямую переменную этого типа, а работаю с поинтером таким вот способом:
Код | function C_AddN(a, b: ComplexPtr): ComplexPtr; //result:=a+b RECTANGULAR begin result := new(ComplexPtr); result.a := a.a + b.a; result.b := a.b + b.b; end;
|
Но когда я пытаюсь вызвать эти формулы таким способом:
Код | RGCOut := C_AddN(Comp1, Comp2);
|
(Где Comp1, Comp2 - поинтеры на тип TComplex). Компилятор выбивает ошибку "[Error] MiniCalc1.pas(483): Incompatible types: 'MiniCalc1.TComplex' and 'ComplexRec.TComplex'". Вроде бы эти типы идентичны, но почему они не могут согласоваться? |