Arrays an Funktionen übergeben

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

phil217

Betreff: Arrays an Funktionen übergeben

BeitragSo, Jul 16, 2006 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!
Ich hab nach einer Programmier-Pause mal wieder meinen BB-Editor geöffnet und stiess immer noch(welch eine Überraschung) auf das selbe Problem das ich damals nicht gelöst hatte
ich hatte mir vorgenommen einen Rechner für grosse Zahlen zu Programmieren, der auf der Basis von Arrays arbeitet und die Zahlen aufspaltet
d.h. zum beispiel zahl1(0) enthält die letzten 3/5/wassweissich wie viele ziffern
nun zu meiner frage:
ich habe drei derartige arrays(a, b, c)
wenn ich nun 2 davon mit einer Funktion addieren möchte, wie übergebe ich diese zwei der Funktion addieren()
Mit den normalen Übergabewerten kann ich ja nur einen Wert und kein Array übergeben
hat jmd dazu eine Lösung?

Phil217

D2006

Administrator

BeitragSo, Jul 16, 2006 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Da sieht's mit BB leider sehr schlecht aus.

Du kannst nur die Arrays global machen. Unflexibel uns hässlich, aber kaum anders machbar.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

phil217

BeitragSo, Jul 16, 2006 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das nützt mir reichlich wenig
das array unten zu benutzen is ja nicht das Problem.
Das Problem is der Funktion zu "sagen" welche der drei Arrays sie nehmen soll

Hummelpups

BeitragSo, Jul 16, 2006 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzarrays kannst du an Funktionen übergeben. Das ist kein
Problem.
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

phil217

BeitragSo, Jul 16, 2006 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das hilft schonmal
aber wenn man mehrdimensionale Arrays hat is das auch kein Ausweg
 

BIG BUG

BeitragSo, Jul 16, 2006 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Mehrdimensionale Arrays sind eigentlich nur eine Vereinfachung.
Wenn Du mit BlitzArrays mehrere "Dimensionen" abbilden möchtest, musst Du nur die Werte per Multiplikation in eine Dimension bringen.

DIM blup(5,3) würde dann global blup[5*3] entsprechen.

Das Ansprechen von z.B. blup(2,1) sähe dann so aus:
blup[2*5+1]...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

phil217

BeitragSo, Jul 16, 2006 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
das is ein guter Ansatz ich werds mal so versuchen
danke an alle für die schnellen antworten
ich post euch den rechner für die grossen zahlen falls er funktioniert und ich ihn fertigkrieg bevor ich die lust verlier^^
Phil217

Edit: Da taucht die nächste Frage auf
Blitzarrays kann ich der funktion zwar übergeben, jedoch nicht mit return zurückgeben
was mach ich da?

BladeRunner

Moderator

BeitragMo, Jul 17, 2006 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
gib einen Type zurück der das Blitzarray enthält Wink

EDIT: Hab grad aus den Beispielen ersehen dass eine Rückgabe des Arrays insofern überflüssig wird als dass das Array innerhalb seines "grundscope" manipuliert wird.
Siehe dazu hier:
http://www.blitzbase.de/tutorials/shadow_5.htm
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

phil217

BeitragMo, Jul 17, 2006 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...
Danke für den Tipp. Wenn das so funktioniert wie ichs mir denke sollte eine Lösung gefunden sein
ich muss dann ja einfach nur jedes array das ich
1) an die Funktion übergeben oder
2) von der Funktion zurückgeben will
als Übergabewert bringen richtig?
Phil217

Edit: jo Funktioniert aber ich hab ein neues Problem entdeckt:
die Größe des zu übergebenden Blitzarrays muss jedes mal so gross sein wie ich sie in der Funktion angegeben habe, ich kann also die Funktion nur für gleich große Arrays nutzen

D2006

Administrator

BeitragMo, Jul 17, 2006 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann musst du wohl Banks nehmen. (ql:CreateBank)
Da kannst du mit ql:BankSize() abgfragen, wie groß die Bank ist. Die Benutzung ist ein bisschen umständlicher als bei Arrays, aber dafür sind die Dinger halt flexibler.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

phil217

BeitragMo, Jul 17, 2006 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Das is mir wohl doch zu umständlich
da mach ich lieber alle meine Arrays so gross dass es reicht und sie alle gleich gross sind... aber ich hätt trotzdem gern ne andere Lösung^^
Danke an alle für die Hilfe!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group