Wyznacznik macierzy
Bartosz Lewandowski, 2010-12-11 14:23:11
Jak większość z nas wpadłem w szał przedświątecznych porządków. Odkurzyłem rejestr systemu, zaktualizowałem bazę wirusów, wydmuchałem pył z wentylatora. Spędzając miło czas na czyszczeniu folderów znalazłem jeden pełen (kilku) plików Java, które pewnie starczą na dwa lub trzy posty :) Na dobry początek wyznacznik macierzy.
Jak wspomniałem we wstępie, przedstawię tu krótko mały applet java liczący wyznacznik macierzy. Po teorię czym jest wyznacznik macierzy odsyłam do Wikipedii. Dodam, że applet oblicza wyznacznik macierzy rekurencyjną metodą rozwinięcia Laplace'a.
Applet implementuje interfejs ActionListener, który pozwala na oprogramowanie określonych zdarzeń (gdy użytkownik takowe wykona).
Przy implementacji ActionListenera należy zaimplementować metodę actionPerformed():
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==btnGen)
{
this.initMatrix();
}
if (e.getSource()==btnLicz)
{
//....
}
}tu jest wykorzystana by sprawdzać jaki przycisk kliknął użytkownik (fragment metody
init(), kod podłączający zdarzenie
ActionListener do przycisków):
btnGen.addActionListener(this);
btnLicz.addActionListener(this);
Applet wykorzystuje również obiekt
JTable (połączony z TableModel), który jest gridem do wprowadzania wartości macierzy. Brak wpisanych wartości lub wartości nie będące liczbami rzeczywistymi będą traktowane jako 0.
Metoda
initMatrix() przygotowuje obiekt JTable, wywoływana jest po klinięciu przycisku
Generuj. Metoda
det oblicza zadaną macierz
matrxi o rozmiarach
dim.
Poniżej działający applet. W pierwszej kolejności podajemy rozmiar macierzy i klikamy
generuj. Następnie wprowadzamy wartości i wybieramy opcję
licz. Załączam również kod źródłowy pliku
Det.java.
Komentarze
Gość [2011-01-19 18:31:41]
Dając kod na stronę warto by popracować nad obsługą błędów.
Bartek [2011-01-19 22:49:21]
Sluszna uwaga, ale są źródła :)
Bartek [2011-01-20 09:13:32]
Poza tym, nie widze by sie wywalalo. Moze masz stara wersje javy.
Eyes [2011-01-20 22:25:58]
Wpisz liczbę większa niż 12.
kuleje albo wydajność albo obsługa błędów. Bo można czekać i czekać...