Arrays

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Hallo,
    wir gehen zurzeit das Thema Array in der Universität durch und ich blicke gar nichts. Ihr wisst nich twie viel ich im Internet recherchiert habe. Ich kann mir nicht vorstellen wie ein Array ausgegeben werden soll und auf die Werte zurückgegriffen.

    Beispielsweise hat man dynamische und nicht dynamische Arrays. Dynamische haben ja den Startwert 0 und sollten dann einer Benutzereingabe zugeordnet werden. Brauche ich da eine extra Variable? Ordne ich diese mit dem Redim Befehl zu?
    Wie ist die Schleife für ein Array definiert?

    Ich verstehe einfach nicht genau wie ich es anwenden kann auf die Aufgaben, die ich kriege. Habt ihr ein paar Tipps wie ich das hinkriegen kann?

    Danke!

    Verschoben. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Also man kann ein Array deklarieren ohne ihm Grenzen zu nennen...

    VB.NET-Quellcode

    1. Dim sText() As String


    Du kannst aber auch direkt Grenzen nennen...

    VB.NET-Quellcode

    1. Dim sText(5) As String


    Sagt jetzt erst einmal nicht viel aus. Ich weiß. Bei der Zuweisung fällt dir aber der Unterschied auf...
    Du schreibst zB. verschiedene Werte in dieses Array.

    VB.NET-Quellcode

    1. sText(0) = "Muttie"
    2. sText(1) = "Vattern"
    3. sText(2) = "Hilde"
    4. sText(3) = "Otto"
    5. sText(4) = "Gustav"
    6. sText(5) = "Gregor"
    7. sText(6) = "Anne"

    Bei dem undefinierten Array ist das kein Problem.
    Bei dem fix mit Größe 5 definierten Array dagegen wird die letzte Zeile nicht funktionieren. Da es sText(6) nicht mehr gibt.

    Natürlich gibt es auch mehrdimensionale Arrays... Das Eindimensionale ist im Grunde ja nur ne ganz simple Liste...

    VB.NET-Quellcode

    1. Dim sText(5,1) as String

    Würde dann von dir so befüllt werden können

    VB.NET-Quellcode

    1. sText(0,0) = "Muttie"
    2. sText(0,1) = "Müller"
    3. sText(1,0) = "Vattern"
    4. sText(1,1) = "Müller"
    5. sText(2,0) = "Hilde"
    6. sText(2,1) = "Bauer"
    7. sText(3,0) = "Otto"
    8. sText(3,1) = "Bauer"
    9. sText(4,0) = "Gustav"
    10. sText(4,1) = "Schmidt"
    11. sText(5,0) = "Gregor"
    12. sText(5,1) = "Schmidt"
    13. sText(6,0) = "Anne"
    14. sText(6,1) = "Schmidt"
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()

    MemoAnMichSelbst schrieb:

    Bei dem undefinierten Array ist das kein Problem.
    Bei dem undefinierten Array ist das schon beim ersten Eintrag ein Problem.
    Bevor nicht ein ReDim-Statement kommt, kannst du da gar nichts zuweisen.

    Ausserdem wird auch das typisierte Dim in VBScript nicht funktionieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Stimmt.
    Sinnvoll ist es zB.

    VB.NET-Quellcode

    1. Dim sZeile As String
    2. Dim sArray() As String
    3. sZeile = "Muttie;Vattern;Hilde;Otto;Gustav;Gregor;Anne"
    4. sArray = sZeile.Split(";"c)
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Der TE hat doch mit keim Wort VBScript erwähnt, oder irre ich mich?

    @TE: versuch dich mal sinnreicher auszudrücken
    Wie ist die Schleife für ein Array definiert?
    "die Schleife" für ein Array gibt es nicht. Weißt du ühaupt, was eine Schleife ist?
    Es ist eine Reihe von Anweisungen, die mehrmals durchlaufen wird.
    vlt. fehlen dir noch weitere Fachbegriffe, und hilft dir Grundlagen: Fachbegriffe

    Ich verstehe einfach nicht genau wie ich es anwenden kann auf die Aufgaben, die ich kriege. Habt ihr ein paar Tipps wie ich das hinkriegen kann?
    Das kommt auf die Aufgaben an, die du kriegst (wer hätte das gedacht?).

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Super, die nicht dynamischen Arrays verstehe ich jetzt vollkommen anch der Anleitung. Nun gibt es dynamische Arrays die den Wert 0 erst annehmen und später erst Ihren Wert bekommen...
    Zum Beispiel erst in der For Schleife...
    Und dann noch irgendwas mit Redim... Das verstehe ich bis jetzt immernoch nicht.

    Danke leute!
    sorry - alles nicht richtig. Was soll ein dynamisches Array sein, im Gegensatz zu einem nicht-dynamischen?
    In meiner Welt sind Arrays nie dynamisch - was immer du damit meinen magst.

    Und ein Array nimmt nie den Wert 0 an. Nur Zahlen können den Wert 0 annehmen (wer hätte das gedacht?), aber ein Array ist keine Zahl.
    Allenfalls die Elemente eines Arrays können diesen Wert annehmen, allerdings musses dazu ein Zahlen-Array sein. Man kann aber Arrays für jeden der unendlich vielen Datentypen erzeugen - Zahl-Datentypen gibts ja nur vlt.18.
    Also musst du zunächst die Idee von Datentyp verstehen, sonst kannst du Array auch nicht verstehen - wie gesagt: Nur bei Zahlen-Arrays werden die Werte mit 0 initialisiert.

    Und "Deklarieren" und "Initialisieren" musst du verstehen, etwa dass man mit Dim eine Array-Variable deklariert, mit New ein Array erzeugt, und mit = der Variable zuweist - die erste Zuweisung, das ist die Initialisierung (steht alles in Grundlagen: Fachbegriffe).
    ReDim ändert nun die Anzahl der Elemente des Arrays - hast du das gewusst, dass ein Array eine festgelegte Anzahl der Elemente hat?

    programmofficer schrieb:

    Redim
    solltest Du nicht verwenden, da nimm lieber eine List(Of T).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!