Announcement

Collapse
No announcement yet.

Prozeduren/Funktionen übergeben und ausführen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prozeduren/Funktionen übergeben und ausführen

    <br>Hi,...
    <br>
    <br>Wie kann ich das folgende in Delphi 5 realisieren?
    <br>Ich hoffe das geht irgend wie.
    <br>Danke jetzt schon für den richtigen Tip.
    <br>
    <br>MfG
    <br>PS
    <br>
    <br>Proc/Func PF1() [: Typ];
    <br>Begin
    <br>End;
    <br>
    <br>Proc/Func PF2() [: Typ];
    <br>Begin
    <br>End;
    <br>
    <br>Procedure Repeater( MyProcFunc : Proc/Func );
    <br>Begin
    <br> for i := 1 to n do
    <br> MyProcFunc;
    <br>End;
    <br>
    <br>Procedure Main;
    <br>Begin
    <br> Repeater( PF1 );
    <br> Repeater( PF2 );
    <br>End;

  • #2
    Hi

    So wie Du es angedeutet hast

    <pre>

    type
    TMyFunc = function(const A,B: Extended): Extended; register;<br>

    function Add(const A,B: Extended): Extended;
    begin
    Result := A + B;
    end;<br>

    function Mul(const A,B: Extended): Extended;
    begin
    Result := A * B;
    end;<br>

    function Repeater(const A,B: array of Extended; F1, F2: TMyFunc): Extended;
    var
    I: Integer;
    begin
    Result := 0;
    for I := Low(A) to High(A) do
    Result := F1(Result, F2(A[I], B[I]));
    end;<br>

    result := Repeater([1.2, 3.2, 4.5], [3.0, 7.1, 6.2], Add, Mul);
    result := (1.2 * 3.0) + (3.2 * 7.1) + (4.5 * 6.2);<br>

    result := Repeater([1.2, 3.2, 4.5], [3.0, 7.1, 6.2], Mul, Add);
    result := (1.2 + 3.0) * (3.2 + 7.1) * (4.5 + 6.2);<br>

    </pre>

    obiger Code summiert die Produkte, bzw. multipliziert die Summen zweier Arrays

    Gruß Hage

    Comment

    Working...
    X