Funktion+Frame+Array

  • Hallo mitteinander,


    Habe wieder mal ein Problem.


    ...
    p1_test[zaehler] = Kreis (p1_1[],p2_1[],p3_1[])
    ...
    p2_test[zaehler] = Kreis (p1_2[],p2_2[],p3_2[])
    ...
    ...
    deffct frame kreis (p1[],p2[],p3[])
    decl frame p1[],p2[],p3[],punkt
    ...
    ;berechnung
    ...
    return (punkt)
    endfct


    Was mache ich bei diesem Funktionsaufruf falsch?
    Habe schon so viel ausprobiert und bekomme immer
    Fehler wie Formaler Parameter nicht deklariert und
    Indentifikator nicht deklariert.


    Kann man Frames überhaupt an eine Funktion übergeben?


    Ich danke euch schon mal im voraus.


    Grüße
    bobbl

    Was nicht passt, wird passend gemacht !

  • Schritt für Schritt zum Roboterprofi!
  • Servus bobbl


    Also wenn ich das richtig interpretiere dann sind in Deinem Hauptprogram 8 frames als array deklariert. p1_1 bis p3_2


    So für mich würde dann das Ganze wie folgt aussehen.


    decl frame p1_1[100] ..... p2_test[100]
    ...
    zaehler = 1
    p1_test[zaehler] = Kreis (p1_1[zaehler],p2_1[zaehler],p3_1[zaehler])
    ...
    p2_test[zaehler] = Kreis (p1_2[zaehler],p2_2[zaehler],p3_2[zaehler])
    ...
    ...
    deffct kreis (p1,p2,p3)
    decl frame p1,p2,p3,punkt
    ...
    ;berechnung
    ...
    return (punkt)
    endfct



    Und so sollte es auch fuktionieren

    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.<br />Albert Einstein

  • servus out84,


    Das habe ich leider alles schon probiert.
    Gebe ich diesen Syntax ein bekomme ich folgende Fehler:


    -Name nicht als Funktion vereinbart (p2_test[zaehler] = Kreis (p1_2[zaehler],p2_2[zaehler],p3_2[zaehler]))
    -Typ erwartet (deffct kreis (p1,p2,p3))
    -Deklaration nicht im Deklarationsteil (decl frame punkt,p1,p2,p3)
    -Anweisung nicht im Anweisungsteil (return[punkt])
    -end/endfct/enddat hier unzu.ässig (endfct)


    Hast du noch was in petto?


    Grüße

    Was nicht passt, wird passend gemacht !

  • Im Allgemeinen mach ich das immer über 'ne SUB
    Also in etwa so.


    decl frame p1_1[100] ..... p2_test[100]
    ...
    zaehler = 1
    Kreis(p1_1[zaehler],p2_1[zaehler],p3_1[zaehler],p1_test[zaehler])
    ...
    Kreis(p1_2[zaehler],p2_2[zaehler],p3_2[zaehler],p2_test[zaehler])



    def kreis (p1 :IN, p2 :IN, p3 :IN, p4 :OUT)
    decl frame p1,p2,p3,p4
    ...
    ;berechnung
    ...
    p4 = punkt
    end

    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.<br />Albert Einstein

  • Servus nochmal,


    Ich habe den Fehler gefunden.
    Hatte im Deklarationsteil der Funktion
    ein Halt stehen.
    Das hat er wohl nicht wollen und hats mir so
    nicht akzeptiert.


    deffct frame kreis (blabla)
    halt
    decl frame blabla
    decl frame mittelpunkt
    ...
    return (mittelpunkt)
    endfct


    Naja was solls.


    Vielen Dank für deine Hilfe.


    Grüße bobbl

    Was nicht passt, wird passend gemacht !

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden