Alle möglichkeiten zwischen 2 werten prüfen

  • Hi ich habn problem und zwar möchte ich einen Wert überprüfen lassen.. hm mal ein beispiel:

    ich hab den aktuellen wert X
    den angegebenen prüfwert Y
    und einen rangewert Z

    ich will prüfen ob der wert X <= jeglichem wert zwischen Y+-Z ist
    gibt es da eine vordefinierte funktion oder eine UDF oder muss ich das in etwa so machen:
    if X <= y-1 then
    ....
    elseif X <= y-2 then
    ....
    elseif X <= <-3 then
    ....
    usw.


    danke im voraus
    greetz

    Einmal editiert, zuletzt von lemoniscool (7. August 2009 um 12:26)

  • Willst du nur prüfen ob X innerhalb von Y +/- Z liegt?

    [autoit]

    If X <= y-z Or X >= y+z Then...

    [/autoit]

    Oder soll auch noch je nach Wert, Abweichung von Y, jeweils ein anderer Code ausgeführt werden??

  • oha so schnell hatte ich garnich mit einer antwort gerechnet und dann gleich 3 xD
    also iwi meint ihr alle das falsche .. glaub ich xD
    nochmal ein beispiel:

    wert Y beträgt 5000
    wert Z beträgt 100

    nun soll geprüft werden ob der wert X beim ausführen der funktion 4900, 4901, 4902, 4903, 4904, ..., 5000, 5001, 5002, 5003, 5004, ..., 5099 oder 5100 ist
    also es soll geprüft werden ob X irgendeiner der werte zwischen Y-Z und Y+Z ist

    //Edit:
    vllt sollte ich noch dazu sagen dass der wert immer positiv ist, sobald er 0 ist wird das programm beendet ^^

  • Oder auch:

    [autoit]

    If Abs($test-$check) <= $Range Then

    [/autoit]


    Erklärung: $test-$check: Differenz zwischen den beiden Werten,
    diese muss im Bereich +-$Range liegen, also $test-$check >= -$Range und $test-$check <= +$Range
    die Vorzeichen kann man durch den Betrag (Abs) ausschalten, da man dadurch immer den positiven Wert ohne Vorzeichen bekommt.
    Nun muss man nur noch testen, ob der Betrag kleiner oder gleich dem Toleranzbereich ist ;)

  • Hi,
    auf die schnelle...

    [autoit]

    $y=5000
    $z=100

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

    $x=number(inputbox("test","Geben sie eine Zahl ein:"))

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

    if $x>$y-$z and $x<$y+$z Then
    $not=""
    Else
    $not="nicht"
    endif
    msgbox(0,0,$x &" befindet sich "&$not&" zwischen "&$y-$z&" und " &$y+$z)

    [/autoit]
  • o_o du hattest schon von ojo und mir die richtigen Antworten, nur nicht einen kompletten Code.
    Und mit der Antwort von Andy werden zwei Werte ausgeschlossen: 4900 und 5100, da größer und kleiner statt größergleich und kleinergleich in der Abfrage stehen.

  • naja kompletten code kann man das nicht nennen nur einen code der es besser erklärt xD
    ich werd den code ja nicht so übernehmen sondern ihn mehr oder weniger abgeändert in einen mittlerweile 5000zeiler einbauen ^^ (wer ihn sich anschauen will -> http://www.asd-crew.com .. da is der download ^^)

  • Zitat

    Und mit der Antwort von Andy werden zwei Werte ausgeschlossen: 4900 und 5100, da größer und kleiner statt größergleich und kleinergleich in der Abfrage stehen.

    Ja, und das ist auch richtig, wenn ZWISCHEN zwei Werten gesucht werden soll, dann sind diese beiden Werte ausgeschlossen. Genau das steht im Script ;)
    Oder glaubst du, ich liefere ausschließlich Steilvorlagen für copy/paste ?

    Ausserdem hat lemoniscool das hier

    Zitat

    also es soll geprüft werden ob X irgendeiner der werte zwischen Y-Z und Y+Z ist

    vorgegeben....

  • irgendwie habt ihr beide recht ^^ ich hab zwar gesagt dass es zwischen 4900 und 5100 gesucht werden soll aber meinte dass 4900 und 5100 auch in die suche eingeschlossen werden ^^
    aber die zwei gleichzeichen einfügen kann ich schon :P

    trotzdem es funktioniert nun, ich kann bald mein update rausbringen und kann an was anderem weiterarbeiten =)
    danke euch allen nochmal, und streitet net so viel ^^