Помогите разобраться с процедурным типом. Изучаю Lazarus по этой книге http://www.altlinux.org/Books:FreePascal.
Непонятно зачем этот тип нужен, что он делает. Гуглил, но полученная информация особо не помогла.
Модератор: Модераторы
program compltest;
{$mode objfpc}{$H+}
type
TComplex=record
Re,Im:real;
end;
TComplexOperation=function(C1,C2:TComplex):TComplex;
Function CplPlus(C1,C2:TComplex):TComplex;
begin
Result.Re:=C1.Re+C2.Re;
Result.Im:=C1.Im+C2.Im;
end;
Function CplMinus(C1,C2:TComplex):TComplex;
begin
Result.Re:=C1.Re-C2.Re;
Result.Im:=C1.Im-C2.Im;
end;
Function CplNull(C1,C2:TComplex):TComplex;
begin
Result.Re:=0;
Result.Im:=0;
end;
var
C1,C2,C3:TComplex;
Op:TComplexOperation;
OpStr:String;
begin
Write('Введите с1.Re ');Readln(c1.Re);
Write('Введите с1.Im ');Readln(c1.Im);
Write('Введите с2.Re ');Readln(c2.Re);
Write('Введите с2.Im ');Readln(c2.Im);
Write('Введите символ операции');Readln(OpStr);
if length(OpStr)<1 then halt;
case OpStr[1] of
'+':Op:=@CplPlus;
'-':Op:=@CplMinus;
else Op:=@CplNull;
end;
C3:=Op(C1,C2);
Writeln('C3.Re=',C3.Re,' C3.Im=',c3.Im);
end.
Теперь стало понятно зачем эти типы. Вот только не понятно где они могут пригодиться, в чем их преимущество
Alvo писал(а):Вот только не понятно где они могут пригодиться
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23