Hi,
ich glaub schon, daß progandy in die richtige Richtung weist..
Imho paßt aber auch Honky Tonk noch ganz gut..
Gruß
ytwinky
Beiträge von ytwinky
-
-
Hi,
..
Ergänzungen werden gerne gesehen!
..ich will hier nicht nochmal sagen, was BugFix bereits ausgeführt hat..
(ich mache es ähnlich^^)
Wichtig ist auch: Mails die viel Rächdschraibvehler enthalten sind verdächtig!
(z.B. 'Pfishing' statt 'Phishing' )
Gruß
ytwinky -
-
Hi,
..
Über Purebasic hat aber keiner ein Wort verloren, warum nur, ist es bei keinem je zum Einsatz gekommen?
..Vergleiche einmal die Anschaffungskosten für PureBasic(~79€) und AutoIt(FreeWare!!!)
(Ich habe selbstverständlich einen kostenlosen PureBasic-Compiler, aber der ist total veraltet und konnte damals auch schon nur einen Bruchteil des Sprachumfangs..)
Wenn du UNBEDINGT eine Basic-Sprache benutzen willst..
Warum nimmst du nicht FreeBASIC: http:\ytwinky.freebasic-portal.de
Gruß
ytwinky -
Hi Timo,
natürlich 'ist es dann mögliche' mit den Zahlen zu 'rechnen'..
Voraussetzung ist, daß wir beide jetzt das SELBE Binär-System meinen:
Ich meine das DualSystem(nur 0 und 1)
Wenn du die Strings in der der binären Darstellung läßt, mußt du nur fast alle Funktionen Operationen selber schreiben ;-))
Wenn du jedoch die Zahlen ins Integer-Format umrechnest, kannst du natürlich alle möglichen Operationen durchführen.
Kleine Hilfe und Denkanstoß:Spoiler anzeigen
[autoit];(c)2009 by ytwinky, MD
[/autoit] [autoit][/autoit] [autoit]
Opt('MustDeclareVars', 1)
#NoTrayIcon
;AutoItSetOption("TrayIconHide", 1)
Const $MaxAllowed=2^31-1, $MinAllowed=-2^31Dim $myBin='MaxAllowed=' &($MaxAllowed) &@Lf &'MinAllowed=' &$MinAllowed &@Lf, $Var=2^31, $i, $FromBin
[/autoit] [autoit][/autoit] [autoit]
Do
$i=InputBox('myBin-Eingabe', $myBin &@Lf &'IntegerZahl eingeben:', $Var, '', 300, 145)
If $i<>'' Then
$Var=Execute($i) ;so lassen auch Ausdrücke(z.B. 2^32) eingeben
If $Var='' And @error<>0 Then ;Execute hat nicht geklappt, nochmal..
$myBin='Fehler in Ausdruck: ' &$i &' ' &@error &@Lf &@Lf
$Var=$i
Else
$FromBin=Int2Bin($Var)
$myBin='Integer:' &$Var &@Lf &'Binär:' &$FromBin
If StringInstr($myBin, '(')=0 Then
$myBin&=@Lf &'Hex:' &Hex($Var)
MsgBox(0, 'Bin2Int', Bin2Int($FromBin))
EndIf
EndIf
EndIf
Until $i=''Func Int2Bin($Integer, $StrLen=8) ;desired stringlength may be submitted(defaults to 8), will be used if applicable..
[/autoit] [autoit][/autoit] [autoit]
Local $s='32Bit-RangeError:' &@Lf &'(' &$Integer &' is not in ' &(-2^31) &'..' &(2^31-1) &')', $h=Hex($Integer), $i=1
Local $hx[16]=['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', _
'1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']; 'cause index 0 is used by stringsplit()..
If $Integer>=-2^31 And $Integer<2^31 Then
$s=''
While StringMid($h, $i, 1)='0' ;find first chr in $h which is not '0'
$i+=1
If $i=StringLen($h) Then ExitLoop ;skip the last chr..
Wend
$h=StringMid($h, $i) ;remove leading zeroes from $h
For $i=1 To StringLen($h)
$s&=$hx['0x' &StringMid($h, $i, 1)]
Next
$i=$StrLen-StringLen($s)
If $i>0 Then $s=Str($i, '0') &$s
EndIf
Return $s
EndFuncFunc Bin2Int($FromBin)
[/autoit] [autoit][/autoit] [autoit]
Local $ToInt=0, $StrLen=StringLen($FromBin), $i, $c
For $i=$StrLen To 1 Step -1
$c=StringMid($FromBin, $i, 1)
If $c<>'1' And $c<>'0' Then Return 'Error in ' &$FromBin &', Pos.:' &($StrLen-$i) &', chr not in [0..1]' ; guess what..
$ToInt+=$c*2^($StrLen-$i) ;add the corrected exponent of 2, beware: adds zero if $c is zero, as requested ;-))
Next
If $ToInt>(2^31-1) Then $ToInt-=2^32 ;reduce $ToInt to the range of -2^31..(2^31-1)
Return $ToInt
EndFuncFunc Str($StrLen, $Char)
[/autoit]
Local $i=0, $c=''
For $i=1 To $StrLen
$c&=$Char
Next
Return $c
EndFunc
Viel Spaß beim Probieren
Gruß
ytwinky -
Hi,
[autoit]
zuerst dachte ich, es könnte etwas mit @SW_Hide zu tun haben, aber das war ein Irrtum..
Wenn du /c mal durch /k ersetzt, kommste ganz einfach auf folgende Lösung:$Path = "C:\WinSubC\"
[/autoit]
RunWait(@COMSPEC & ' /c Dir "' & $Path & '" >test.txt', "", @SW_Hide)Stör' dich bitte nicht an dem Verzeichnisnamen, denn 'Neuer 'Ordner' gibt es IMMER NUR kurzfristig auf meinem Rechner^^
Viel Spaß beim Auflisten
Gruß
ytwinky -
Hi,
Browserumfragen sind echt zum aufbrausen...
Interessanter sind da schon Untersuchungen:
Gruß
ytwinky -
Hi, ich habe heute in der Hilfe-Datei folgende Schreibfehler gefunden:
CtrlSetData:
..
Wenn "data" mit dem über GUIDataSeparatorChar definierten Zeichen beginnt oder einen leeren String ist (""), wird die vorherige Liste gelöscht.
..
(Ich will keine Diskussion über 'vorige' vs 'vorherige' Liste anstrengen, aber 'einen leeren' ist hier definitiv falsch..)
GUICtrlRead:
..
Statuse
..
Status(inkl. Plural)
mglw hat sich auch an anderen Stellen der 'Unplural' Statuse eingenistet, verkehrter sind nur noch Statusse oder gar Statüsse
Gruß
ytwinky -
so einfach wie gem es beschribene hat geht es leider nicht!
[autoit]$Input = GUICtrlCreateInput(...)
[/autoit]
$Zahl2 = 3
$Zahl1 = GUICtrlRead($Input)
$Ergebnis = $Zahl1 * $Zahl 2
Und dann kannst du mit $Ergebnis alles machen, ist ja ne normale Variable. Wie du schon gesehen hast, musst du erst die Input-box auslesen lassen, sonst rechnest du mit der ID der Box und das ergibt dann irgendetwas, nur kein richtiges ergebnis.mfg
hauke96
[autoit]
Nanana, hauke96..
versuch's mit$Ergebnis = $Zahl1 * $Zahl2
[/autoit]So sollte es klappen..
Gruß
ytwinky -
Zitat
ich hoffe ich bin hier richtig, wenn nicht, korregiert mich bitte.
Wenn du drauf bestehst..
Es heißt 'korrigiert'
Mein erstes AutoIt-Script? weiß ich nicht mehr..
Gruß
ytwinky -
hi,
ZitatDeshalb werd ich für mein Projekt FreeBasic verwenden!
..eine kluge Wahl, die ich nur unterstützen kann:
FreeBasic-Portal(dt.)
freebasic-forum(engl.)
FreeBasic-Forum(dt.)
..'unabhängig' davon. dass meine Seite vom fb-portal gehostet wird
ytwinky's Seite
Viel Spaß beim Stöbern
Gruß
ytwinky -
-
hi,
schönen Dank für den Link, ich glaub, den hab ich noch nicht..
@PS: Wenn du schonmal auf die linke Seite geschaut hast, wirst du unter meinem Nick auch eine Zeile finden, in der 'Beruf' steht UND genau darunter
steht die Antwort auf deine Frage..
Gruß
ytwinky -
Hi,
war nicht ganz so trivial, wie ich gedacht hatte: Meine Determinantenberechnung von FreeBasic nach AutoIt zu portieren..
Also, eine Matrix ist eine Zahlenanordnung aus Zeilen und Spalten, AutoIt-Benutzern auch als Array[] bekannt, doch es gibt Unterschiede
Die Division durch eine Matrix wird als Multiplikation mit der Inversen ausgeführt, doch das nur am Rande.
Aber wie bei jeder Division gibt es ein Problem, wenn der Divisor Null ist. Bei quadratischen Matrizen, wie sie z.B. in der Ausgleichungsrechnung vorkommen, läßt sich über die Berechnung der Determinanten(quasi der Wert) einer Matrix schon vor der Operation ermitteln, ob selbige überhaupt durchführbar ist. Gelingt das bei Zweier- oder Dreier-Matrizen fast noch per Kopfrechnung, so ist aber bereits bei einer Vierer-Matrix Schluß.
Die Determinantenberechnung gestaltet sich sehr umständlich, da geschieht es leicht, dass sich Vorzeichenfehler einschleichen etc. pp.
Als es das Computer-Magazin mc noch gab, habe ich dort irgendwann(~1985) mal ein Pascal-Programm gefunden, das diese Berechnung übernimmt.
Erst habe ich es nach FreeBasic portiert und dann nach AutoIt, es funktioniert immer noch^^
Wer mit dem Begriff Determinantenberechnung etwas anfangen kann, erhält hier ein Grundgerüst, mit dem soetwas auch mit AutoIt erledigt werden kann.
Wer nix mit dieser Sache zu tun hat, der braucht das Programm auch nicht
Im GUI ist eine ganze Menge möglich, einfach mal anschauen, denn es kann nichts passieren(schließlich liefere ich den Quellcode ja mit)..
Für den Fall, das jemand grad keine Matrix zur Hand hat, deren Determinante garantiert 0 ist, biddeschööön:Es gibt zwei eingebaute Matrizen, eine über das GUI zu finden, die andere, wenn in der Dimensionsauswahl der Eintrag max ausgewählt wird.
Hier habe ich bei der einen den von einer Tabellenkalkulation ermittelten Wert eingetragen, im anderen Fall ist das Ergebnis 3, daran ist nicht zu rütteln. Sicherlich ließe sich noch vieles am GUI rumfeilen und besser/'schöner' machen, aber so ist es auf alle Fälle ausreichend, denn es ging
ja nur darum, den Algorithmus etwas zu verpacken. Genug geredet, hier isses:Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;+------------------------------------------------------------------------------------------+
;| Header: Bestimmen der Übergabeparameter |
;| AnzeigeCheck:|Il1 sind Alt-0124,Großes i,Kleines L, Eins „”᎙šñ¸=äöüßÄÖܱ© |
Const $Author='Determinante.au3 ©2011 by ytwinky, MD'; |
;| (Tastenkombination: keine) |
;| |
;| Zweck : DeterminantenBerechnung einer quadratischen Matrix(z.B. vor einer Inversion) |
;| Quelle: mc (mehr weiß ich leider nicht mehr, sorry..) |
;+------------------------------------------------------------------------------------------+
Global $Menu, $A, $d, $XL, $i, $j, $k
Global $iDim, $MatFormat, $fw, $nk
#Region ### START Koda GUI section ### Form=D:\Sprachen\AutoIt3\Au3\kxf\det.kxf
$det=GUICreate('det', 815, 585, 191, 111)
$grpMain=GUICtrlCreateGroup('', 0, -4, 813, 587)
$lblTitel=GUICtrlCreateLabel('Determinantenberechnung', 6, 10, 469, 33)
GUICtrlSetTip(-1, $Author)
GUICtrlSetFont(-1, 18, 800, 0, 'Arial')
GUICtrlSetColor(-1, 0x000080)
$grpArt=GUICtrlCreateGroup('Eingabeart festlegen', 4, 42, 197, 53)
$rbdatei=GUICtrlCreateRadio('Datei', 10, 58, 49, 17)
$rbauto=GUICtrlCreateRadio('automatisch', 10, 76, 83, 17)
$btnSuchen=GUICtrlCreateButton('Suchen', 119, 54, 75, 25, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
GUICtrlSetState(-1, $GUI_Hide)
GUICtrlCreateGroup('', -99, -99, 1, 1)
$grpEingabe=GUICtrlCreateGroup('', 201, 42, 127, 53)
GUICtrlSetState(-1, $GUI_Hide)
$rbeingebaut=GUICtrlCreateRadio('eingebaute Matrix', 205, 58, 105, 17)
GUICtrlSetState(-1, $GUI_Hide)
$rbzufall=GUICtrlCreateRadio('Zufallsmatrix', 205, 76, 97, 17)
GUICtrlSetState(-1, $GUI_Hide)
GUICtrlCreateGroup('', -99, -99, 1, 1)
$grpmaxdim=GUICtrlCreateGroup('max. Dimension festlegen', 328, 42, 139, 53)
GUICtrlSetState(-1, $GUI_Hide)
$cmbmaxdim=GUICtrlCreateCombo('max', 370, 62, 53, 25)
GUICtrlSetState(-1, $GUI_Hide)
GUICtrlSetData(-1, '2|3|4|5|6|7|8|9|10|15|20')
GUICtrlCreateGroup('', -99, -99, 1, 1)
$grpFormat=GUICtrlCreateGroup('Ausgabeformat', 624, 6, 185, 89)
$lblvk=GUICtrlCreateLabel('Vorkommastellen', 634, 26, 50, 17)
$cmbvk=GUICtrlCreateCombo('5', 724, 22, 81, 25)
GUICtrlSetData(-1, '1|2|3|5|7', 5)
$lblnk=GUICtrlCreateLabel('Nachkommastellen', 632, 49, 97, 17)
$cmbnk=GUICtrlCreateCombo('5', 724, 46, 81, 25)
GUICtrlSetData(-1, '1|2|3|4|5|6|7|8|9', 5)
GUICtrlCreateGroup('', -99, -99, 1, 1)
$efMatrix=GUICtrlCreateEdit('', 4, 98, 805, 449)
$btnBerechnen=GUICtrlCreateButton('Berechnen', 4, 553, 75, 27, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
$lbldet=GUICtrlCreateLabel('Determinante=', 82, 559, 82, 17)
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
$efdet=GUICtrlCreateInput('', 168, 557, 195, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF )
$lblSoll=GUICtrlCreateLabel('Soll=', 368, 559, 28, 17)
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
$efSoll=GUICtrlCreateInput('', 398, 557, 149, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF )
$lblDiff=GUICtrlCreateLabel('Soll-Ist=', 550, 559, 46, 17)
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
$efDiff=GUICtrlCreateInput('', 598, 557, 127, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF )
$btnQuit=GUICtrlCreateButton('Quit', 734, 553, 75, 27, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
GUICtrlCreateGroup('', -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $btnQuit
Exit
Case $btnBerechnen, $cmbvk, $cmbnk
Berechnen()
Case $rbdatei
GUICtrlSetState($btnSuchen, $Gui_Show)
GUICtrlSetState($rbzufall, $Gui_Hide)
GUICtrlSetState($rbeingebaut, $Gui_Hide)
GUICtrlSetState($grpEingabe, $Gui_Hide)
GUICtrlSetState($grpmaxdim, $Gui_Hide)
GUICtrlSetState($cmbmaxdim, $Gui_Hide)
Case $rbauto
GUICtrlSetState($btnSuchen, $Gui_Hide)
GUICtrlSetState($rbzufall, $Gui_Show)
GUICtrlSetState($rbeingebaut, $Gui_Show)
GUICtrlSetState($grpEingabe, $Gui_Show)
Case $rbzufall
GUICtrlSetState($grpmaxdim, $Gui_Show)
GUICtrlSetState($cmbmaxdim, $Gui_Show)
GUICtrlSetData($efMatrix, '')
GUICtrlSetData($efSoll, $XL)
$XL=''
Case $rbeingebaut
GUICtrlSetState($grpmaxdim, $Gui_Hide)
GUICtrlSetState($cmbmaxdim, $Gui_Hide)
$iDim=6
Dim $A[$iDim][$iDim]=[[0.659327444, 0.072983257, 0.979894657, 0.756750136, 0.25441669, 0.83763853], _
[0.559241606, 0.523137874, 0.948388093, 0.330784887, 0.849705537, 0.169404574], _
[0.933652887, 0.616332953, 0.217258497, 0.907022842, 0.082662047, 0.03529322], _
[0.826041544, 0.765330767, 0.52478838, 0.158009727, 0.024860119, 0.36255325], _
[0.846792095, 0.556488281, 0.48273207, 0.122986243, 0.059224104, 0.851249939], _
[0.33697323, 0.625423359, 0.494137015, 0.130947714, 0.248825667, 0.928200963]]
$XL=0.146436546
GUICtrlSetData($efSoll, $XL)
Berechnen()
Case $cmbmaxdim
$iDim=GUICtrlRead($cmbmaxdim)
If $iDim<2 Or $iDim*1=0 Then
$iDim=3
Dim $A[$iDim][$iDim]=[[1, 2, 3], [4, 5, 6], [7, 8, 8]]
$XL=3
Else
Dim $A[$iDim][$iDim]
For $i=0 To $iDim-1
For $j=0 To $iDim-1
$a[$i][$j]=Random()
Next
Next
$XL=''
GUICtrlSetData($efDiff, $XL)
EndIf
GUICtrlSetData($efSoll, $XL)
Berechnen()
Case $btnSuchen
$s='Die Eingabedatei MUSS eine reine Ascii-Datei sein!' &@CrLf
$s&='In ihr stehen die Elemente der Matrix zeilenweise, jeweils durch 1 Leerzeichen getrennt' &@CrLf
$s&='Dezimaltrennzeichen ist der Punkt(''.''), z.B. 12.345' &@CrLf &'Formatierungszeichen(Tausendertrennzeichen) sind nicht erlaubt..' &@CrLf
$s&='Determinantenberechnung funktioniert nur bei quadratischen Matrizen' &@CrLf
$s&='(für mathematisch weniger Bewanderte:Es müssen genausoviel Zeilen vorhanden sein, wie es Spalten gibt..)' &@CrLf
$s&='Leerzeilen sind nicht erlaubt, sie würden als 0-Zeile gewertet und bewirken eine Determinante=0' &@CrLf
$s&='Werden diese Bedingungen nicht eingehalten, errechnet das Programm Unsinn oder stürzt gar ab..' &@CrLf
$s&='Für solche Bediener-Fehler bin ich nicht verantwortlich!' &@CrLf &'Wer das Programm benutzt, macht dies auf eigenes Risiko ;-))' &@CrLf
GUICtrlSetData($efMatrix, $s)
$n=FileOpenDialog('Datei suchen', @WorkingDir, 'Alle (*.*)', 1)
If FileExists($n) Then $n=StringSplit(FileRead($n), @Lf)
$iDim=$n[0]
Dim $A[$iDim][$iDim]
$k=''
For $i=1 To $n[0]
$s=StringSplit($n[$i], ' ')
For $j=1 To $s[0]
$a[$i-1][$j-1]=$s[$j]
$k&=Stringformat('%-' &$fw &'.' &$nk &'f', $a[$i-1][$j-1])
Next
Next
Berechnen()
EndSwitch
WEndFunc Berechnen()
[/autoit] [autoit][/autoit] [autoit]
Local $i, $j, $vk=2, $nk=4, $s=''
$nk=GuiCtrlRead($cmbnk)
$fw=$nk+GuiCtrlRead($cmbvk)+1
For $i=0 To UBound($A)-1
For $j=0 To UBound($A)-1
$s&=Stringformat('%-' &$fw &'.' &$nk &'f', $a[$i][$j])
If $j<>(UBound($A)-1) Then
$s&=' '
Else
$s&=@CrLf
EndIf
Next
Next
GUICtrlSetData($efMatrix, $s)
$i=Determinante($A)
If $i=0 Then $i&=' EXAKT NULL'
GUICtrlSetData($efdet, $i)
If GuiCtrlRead($efSoll)<>'' Then GUICtrlSetData($efDiff, StringFormat('%-8.5E', GuiCtrlRead($efSoll)-GuiCtrlRead($efdet)))
EndFuncFunc Determinante($A)
[/autoit] [autoit][/autoit] [autoit]
Local $LftMat[$iDim][$iDim], $RgtMat[$iDim][$iDim], $d=1.0
Local $i, $j, $k, $n=0
$rgtmat[$n][$n]=$d
$lftmat[$n][$n]=$A[$n][$n]
For $k=$n To $iDim-1
If $lftmat[$k][$k]=0.0 Then Return 0.0
$i=$k+1
For $j=$n To $k
If $i<$idim Then ;kleine Schummelei, die in FreeBasic nicht nötig ist..
$rgtmat[$j][$i]=($a[$j][$i]-Mpy($j-1, $j, $i, $lftmat, $rgtmat))/$lftmat[$j][$j]
$lftmat[$i][$j]=$a[$i][$j]-Mpy($j-1, $i, $j, $lftmat, $rgtmat)
$lftmat[$i][$i]=$a[$i][$i]-Mpy($k, $i, $i, $lftmat, $rgtmat)
$rgtmat[$i][$i]=$d
EndIf
Next
Next
For $i=$n To $iDim-1
$d*=$lftmat[$i][$i]
Next
$LftMat=0
$RgtMat=0;Hilfsmatrizen löschen
Return $d ;Funktionsergebnis zuweisen!!!
EndFuncFunc Mpy($i, $j, $k, $LftMat, $RgtMat) ;funktioniert nur mit Determinante() ZUSAMMEN..
[/autoit]
Local $m, $d=0.0
For $m=0 To $i
$d+=$lftmat[$j][$m]*$rgtmat[$m][$k]
Next
Return $d
EndFunc
Wer den FreeBasic-Quellcode möchte: hier klicken
Viel Spaß beim Berechnen
Gruß
ytwinky -
Hi,
Zitat von stayawayknightIch wundere mich gerade etwas - war der Gauß-Algorythmus nicht ein Algorythmus um Gleichungen in Matrizen lösen zu können?
Der Gauss-Algorithmus ist in der Tat für Matrizen, aber Gauss war eben, wie oben schon erwähnt, sehr vielseitig.
Wenn ich also alle Gleichungen eines Systemes untereinanderschreibe, steht dort:
A*x=l
(Wobei A die Koeffizientenmatrix, x der Vektor der Unberkannten und l der Lösungsvektor ist)
Nun eine kleine Nebenrechnung:
A^(-1)*A*x=A^(-1)*l
(Linksmultiplikation mit der Inversen von A auf beiden Seiten ist erlaubt(wenn die Determinante<>0 ist))
Kurze Überlegung:
A^(-1)*A=E --> Einheitsmatrix, entspricht der 1(um es mal kurz zu formulieren)
Also ist:
x=A^(-1)*l
Wir sehen also, daß das Lösen von Gleichungssystemen durchaus mit Matrizenrechnung zu tun hat bzw. damit auch gelöst werden kann
Das Gauss'sche Verfahren ist nicht das einzige, doch für alle gilt: die Determinante der Matrix muß <>0 sein, sonst klappt's nicht, auch nicht mit dem Nachbarn^^
Habe ich nicht mal die Determinantenberechnung von FreeBasic nach AutoIt portiert? Egal, auf http://ytwinky.freebasic-portal.de ist sie bei den QuellCodes zu finden..
[Edit]
Jetzt ist die Determinantenberechnung auch mit AutoIt möglich
Siehe hier
[/Edit]
Gruß
ytwinky -
-
Hi,
ich habe auf jedem meiner Sticks eine AutoRun.Inf, damit ich anhand des Icons sofort meinen Stick erkennen kann.
(Der Kollege im Büro lästert zwar immer, weil sein Avira immer meckert, wenn ich meinen Stick anstecke, aber damit kann ich leben)
Ich weiß nicht, was noch alles mit den AutoRun.Inf-Dateien möglich ist, doch das läßt sich ja herausfinden^^
Hier nun eine AutoRun.Inf von meinem USB-Stick:Neben der Zeile icon= sind noch mehrere möglich, u.a. command=
Wenn du hier jetzt dein Programm einträgst, könnte es möglich sein, ähnlich wie z.B. Magazin-CDs/-DVDs, daß das Programm startet, wenn
wie schon erwähnt nicht das Antiviren-Programm da einen Strich durch die Rechnung macht..
Allerdings soll es auch Programme geben, die AutoRun.Inf-Dateien manipulieren, deshalb immer die Größe im Auge behalten..
..und auf deinem Rechner kannst du ja machen, was du willst, doch habe bitte Verständnis für Kollegen, die verständnislos kucken, wenn du ihnen sagst, daß sie doch den Virenscanner ausschalten möchten
[edit]
Achte bei Experimenten darauf, immer einen relativen Pfad zu benutzen..
..schließlich hat dein Stick auf einem anderen Rechner mglw. einen anderen Laufwerksbuchstaben..
..in case you didn't know this already
Gruß
ytwinky -
Hi,
du hast natürlich ausgesprochen Pech, weil meine Glaskugel just in dem Moment zerbrach, als ich mich anmeldete..^^
Funktioniert denn das Tooltip-Beispiel aus der Hilfe bei dir?
(Damit wir wenigstens etwas Code haben, um darüber zu reden..)
[Edit]
der böse Hase war schneller..
[/Edit]
Gruß
ytwinky -
Hi,
da du keine konkreten Zahlen genannt hast, kann ich auch nur entsprechend antworten:
I.A. wird der Vorkommateil durch einen '.' vom Nachkommateil getrennt.
Die Funktion zum Finden von Teilstrings ist StringInstr($Quelle, $Suchstring) s.a. Hilfe..
Komplizierter wird es, wenn als Dezimalzeichen das ',' verwendet wird, aber auch das stellt keine große Hürde dar. Richtig kompliziert wird es natürlich, wenn du auch noch Tausender-Trenner drin hast..
Aber eins ist sicher, wenn du den String von rechts aus nach '.' oder ',' durchsuchst, solltest du das Ende (äh, also den Anfang) der Nachkommastellen finden ;-))
Diese Funktion heißt in andern Programmiersprachen(z.B. FreeBasic, Pascal) Frac()
Viel Erfolg
Gruß
ytwinky -
hi,
mist, AspirinJunkie war schneller als ichSpoiler anzeigen
[autoit];#include hier muß natürlich auch die einzubindende datei stehen, sonst geht's nicht
[/autoit] [autoit][/autoit] [autoit]
;siehe Hilfe..
local $Ortschaften[10] ;Liste der Ortschaften$Ortschaften[0] = "bucuresti"
[/autoit] [autoit][/autoit] [autoit]
$Ortschaften[1] = "berlin"
$Ortschaften[2] = "berlin"
$Ortschaften[3] = "Hamburg, Germany"
$Ortschaften[4] = "bucuresti"
$Ortschaften[5] = "Paris, France"
$Ortschaften[6] = "Istanbul, Turkey"
$Ortschaften[7] = "Madrid, Spain"
$Ortschaften[8] = "London, United Kingdom"
$Ortschaften[9] = "Perth, Australia"
;~ While True$rows = UBound($Ortschaften)
[/autoit] [autoit][/autoit] [autoit]MsgBox(4096,"Anzahl der Datensätze", $rows)
[/autoit]
For $i = 0 To $rows - 1
MsgBox(0, "si: ", $i)
MsgBox(0, "Folgende Ortschaft wird ausgewertet: ", $Ortschaften[$i])
$url = "http://www.wunderground.com/cgi-bin/findweather/getForecast?query=" &$Ortschaften[$i]
MsgBox(0, "Aktuelle url: ", $url)
$ordnername = "\" & $Ortschaften[$i] & ".html"
MsgBox(0, "Ordnername ", $ordnername)
Local $Ortschaft = InetGet($url, @ScriptDir & $ordnername, 1, 1)
Next
..ich hab dein Skript soweit es ging unverändert gelassen, aber so läuft es wenigstens..
In der Hilfe-Datei kannst du dich ja mal schlau machen, warum das jetzt geht..
s.AspirinJunkie
Eins noch: Selbst unter FreeBasic kann man mehrere Befehle nur in eine Programmzeile schreiben, wenn die einzelnen Befehle durch ':' getrennt werden. In AutoIt geht es AFAIK nicht!
Probier's halt
Viel Spaß
ytwinky -
Hi White,
du deklarierst z.B. $a[2][3]=[[1, 2, 3], [4, 5, 6]]
und prüfst dann: If $Eingabe=$a[1] Then..
Siehst du selbst, daß das nicht funktionieren kann?
Ok, wenn nicht: Du mußt natürlich jedes Element der Matrix durchgehen, um herauszufinden, ob die Eingabe übereinstimmt, erst wenn alle durchgeprüft sind und keine Übereinstimmung vorhanden ist, ist die Antwort falsch..
@Quizfrage 1: Du solltest vllt noch eine weitere Frage aufnehmen, die auch Bildzeitungsleser lösen könnten^^
Frage: Wer wohnte damals in dem Haus, das heute zu seinen Ehren Rembrandt-Museum heißt?
Antwort: Leonardo Da Vinci, Albrecht Dürer, Rembrandt Harmenszoon van Rijn
Das würde aber bedeuten, daß der Benutzer die Lösung genauso eingibt, wie du sie vorgibst!
Oder du prüfst mit StringInstr() und StringLower()|StringUpper()
Die Funktionen werden in der Hilfe beschrieben..
Viel Spaß beim Probieren..
Gruß
ytwinky