WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Übung Array! (http://www.wcm.at/forum/showthread.php?t=165597)

coolbininet 10.05.2005 19:21

Übung Array!
 
Hallo Leute!

Wie kann ich wenn ich in VB eine Funktion und einen Übergabewert habe, in der Klammer zB (Eingabe as Long) mit einer Forschleife und einem Array dieses Array sagen wir eingabe = 100 mit der Grösse Hundert dimensionieren und dann in jedes der 100 Felder eine 1 schreiben?

Geht dass, wie?

Grüße Coolbininet

T.dot 10.05.2005 20:12

Tipp des Tages: Leg dir mal ein VB Buch zu.

Function irgendwas(byval bla as long)
dim ix as integer
dim iarray(bla) as integer

for ix=0 to bla-1
iarray(ix)=1
next
end function

Wäre leicht möglich, dass man den Wert gleich vorbelegen kann und keine Schleife braucht. Ich glaub das würd sogar in der Hilfe stehen.

mfg

kikakater 10.05.2005 20:32

Zitat:

Original geschrieben von T.dot
Tipp des Tages: Leg dir mal ein VB Buch zu.
:lol:

coolbininet 11.05.2005 11:45

Funkt leider nicht!
 
Funkt leider nicht:

dim iarray(bla) as integer // VB braucht hier eine konkrete Zahl zb 10

So weit war ich auch schon, es ist nur so, dass ich dann wieder nur eine 10 und keine Variable eingeben kann!

Grüße Coolbininet

T.dot 11.05.2005 12:00

Na dann halt so:

Dim iarray() As Integer
ReDim iarray(bla)

cenus 11.05.2005 14:52

Man merkt das Schuljahr neigt sich dem Ende zu.
Prüfungszeit, gell!?

:D :D

:roflmao: :hehe:

coolbininet 11.05.2005 17:29

Also, fasse zusammen:

Function irgendwas(ByVal bla As Long)

Dim ix As Integer
Dim iarray() As Integer
ReDim iarray(bla)
For ix = 0 To bla - 1
iarray(ix) = 1
Next ix

End Function

Dann müsste dies der Code sein, der mit folgendem Befehl, wobei als Übergabewert in Klammer(10) steht, erstens 10 einzelne Einsen in das dynamische Array schreibt und zweitens, dann 10 einzelne Einsen ausgibt, warum bekomme ich dann aber eine 0 heraus?

Debug.Print iarray(ix)

Grüße Coolbininet

Hannes0815 11.05.2005 18:01

Zitat:

Original geschrieben von coolbininet
Hallo Leute!

Wie kann ich wenn ich in VB eine Funktion und einen Übergabewert habe, in der Klammer zB (Eingabe as Long) mit einer Forschleife und einem Array dieses Array sagen wir eingabe = 100 mit der Grösse Hundert dimensionieren und dann in jedes der 100 Felder eine 1 schreiben?

Geht dass, wie?

Grüße Coolbininet

Zitat:

Original geschrieben von coolbininet
Dann müsste dies der Code sein, der mit folgendem Befehl, wobei als Übergabewert in Klammer(10) steht, erstens 10 einzelne Einsen in das dynamische Array schreibt und zweitens, dann 10 einzelne Einsen ausgibt, warum bekomme ich dann aber eine 0 heraus?

Debug.Print iarray(ix)

Grüße Coolbininet

Irgendwie steht in deinem ersten Beitrag nix davon das du es ausgeben willst... wennst es dazu geschrieben hättest, täts möglicherweise schon im code stehen....

coolbininet 11.05.2005 18:06

Wie geht das jetzt Hannes0815?

Grüsse

T.dot 11.05.2005 18:26

Habe mal selbst wieder VB ausgegraben und folgendes für dich gebastelt

Code:

Function makearray(ByVal isize As Long)
    Dim ix As Integer
    Dim iarray() As Integer
    ReDim iarray(isize - 1)
   
    For ix = 0 To isize - 1
        iarray(ix) = 1
        MsgBox "Durchlauf Nr. " & ix & ", Wert im Array: " & iarray(ix)
    Next ix
End Function

Änderungen zu vorher
- Wenn man die Arraygröße ändert muss man die Größe-1 angeben.
- Bei jedem Durchlauf der Schleife wird die Anzahl der Durchläufe und der aktuelle Wert angezeigt (mit einer MessageBox).

Ich vermute mal, du hast nach der Schleife Debug.Print iarray(ix) ausgeführt. Nach der Schleife steht der Wert von ix auf 10, mit dem Wert 10 wird die Schleife aber nicht nochmal durchlaufen (nur von 0 bis isize-1, also von 0 bis 9). Wenn nun das Array falsch dimensioniert war (wie vorher) gibt es aber auch ein Feld iarray(10), dieses wurde aber noch nicht belegt.

Ich hoffe ich hab das verständlich erklärt.

mfg Thomas


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag