GLBasic forum

Other languages => GLBasic - de => Topic started by: Trabant 500 on 2010-Aug-09

Title: [Gelöst] Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: Trabant 500 on 2010-Aug-09
Hi liebe Community.

Ich versuche mich gerade mal wieder an Types und wieder sehe ich den Wald vor lauter Bäumen nicht.
Die normalen Types habe ich mittlerweile verstanden und kann mit diesen auch arbeiten, aber mit Arrays in Types komm ich grad nicht so wirklich zurecht und die Hilfe bzw. das Forum haben mich da bis jetzt leider nicht viel weiter gebracht.

Folgendes Problem:
Ich möchte einer Funktion Werte übergeben, diese irgendwie berechnen und in einem Array speichern.  Soweit kein Problem.
Allerdings möchte ich dann dieses Array zurückgeben und in einem Type-Array speichern.

Hier mal etwas Pseudocode:
Code (glbasic) Select
FUNCTION Berechnen: wert1, wert2, schritte
LOCAL wert1, wert2, schritte

    REDIM Ergebnis[schritte]
    FOR i=0 to schritte-1
        Ergebnis[i]=i*wert1+wert2
    NEXT

    RETURN Ergebnis[]
ENDFUNCTION


Aufgerufen werden soll das dann folgendermaßen zum Beispiel:
Code (glbasic) Select
W.BlaBla1[]=Berechnen(5, 3, 15)
W.BlaBla2[]=Berechnen(2, 13, 800)
DIMPUSH Werte[],W

X.BlaBla1[]=Berechnen(7, 5, 120)
X.BlaBla2[]=Berechnen(4, 37, 3587)
DIMPUSH XWerte[],X


Wie man hoffentlich sieht, möchte ich die Funktion nicht nur für eine bestimmte Typestruktur nutzen, sondern sie soll von mehreren, unabhängig voneinander, angesprochen werden können.
Kann mir da bitte jemand auf die Sprünge helfen, oder geht das gar nicht so wie ich mir das vorstelle ?
Title: Re: Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: backslider on 2010-Aug-09
Wie wäre es mit

Code (glbasic) Select
FUNCTION Berechnen: wert1, wert2, schritte, return_value[]
LOCAL wert1, wert2, schritte,return_value[]

    REDIM Ergebnis[schritte]
    FOR i=0 to schritte-1
        Ergebnis[i]=i*wert1+wert2
    NEXT

    return_value[]=Ergebnis[]
ENDFUNCTION

Aufruf->Berechnen(5,3,15,W.BlaBla1[])


ODER eventuell

Function Berechnen[]:
Endfunction

? Nur sone spontane Idee

lG
Title: Re: Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: Trabant 500 on 2010-Aug-09
Also ich kann mich irren, aber ich glaube so gehts erst recht nicht, weil mit
Code (glbasic) Select
Berechnen(5,3,15,W.BlaBla1[])
übergebe ich der Funktion ja ein leeres Array, welches aber eigentlich gefüllt werden soll.
Title: Re: Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: backslider on 2010-Aug-09
Jap, du gibst der Funktion dein leeres Array, berechnest deinen Kram und schiebst dein Ergebnis am Ende in dein noch leeres Array... ;)
Title: Re: Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: Trabant 500 on 2010-Aug-09
Ich habs gerade ausprobiert und siehe da...es funktioniert. :good:
Auf so eine Idee wäre ich nicht gekommen, da ich meistens viel zu kompliziert denke, aber dank Dir funktioniert es jetzt so wie es soll.
Danke für die schnelle Hilfe !  :nw:
Title: Re: Wie füllt man eigentlich Type-Arrays über eine Funktion ?
Post by: backslider on 2010-Aug-09
Wenn ich schonmal helfen kann, dann helf ich doch gern!
Schön, dass es funktioniert!  :good: