Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

FormatierungsProbleme aufzeigen

Uploader:Redakteurytwinky
Datum/Zeit:29.09.2007 19:28:26

'Was das Programm macht, ist eigentlich egal..
'Wenn es nur um die tabellarische Ausgabe geht,
'ist Print Using.. besser ;-))
'RSet geht natürlich auch,  ist aber komplizierter..
#include once "vbcompat.bi"
Type Real As Double
Declare Sub MatrixAusgeben(A() As Real)
Declare Sub MatrixAusgeben2(A() As Real)
Declare Function Mpy(i As Integer, j As Integer, k As Integer, Eins() As Real, Zwei() As Real) As Real
Declare Function Determinante(A() As Real) As Real

Const unten=0
Const iDim=2
Dim As Real A(iDim, iDim)={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, d
Dim As Integer i, j, k

Cls
?"Berechnung der Determinanten einer Matrix A"
?"Matrix ausgeben"
MatrixAusgeben(A())
?"Determinante berechnen"
d=Determinante(A())
?"Determinante=" &d;
If d=0.0 Then ?", exakt NULL";
?!"\nMatrix ausgeben"
MatrixAusgeben2(A())
?"Eniki..";
Sleep
End

Sub MatrixAusgeben(A() As Real)
  Dim As Integer i, j
  For i=unten To iDim
    For j=unten To iDim
       If j<>iDim Then
        ?Using "###.####";a(i, j);
       Else
        ?Using "###.####";a(i, j)
      End If
    Next
  Next
End Sub

Sub MatrixAusgeben2(A() As Real)
  Dim As Integer i, j
  For i=unten To iDim
    For j=unten To iDim
       If j<>iDim Then
        ?Format(a(i, j), "###.0000 ");
       Else
        ?Format(a(i, j), "###.0000 ")
      End If
    Next
  Next
End Sub

Function Determinante(A() As Real) As Real
  Dim As Real Eins(iDim, iDim), Zwei(iDim, iDim), d
  Dim As Integer m, i
  Zwei(unten, unten)=1.0
  Eins(unten, unten)=A(unten, unten)
  For k As Integer=unten To iDim-1
    If Eins(k, k)=0.0 Then Return 0.0
    i=k+1
    For j As Integer=unten To k
      Zwei(j, i)=(A(j, i)-Mpy(j-1, j, i, Eins(), Zwei()))/Eins(j, j)
      Eins(i, j)=A(i, j)-Mpy(j-1, i, j, Eins(), Zwei())
      Eins(i, i)=A(i,i)-Mpy(k, i, i, Eins(), Zwei())
      Zwei(i, i)=1.0
    Next
  Next
  d=1.0
  For i=unten To iDim
    d*=Eins(i, i)
  Next
  Determinante=d 'Funktionsergebnis an den Namen zuweisen!!!
End Function
Function Mpy(i As Integer, j As Integer, k As Integer, Eins() As Real, Zwei() As Real) As Real 'Funktioniert nur mit Determinante ZUSAMMEN..
  Dim d As Real=0.0
  For m As Integer=unten To i
    d+=Eins(j, m)*Zwei(m, k)
  Next
  Mpy=d
End Function