If-Then-Else Grab

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von conger890.

    If-Then-Else Grab

    Hi, eine echte Aufgabe.
    Es sind 8 Speicherplätze mehr oder weniger gefüllt.
    In jedem Speicherplatz kann sein:
    nothing
    ein positiver Wert
    ein negativer Wert
    und natürlich "0".
    wenn ein Speicherplatz nothing enthält, muss er mit dem Durchschitt der anderen Felder gefüllt werden.
    Diese müssen aber dann auch alle positiv oder negativ sein.
    Wenn die Mehrheit der Werte positiv sind, müssen die negativen werte durch den Durchschnitt der positiven werte ersetzt werden.
    Ich "klebe" man eine kleinen Teil meiner letzten Nachtarbeit dran, damit ihr ungefähr versteht, was ich meine.
    Derzeit hat die Function ca 280 Zeilen und kann man gerade die Hälfte bearbeiten.

    Da muss es doch einen Algorythmus geben, der so etwas vereinfacht.
    Hat Jemand eine Idee?
    Gruß conger890
    Dateien
    • If_Then_Else.txt

      (8,79 kB, 120 mal heruntergeladen, zuletzt: )

    conger890 schrieb:

    wenn ein Speicherplatz nothing enthält, muss er mit dem Durchschitt der anderen Felder gefüllt werden. USW

    Ganz klar sind die Regeln imho noch nicht ...

    zb:

    VB.NET-Quellcode

    1. Dim a() As Nullable(Of Integer)
    2. Private Sub foo()
    3. Dim posi = From i In a Where i.HasValue AndAlso i.Value > 0 Select i
    4. Dim nega = From i In a Where i.HasValue AndAlso i.Value < 0 Select i
    5. If posi.Count > nega.Count Then
    6. For Each n In nega
    7. n = CInt(posi.Average)
    8. Next
    9. ElseIf nega.Count > posi.Count Then
    10. For Each n In posi
    11. n = CInt(nega.Average)
    12. Next
    13. End If
    14. End Sub


    Wie gesagt: Alles hängt von den GENAUEN Regeln ab und der REIHENFOLGE in der sie anzuwenden sind!
    Ein erstelltes und nicht belegtes Feld enthält als Inhalt Nullen, nicht aber Nothing.
    Oder hast Du Option Strict On vergessen :?:
    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!

    If-Then-Else Grab

    Hi,
    natürlich habe ich option strict on vergessen. Das Aha Ergebnis war dann auch. naja, viel Arbeit.
    Also erst einmal Danke füe Eure Hilfe.
    picoflop, ich werde dein Vorschlag ausführlich testen, da er sich gut anhört.
    Ich melde mich wieder.
    conger890