Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
MatrixCalculator
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
maikov
MatrixCalculator
Commits
8b6e8763
Commit
8b6e8763
authored
4 weeks ago
by
maikov
Browse files
Options
Downloads
Patches
Plain Diff
Update README.md file and improve matrix multiplication.
parent
958ae107
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
README.md
+23
-20
23 additions, 20 deletions
README.md
src/main/java/ee/ut/cs/gitlab/maikov/matrix/Matrix.java
+1
-1
1 addition, 1 deletion
src/main/java/ee/ut/cs/gitlab/maikov/matrix/Matrix.java
src/test/java/InverseMatrixTest.java
+4
-2
4 additions, 2 deletions
src/test/java/InverseMatrixTest.java
with
28 additions
and
23 deletions
README.md
+
23
−
20
View file @
8b6e8763
...
...
@@ -3,27 +3,33 @@
MatrixCalculator on programm, mis võimaldab teha tehteid maatriksitega.
Autorid:
Martin Maikov
Harald Jõgi
*
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
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.
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
P
anus
## Protsess ja
p
anus
Harald tegi kasutajaliidese ja parseri. (Klassid Kasutajaliides, Tehtepuu, TundmatuMuutuja)
Kulus u. 15h.
Martin tegi maatriksid ja tehted nendega.
Martin tegi maatriksid ja tehted nendega. (Kõik klassid pakettides exceptions(v.a. TundmatuMuutuja), expressions (v.a. Tehtepuu) ja matrix).
Kulus u. 10h.
Kõigepealt tegi Harald valmis kogu kasutajaliidese peale maatriksitega tehete.
...
...
@@ -35,14 +41,19 @@ Lõpuks tegi Harald valmis parseri, viis kasutajaliidese maatriksitele üle ja
## Hinnang
Kasutajaliides saaks olla parem: Kohati ebamugav, ülevalt eelmist lehte veel näha jne.
Kasutajaliides saaks olla parem: kohati ebamugav, ülevalt eelmist lehte veel näha jne.
Tehete parsimine sõnest võiks olnud olla võimsam ning oleks võinud lisada ka vektori andmetüübi ja sellega seonduvad tehted.
## 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.
Martin otsustas targem olla ja konfigureeris JUnit testimisraamistikku ning
kirjutas palju teste, mis kontrollisid erinevate klasside tööd. Selle abil oli võimalik mul
koodi kirjutamise ajal üles leida erinevaid vigu.
## Nõuded
...
...
@@ -75,14 +86,6 @@ 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}}
```
This diff is collapsed.
Click to expand it.
src/main/java/ee/ut/cs/gitlab/maikov/matrix/Matrix.java
+
1
−
1
View file @
8b6e8763
...
...
@@ -75,7 +75,7 @@ public class Matrix {
for
(
int
k
=
0
;
k
<
this
.
cols
;
k
++)
{
sum
+=
this
.
elements
[
this
.
getIndex
(
i
,
k
)]
*
other
.
elements
[
other
.
getIndex
(
k
,
j
)];
}
result
.
elements
[
result
.
getIndex
(
i
,
j
)]
=
Math
.
round
(
sum
)
;
result
.
elements
[
result
.
getIndex
(
i
,
j
)]
=
sum
;
}
}
...
...
This diff is collapsed.
Click to expand it.
src/test/java/InverseMatrixTest.java
+
4
−
2
View file @
8b6e8763
...
...
@@ -6,6 +6,8 @@ import static org.junit.jupiter.api.Assertions.*;
public
class
InverseMatrixTest
{
private
static
final
double
DELTA
=
1
e
-
15
;
@Test
public
void
testInverseMatrix1
()
{
SquareMatrix
matrix
=
new
SquareMatrix
(
3
,
new
double
[]
{
...
...
@@ -21,7 +23,7 @@ public class InverseMatrixTest {
matrix
.
multiply
(
inverse
);
assertArrayEquals
(
identity
.
getElements
(),
matrix
.
getElements
());
assertArrayEquals
(
identity
.
getElements
(),
matrix
.
getElements
()
,
DELTA
);
}
@Test
...
...
@@ -40,6 +42,6 @@ public class InverseMatrixTest {
matrix
.
multiply
(
inverse
);
assertArrayEquals
(
identity
.
getElements
(),
matrix
.
getElements
());
assertArrayEquals
(
identity
.
getElements
(),
matrix
.
getElements
()
,
DELTA
);
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment