public class naloga_8 {
public static void main
(String[] args
) { int velikost = 0, od_ = 0, do_ = 0;
try {
velikost =
Integer.
valueOf(niz
).
intValue();
niz = javax.
swing.
JOptionPane.
showInputDialog("Števila generiram od:");
od_ =
Integer.
valueOf(niz
).
intValue();
niz = javax.
swing.
JOptionPane.
showInputDialog("Števila generiram do:");
do_ =
Integer.
valueOf(niz
).
intValue();
}
if(od_ > do_) {
int temp = do_;
do_ = od_;
od_ = temp;
}
od_ *= -1;
int[][] matrika = new int[velikost][velikost];
polni_matriko(matrika, od_, do_);
int[] max = getMax(matrika);
System.
out.
println("Najvecje stevilo je: " + max
[0] +
" nahaja se na koordinatah: " + max
[1] +
", " + max
[2]);
vsotaDiagonale(matrika);
int[] vsoti = vsotaZgorajSpodaj(matrika);
if(vsoti[0] > vsoti[1]) {
System.
out.
println("Vsota stevil nad diagonalo je vecja (" + vsoti
[0] +
").");
} else if(vsoti[0] < vsoti[1]) {
System.
out.
println("Vsota stevil pod diagonalo je vecja (" + vsoti
[1] +
").");
} else if(vsoti[0] == vsoti[1]) {
System.
out.
println("Vsoti stevil nad in pod diagonalo sta enaki (" + vsoti
[0] +
").");
}
izpis_matrike(matrika, maxMest(max[0]));
}
private static void polni_matriko(int[][] matrika, int od_, int do_) {
for(int i = 0; i < matrika.length; i++) {
for(int j = 0; j < matrika[i].length; j++) {
matrika
[i
][j
] =
(int)Math.
round(Math.
random() *
(od_ + do_
) - od_
);
}
}
}
private static int[] getMax(int[][] matrika) {
// 0 - max st.
// 1 - i koordinata
// 2 - j koordinata
int[] max = new int[3];
for(int i = 0; i < matrika.length; i++) {
for(int j = 0; j < matrika[i].length; j++) {
if(i == 0 && j == 0 || max[0] < matrika[i][j]) {
max[0] = matrika[i][j];
max[1] = i;
max[2] = j;
}
}
}
return max;
}
private static void vsotaDiagonale(int[][] matrika) {
int vsota = 0;
for(int i = 0; i < matrika.length; i++) {
vsota += matrika[i][i];
}
System.
out.
println("Vsota diagonale je: " + vsota
);
}
public static int[] vsotaZgorajSpodaj(int[][] matrika) {
// 0 - zg. vsota
// 1 - sp. vsota
int[] vsoti = new int[2];
for(int i = 0; i < matrika.length; i++) {
for(int j = 0; j < matrika[i].length; j++) {
if(i < j) { // zgoraj
vsoti[0] += matrika[i][j];
} else if(i > j) { // spodaj
vsoti[1] += matrika[i][j];
}
}
}
return vsoti;
}
private static int maxMest(int stevilo) {
int mest;
for(mest = 0; stevilo > 0; stevilo /= 10, mest++);
return mest;
}
private static void izpis_matrike(int[][] matrika, int maxMest) {
for(int i = 0; i < matrika.length; i++) {
for(int j = 0; j < matrika[i].length; j++) {
System.
out.
format("%" +
(maxMest +
1) +
"d ", matrika
[i
][j
]);
}
}
}
}