tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Alexander Schuc
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
3339
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von atlantyz
    atlantyz atlantyz ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wetzlar (Hessen)
    Beiträge
    147
    Hi!

    Ich habe ein Array n, mit 16 Plätzen. Diese werden nach und nach vom Programm befüllt. Nun soll ganz zum Schluss eine Summe aus diesen Werten errechnet werden, aber nur, wenn alle Werte größer 1 sind (also praktisch, wenn kein Feld leer ist, n ist nämlich einfach nur ein Zähler für verschiedene Funktionen).

    Zuerst hatte ich nur ein 5er Array. Da habe ich dann gesagt
    If n(1) and n(2) and (n3) usw. > 1 then Summe berechnen

    Aber ich möchte jetzt eigentlich nicht 16 Array Felder mit AND verknüpfen... da bin ich ja ewig dran.

    Gibt es einen Befehl, der einfach schaut, ob alle Felder im Array > 1 sind?

    LG Joey
     
    Nur sprechenden Menschen kann geholfen werden...

  2. #2
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    Naja im normalfall würdest du doch einen Array der größe nach durch eine Schleife auslesen.
    In Pseudocode würde das so aussehen (kann VB.Net nicht)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
     
    int Summe =0;
     
    for(int i=0; i < Array.Anzahl, i++)
    {
       if(Array[i] > 1)
      {
        Summe = Summe + Array[i];
      }
    }
     
    Schreib das in VB.NET und es müsste klappen.
     

  3. #3
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hallo.

    Mag jetzt nicht irgendwie VB.net zusammenklecksen, deswegen in C#.

    Einfach das Array in einer Schleife durchgehen. Falls eine Zahl ungültig ist, setzt du eine boolsche Variable auf false, und brichst die Schleife ab.

    In der Schleife kannst auch gleich die Summe addieren, damit du nicht nachher noch eine Schleife brauchst. Die boolsche Variable gibt dir dabei an, ob die Summe korrekt ist, oder nicht.

    lg, Alex

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    int[] numbers= new int[] { 1, 2, 3, 4, 5 };
     
    bool valid = true;
    int count = 0;
     
    for (int i = 0; i < numbers.length; i++)
    {
      if (numbers[i] <= 1)
      {
        valid = false; // eine zahl kleiner als 1 - Daten "ungültig"
        break; // schleife abbrechen..
      }
      count += numbers[i];
    }
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  4. #4
    Avatar von atlantyz
    atlantyz atlantyz ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wetzlar (Hessen)
    Beiträge
    147
    Okay, ich habe versuch die Schleife in VB.net nachzubauen. Aber ich bekomms nicht hin.
    Für was steht denn bei dir "numbers"? Ist das mein Array?

    Bisher lautet meine Schleife so:

    Dim valid As Boolean = True
    Dim i As Integer
    For i = 0 To n.Length
    If n(i) <= 1 Then valid = False : Exit For
    If valid = True Then summe1 = summe1 + n(i)
    Next

    Aber irgendwie setzt der jetzt valid immer auf false. Ich blick nicht durch. Also, mein Array heißt n mit dem Index 0-5.
     
    Nur sprechenden Menschen kann geholfen werden...

  5. #5
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Zum Glück haben wir ja einen C#-to-VB.net Converter verlinkt, hab mein Snippet mal übersetzt, und auch ausprobiert.

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Dim numbers As Integer() = New Integer() {5, 2, 3, 4, 5}
     
    Dim valid As Boolean = True
    Dim count As Integer = 0
    For i As Integer = 0 To numbers.Length - 1
     
        If numbers(i) <= 1 Then
            valid = False
            Exit For
        End If
        count += numbers(i)
    Next

    Sollte gehen, und ja, numbers ist das Array.
    atlantyz bedankt sich. 
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  6. #6
    Avatar von atlantyz
    atlantyz atlantyz ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wetzlar (Hessen)
    Beiträge
    147
    Okay, danke. Das hat jetzt super funktioniert.

    Nun habe ich noch eine Frage: Kann ich auch immer zwei Zahlen aus dem Array miteinander vergleichen und wenn die gleich sind, dann addieren?

    Vielleicht weiß dazu auch noch jemand eine Lösung...

    LG Joey
     
    Nur sprechenden Menschen kann geholfen werden...

  7. #7
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Ein bissl selber Nachdenken musst schon,.. und wenn du dann was willst, musst schon ein wenig genauer sein.

    Hab mir halt was aus den Fingern gesaugt.. Je 2 Zahlen die hintereinander im Array stehen werden entweder Addiert oder Subtrahiert. Ausschlaggebend dafür ist, welche der beiden Zahlen größer ist.

    Die einzelnen Ergebnisse werden in einer (generischen) Liste gespeichert, und zusätzlich wird auch noch alles aufsummiert.

    Viel Spass..

    C#
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    List<int> partialResult = new List<int>();
     
    int[] numbers =new int[] { 55, 66, 99, 11, 22, 66  };
     
    int result = 0;
    int current = 0;
     
    for (int i = 0; i < numbers.Length -1; i++)
    {
      if (numbers[i] < numbers[i+1])
      {
        current = numbers[i]+numbers[i+1];
      }
      else
      {
        current = numbers[i]-numbers[i+1];
      }
      
      partialResult.Add(current);
      result += current;
    }

    VB.net (übersetzt)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    Dim partialResult As New List(Of Integer)()
     
    Dim numbers As Integer() = New Integer() {55, 66, 99, 11, 22, 66}
     
    Dim result As Integer = 0
    Dim current As Integer = 0
    For i As Integer = 0 To numbers.Length - 2
     
        If numbers(i) < numbers(i + 1) Then
            current = numbers(i) + numbers(i + 1)
        Else
            current = numbers(i) - numbers(i + 1)
        End If
     
        partialResult.Add(current)
        result += current
    Next
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

Ähnliche Themen

  1. VB6 Datei komplett auslesen und Teilstring extrahieren
    Von fixmer im Forum Visual Basic 6.0
    Antworten: 8
    Letzter Beitrag: 16.03.08, 15:42
  2. Tabelle komplett auslesen
    Von PizzaJT im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 07.06.06, 14:44
  3. Request komplett auslesen
    Von Spakkn im Forum PHP
    Antworten: 7
    Letzter Beitrag: 14.03.06, 12:42
  4. Page Source komplett auslesen
    Von RedWing im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 26.07.05, 19:12
  5. Parameter eines URL komplett auslesen?
    Von mingelburns im Forum PHP
    Antworten: 4
    Letzter Beitrag: 22.06.04, 07:08