Skip to content
Snippets Groups Projects
user avatar
T2heJada authored
ccafe276
History
Name Last commit Last update
.idea
src
.gitignore
README.md
pom.xml

MatrixCalculator

MatrixCalculator on programm, mis võimaldab teha tehteid maatriksitega.

Autorid: Martin Maikov Harald Jõgi

Kirjeldus

Kasutaja saab luua tekstipõhises keskkonnas maatrikseid, neid vaadata ning nende peal tehteid sooritada

Klassid

Kasutajaliides: Kasutaja side programmiga. Küsib sisendit ja teeb selle põhjal asju Alustamiseks meetod küsi(), mis otsustab, mis lehekülge järgmisena näidata Privaatne meetod prompt võtab sõne, väljastab selle koos muutumatu päisega, ning küsib sisendit. Tehtepuu: Loeb sõnest välja võrrandi, kus muutujad asendab nende väärtustega Meetod parse võtab sõne ja muutujate sõnastiku ning teeb nendest võrrandi Meetod lex võtab sõne ja muudab selle vähimate sümbolite massiiviks TundmatuMuutuja: Viga, mis annab teada, et võrrandis on muutuja, mida pole määratud.

Protsess ja Panus

Harald tegi kasutajaliidese ja parseri. (Klassid Kasutajaliides, Tehtepuu, TundmatuMuutuja) Kulus u. 15h. Martin tegi maatriksid ja tehted nendega.

Kõigepealt tegi Harald valmis kogu kasutajaliidese peale maatriksitega tehete.

Lõpuks tegi Harald valmis parseri, viis kasutajaliidese maatriksitele üle ja ühendas parseri kasutajaliidesega.

Mured

Hinnang

Kasutajaliides saaks olla parem: Kohati ebamugav, ülevalt eelmist lehte veel näha jne.

Testimine

Kasutajaliidest testisin peamiselt lihtsalt kasutades ja vaadates, kas soovitud asju on võimalik teha. Tehtepuu juures hakkasin põhjast pihta: Testisin, kas lex() töötab õigesti, siis kontrollisin algeliste tehete puhul parserit jne.

Nõuded

  1. Maatriksi operatsioonid:
    • Liitmine ja korrutamine
    • Transponeerimine
    • Inverteerimine ehk pöördmaatriksi leidmine
    • Determinandi leidmine
  2. Mälu --- kalkulaatoril on teatud hulk mälupesi, kuhu on defineeritud maatriksid või numbrid.
  3. Tehted --- kalkulaator on võimeline arvutama mitu tehet ja õiges järjekorras.

Ülesannete jaotus

  1. Martin --- Maatriksi operatsioonid ja tehete struktuurne representatsioon ning arvutus.
  2. Harald --- Kasutajaliides ja sõne parsimine tehete andmestruktuurile.

Kasutajaliidese näide

> 2 + 2
4
> |{{1, 4, 3},{0, 4, 0}, {0, 0, 9}}|
36
> |-4|
4
> 6/2*(1+2)
9
> {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} + {{2, 4, 9}, {0, 4, 0}, {0, 0, 9}}
{{3, 6, 12}, {4, 9, 6}, {7, 8, 18}}
> %set A {
A = {{3, 6, 12}, {4, 9, 6}, {7, 8, 18}}

> %list
A {{3, 6, 12}, {4, 9, 6}, {7, 8, 18}}
B = null
C = null
D = null
E = null
F = null
X = null
Y = null
Z = null
> A*2
{{6, 12, 24}, {8, 18, 12}, {14, 16, 36}}