_Solve() UDF

  • Moin,

    hab gerade eine _Solve()-UDF geschrieben.
    Die Funktion löst eine Gleichung auf.

    Code und Beispiel ( für Funktion x+20 = x^2 :(

    Spoiler anzeigen
    [autoit]

    #include 'Array.au3'
    $lSolve = _Solve( "x+20", "x^2" )
    _ArrayDisplay( $lSolve, 'x' )

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

    Func _Solve( $aFirst, $aSecond, $aWidth = 10000 )
    Local $lFirst, $lSecond, $aReturn[1] = [0]
    If ( ( $aFirst = '' ) or ( $aSecond <> '' ) or ( $aWidth <= 0 ) ) Then
    Return $aX[1] = [ 'Error' ]
    EndIf
    For $lNum = 1 to $aWidth
    $lFirst = StringReplace( $aFirst, 'x', $lNum )
    $lSecond = StringReplace( $aSecond, 'x', $lNum )
    If ( Execute( $lFirst ) = Execute( $lSecond ) ) Then
    _ArrayAdd( $aReturn, $lNum )
    $aReturn[0] += 1
    EndIf
    $lFirst = StringReplace( $aFirst, 'x', -1 * $lNum )
    $lSecond = StringReplace( $aSecond, 'x', -1 * $lNum )
    If ( Execute( $lFirst ) = Execute( $lSecond ) ) Then
    _ArrayAdd( $aReturn, -1 * $lNum )
    $aReturn[0] += 1
    EndIf
    Next
    Return $aReturn
    EndFunc

    [/autoit]

    Mfg

    Einmal editiert, zuletzt von Daniel W. (24. Juli 2007 um 17:28)