Hey Leute
wir machen gerade in der Schule Nullstellenberechnung und so Zeugs, und da hab ich mir gedacht, wenn das auf Papier so einfach ist, dann kanns bei AutoIt auch nicht viel schwerer sein.
Tja da hab ich wohl falsch gedacht oO
Also jetzt zu meinem Problem: Mein Programm kann bis jetzt nur Funktionen untersuchen, wie f(x) = x^2+5*x+3, also alles mit +, jetzt will ich aber einfügen, dass zwischen + und - unterschieden werden kann, also dass solche Funktionen untersucht werden können: f(x) = x^2+5*x-3.
Spoiler anzeigen
#include <Array.au3>
$func = InputBox("Funktion","Geben sie die zu untersuchende Funktion ein!","3*x^2+21*x+6")
$teile = StringSplit($func,"+")
If $teile[0] <> 3 Then
MsgBox(0,"ERROR1","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
$ersterTeil = StringSplit($teile[1],"^")
If $ersterTeil[0] <> 2 Then
MsgBox(0,"ERROR2","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
If $ersterTeil[2] <> 2 Then
MsgBox(0,"ERROR3","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
$zweiterTeil = StringSplit($teile[2],"*")
If $zweiterTeil[0] <> 2 Then
MsgBox(0,"ERROR4","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
If IsInt($teile[3]) == False Then
MsgBox(0,"ERROR5","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
;Hier steht fest, dass die Funktion kompatibel ist!
$ersterTeilReloaded = StringSplit($teile[1],"*")
If $ersterTeilReloaded[0] = 1 Then ;Berechnung von etwa x^2+5*x+3
$p = $zweiterTeil[1]
$q = $teile[3]
MsgBox(0,"",$p&","&$q)
$ergebnis = - $p/2 + Sqrt((($p/2)^2)-$q)
$ergebnis2 = $ergebnis * -1
MsgBox(0,"Nullstellen","Die Nullstellen der Funktion "&@CRLF&$func&@CRLF&"sind"&@CRLF&$ergebnis&@CRLF&$ergebnis2)
ElseIf $ersterTeilReloaded[0] = 2 Then ;Berechnung von etwa 3*x^2+21*x+6
If IsInt($ersterTeilReloaded[1]) == False Then
MsgBox(0,"ERROR7","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
Else
$p = $zweiterTeil[1]/$ersterTeilReloaded[1]
$q = $teile[3]/$ersterTeilReloaded[1]
If (($p/2)^2)-$q < 1 Then
MsgBox(0,"Nullstellen","Die Funktion hat keine Nullstellen!")
Else
$ergebnis = - $p/2 + Sqrt((($p/2)^2)-$q)
$ergebnis2 = $ergebnis * -1
MsgBox(0,"Nullstellen","Die Nullstellen der Funktion "&@CRLF&$func&@CRLF&"sind"&@CRLF&$ergebnis&@CRLF&$ergebnis2)
EndIf
EndIf
Else
MsgBox(0,"ERROR6","Dieses Format einer Funktion wird nicht unterstützt!")
Exit
EndIf
Ich hoffe ihr könnt mir dabei helfen.
Danke
DFPWare