Aus mehreren Variablen die mit dem größten Wert finden

  • Hallo erstmal,

    Ich habe etwa 8 Variablen, in denen Zahlen eingespeichert sind. Die Zahlen verändern sich nach mehreren Benutzerabfragen und danach möchte ich die Variable finden, die die größte Zahl hat. Es gibt natürlich diese relativ simple Möglichkeit mit den If-Abfragen:

    [autoit]


    If $1> $2 Then
    If $1> $2 Then
    $max=1
    Endif
    Endif
    ;stellt euch das ganze noch für acht weitere Variablen vor.....

    [/autoit]

    Das ist bei acht Variablen aber relativ schreibaufwändig. Gibt es vielleicht eine Möglichkeit das ganze abzukürzen.
    Praktisch wäre es auch, wenn zwei von den Variablen zufällig gleich sind, dass die dann in verschiedene Arrays o.ä. gespeichert werden, d.h. dass man alle Variablen hat, die den höchsten Wert beinhalten.

    Einmal editiert, zuletzt von kofy (20. Dezember 2010 um 15:20)

  • Nehm keine 8 Variablen sondern gleich ein Array und dann:

    [autoit]

    _ArrayMax

    [/autoit]


    Wenn 2 Werte am höchsten sind:

    [autoit]

    _ArraySort

    [/autoit]


    und alle höchsten sind hintereinander

  • Okay, erst mal danke für die Antworten. Ich probier das gleich aus. Dann schreib ich noch mal kurz, wie gut es geklappt hat :D

  • Alles Klar, es ist zwar noch was dazwischengekommen, aber letztendlich hab ichs doch geschafft ein Testskript zu schreiben. Für alle, die zu faul sind ein eigenes zu schreiben, hier noch mal das Skript:

    [autoit]


    #NoTrayIcon
    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $Array[10]

    [/autoit][autoit][/autoit][autoit]

    $Array[0]=1
    $Array[1]=2
    $Array[2]=3
    $Array[3]=4
    $Array[4]=5
    $Array[5]=6
    $Array[6]=7
    $Array[7]=8
    $Array[8]=9
    $Array[9]=10

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $i=_ArrayMaxIndex($Array,1)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"Test","Array Nummer "&$i&" ist der höchste Array",10)

    [/autoit]

    Und hier noch mal mit Zufallszahlen:

    [autoit]


    #NoTrayIcon
    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $Array[10]

    [/autoit][autoit][/autoit][autoit]

    $Array[0]=Random(1,100,1)
    $Array[1]=Random(1,100,1)
    $Array[2]=Random(1,100,1)
    $Array[3]=Random(1,100,1)
    $Array[4]=Random(1,100,1)
    $Array[5]=Random(1,100,1)
    $Array[6]=Random(1,100,1)
    $Array[7]=Random(1,100,1)
    $Array[8]=Random(1,100,1)
    $Array[9]=Random(1,100,1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $i=_ArrayMaxIndex($Array,1)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"Test","Array Nummer "&$i&" ist der höchste Array",10)

    [/autoit]