Rešitev: program Zgornja trikotna matrika (Java)

Iz MaFiRaWiki

Namig

Zgornjetrikotna matrika je matrika, ki ima vse elemente pod glavno diagonalo enake 0.

  1. import java.io.*;
  2.  
  3. public class TrikotnaMatrika
  4. {
  5. public static void main(String[] args) throws IOException
  6. {
  7.  
  8. System.out.print("Vnesi stevilo vrstic in stolpcev kvadratne matrike: ");
  9. int n=Integer.parseInt(vhod.readLine());
  10.  
  11. int[][] matrika=new int[n][n];
  12. System.out.println("Sedaj vpisi posamezne elemente:");
  13.  
  14. for(int i=0; i<n;++i){
  15. for(int j=0;j<n;++j){
  16. System.out.print("["+(i+1)+"],["+(j+1)+"]: ");
  17. matrika [i][j]=Integer.parseInt(vhod.readLine());
  18. }
  19. }
  20.  
  21. System.out.println();
  22. System.out.println("Matrika: ");
  23.  
  24. for(int i=0;i<n;++i){
  25. for(int j=0;j<n;++j){
  26. System.out.print(matrika [i][j]);
  27. }
  28. System.out.println();
  29. }
  30. System.out.println();
  31.  
  32. int stevec=0;
  33. for(int i=0;i<n;++i){
  34. for(int j=0;j<i;++j){
  35. if(matrika[i][j] !=0){
  36. ++stevec;
  37. }
  38. }
  39. }
  40. if(stevec!=0)System.out.println("Matrika ni zgornje trikotna.");
  41. else System.out.println("Matrika je zgornje trikotna.");
  42. }
  43. }

Komentar: Uporabila sem dvojno zanko: s tem sem preverila ali so elementi pod glavno diagonalo res ničelni. Če niso se števec pred zanko poveča - torej matrika ni trikotna.

Še ena rešitev, ki preverja tudi "desno" trikotnost:

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class ZgornjaTrikotnaMatrika {
  6.  
  7. public static void main(String[] args) throws IOException {
  8.  
  9. System.out.print("Vnesi stevilo vrstic in stolpcev:");
  10. int n = Integer.parseInt(vhod.readLine());
  11.  
  12. int[][] matrika = new int[n][n];
  13. System.out.println("Sedaj vpisi posamezne elemente:");
  14.  
  15. for (int i = 0; i < n; ++i) {
  16. for (int j = 0; j < n; ++j) {
  17. System.out.print("a[" + (i + 1) + "," + (j + 1) + "]");
  18. matrika[i][j] = Integer.parseInt(vhod.readLine());
  19. }
  20. }
  21.  
  22. for (int i = 0; i < n; ++i) {
  23. for (int j = 0; j < n; ++j) {
  24. System.out.print(matrika[i][j] + " ");
  25. }
  26. System.out.println();
  27. }
  28. boolean jeTrikotnaDesno = true;
  29. boolean jeTrikotnaLevo = true;
  30.  
  31. for (int i = 0; i < n; ++i) {
  32. for (int j = 0; j < i; ++j) {
  33. jeTrikotnaDesno = jeTrikotnaDesno && (matrika[i][j] == 0);
  34. jeTrikotnaLevo = jeTrikotnaLevo && (matrika[i][n - j - 1] == 0);
  35. }
  36. }
  37. if (jeTrikotnaDesno || jeTrikotnaLevo)
  38. System.out.println("Matrika je zgornje trikotna.");
  39. else
  40. System.out.println("Matrika ni zgornje trikotna.");
  41. }
  42. }
Osebna orodja