Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Mehrdimensionales Array an Sub übergeben

Uploader:AdministratorSebastian
Datum/Zeit:07.01.2013 14:44:29

' Code-Beilage zu Forenthread:
'  http://forum.qbasic.at/viewtopic.php?t=8053
'
' Getestet mit FreeBASIC 0.24.0 unter Windows 7 x64
'
' Datum: 07.01.2013,  Lizenz: FBPSL
'
' Keine Gewaehrleistung fuer die inhaltliche und technische Richtigkeit.
' Verwendung ausschliesslich auf eigene Gefahr.

declare sub fuelleDatenArray (byref x as ubyte, byref y as ubyte, byref z as ubyte, zielArray() As ubyte)
declare sub zeigGanzesArrayAn (zeilenanfang as string, daten() as ubyte)

dim daten (1 to 2, 1 to 7, 1 to 5) as ubyte

' Seien a, b und c irgendwelche Koeffizienten
dim as ubyte a=2, b=4, c=3

Print "Die Koeffizienten sind:"
Print "  a = " & a & ",  b = " & b & ",  c = " & c
print

print "Fuelle nun das Datenarray... ";

fuelleDatenArray (a, b, c, daten())

print "fertig!"

print   ' Leerzeile

Print "Die Koeffizienten sind jetzt:"
Print "  a = " & a & ",  b = " & b & ",  c = " & c
print " --> Die Werte wurden in der SUB ueberschrieben!"
print
print "Gebe das komplette Array aus:"
print

zeigGanzesArrayAn ("datenfeld", daten () )



sleep
end



sub fuelleDatenArray (byref x as ubyte, byref y as ubyte, byref z as ubyte, zielArray() As ubyte)
    'Uebergebenes Array mit irgendwelchen berechneten Werten fuellen:
    dim temp as uinteger
    'Tipp / Beispiel zu lbound/ubound:
    ' lbound(array,1) = Untere Indexgrenze der 1. Array-Dimension
    ' ubound(array,2) = Obere Indexgrenze der 2. Array-Dimension
    for i as integer = lbound(zielArray,1) to ubound(zielArray,1)
        for j as integer = lbound(zielArray,2) to ubound(zielArray,2)
            for k as integer = lbound(zielArray,3) to ubound(zielArray,3)
                temp = x*i + y*j + z*k  ' quasi Summe aus (IndexN * KoeffizientN) für alle N von 1 bis 3
                if (temp > 255) then temp = 255
                zielArray(i,j,k) = temp
            next k
        next j
    next i
    'Werte der Koeffizienten veraendern (moeglich, da BYREF)
    x = (x+y+z)
    y = x*2
    z = x*3
end Sub

sub zeigGanzesArrayAn (zeilenanfang as string, daten() as ubyte)
    for i as integer = lbound(daten,1) to ubound(daten,1)
        for j as integer = lbound(daten,2) to ubound(daten,2)
            print zeilenanfang & "(" & i & "," & j & ") = { ";
            for k as integer = lbound(daten,3) to ubound(daten,3)
                print str(daten(i,j,k));
                if (k < ubound(daten,3)) then print ", ";
            next k
            print " }"
        next j
    next i
end sub