chillurbrain

Lab8_2

Apr 23rd, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.55 KB | None | 0 0
  1. package lab8_2;
  2.  
  3. public class MatrixMethods {
  4.     //Метод для нахождения количества элементов в массиве массивов.
  5.     static int getNumberOfElements(int[][] array) {
  6.         return array.toString().length();
  7.     }
  8.     //1. Вывод матрицы на экран.
  9.     static void outputMatrix(int[][] array) {
  10.         for (int i = 0; i < array.length; i++) {
  11.             for (int j = 0; j < array[i].length; j++)
  12.                 System.out.printf("%4d", array[i][j]);
  13.             System.out.println();
  14.         }
  15.     }
  16.     //2. Вывод транспонированной матрицы на экран.
  17.     static void outputTMatrix(int[][] array) {
  18.         int counter = 0;
  19.         int[] tempArr = new int[getNumberOfElements(array)];
  20.         int[][] tMatrix = new int[getNumberOfElements(array) / array.length][array.length];
  21.         for (int i = 0; i < array.length; i++){
  22.             for (int j = 0; j < array[i].length; j++) {
  23.                 tempArr[counter] = array[i][j];
  24.                 counter++;
  25.             }
  26.         }
  27.         counter = 0;
  28.         for (int i = 0; i < tMatrix.length; i++) {
  29.             for (int j = 0; j < tMatrix[i].length; j++) {
  30.                 tMatrix[i][j] = tempArr[counter];
  31.                 counter += getNumberOfElements(array) / array.length; //Инкрементирование counter на число "рядов".
  32.                 System.out.printf("%4d", tMatrix[i][j]);
  33.             }
  34.             System.out.println();
  35.             counter -= tempArr.length - 1;
  36.         }
  37.     }
  38.  
  39.     /** 3. Числа на диагонали, идущей из правого верхнего в левый нижний угол равны 1.
  40.     Числа, стоящие выше этой диагонали, равны 0.
  41.     Числа, стоящие ниже этой диагонали, равны 2.
  42.     Полученный массив выведите на экран. Числа разделяйте одним пробелом
  43.      */
  44.     static void oneTwoMatrix(int size) {
  45.         int[][] matrix = new int[size][size];
  46.         for (int i = size - 1; i >= 0; i--) {
  47.             for (int j = size - 1; j >= 0; j--) {
  48.                 if (i + j == size - 1) matrix[i][j] = 1;
  49.                 else if (i + j > size - 1) matrix[i][j] = 2;
  50.                 else matrix[i][j] = 0;
  51.             }
  52.         }
  53.         for (int[] i : matrix) {
  54.             for (int j : i)
  55.                 System.out.print(j + " ");
  56.             System.out.println();
  57.         }
  58.     }
  59.  
  60.     //4. Метод для проверки является ли матрица симметричной.
  61.     static boolean isSymmetric(int[][] array) {
  62.         boolean isSymmetric = true;
  63.         for (int i = 0; i < array.length; i++) {
  64.             for (int j = 0; j < array[i].length; j++) {
  65.                 if (array[i][j] != array[j][i])
  66.                     isSymmetric = false;
  67.             }
  68.         }
  69.         return isSymmetric;
  70.     }
  71.     //5. Состязания - 1.
  72.     static int[] firstCompetition(int[][] array) {
  73.         int maxPts = 0;
  74.         int[] res = new int[2];
  75.         for (int i = 0; i < array.length; i++) {
  76.             for (int j = 0; j < array[i].length; j++) {
  77.                 maxPts += array[i][j];
  78.                 if (maxPts > res[0]) {
  79.                     res[0] = maxPts;
  80.                     res[1] = i;
  81.                 }
  82.             }
  83.             maxPts = 0;
  84.         }
  85.         return res;
  86.     }
  87.  
  88.     //6. Состязания - 2.
  89.     static int[] secondCompetition(int[][] array) {
  90.         int maxPtsPerTry = 0;
  91.         int[] res = new int[3];
  92.         for (int i = 0; i < array.length; i++) {
  93.             for (int j = 0; j < array[i].length; j++) {
  94.                 maxPtsPerTry = array[i][j];
  95.                 if (maxPtsPerTry > res[0]) {
  96.                     res[0] = maxPtsPerTry;
  97.                     res[1] = i;
  98.                     res[2] = j;
  99.                 }
  100.             }
  101.         }
  102.         return res;
  103.     }
  104.  
  105.     //7. Состязания - 3.
  106.     static int thirdCompetition(int[][] array) {
  107.         int[] maxPtsPerTry = new int[array.length];
  108.         int[] summOfPts = new int[array.length];
  109.         int winner = 0;
  110.         int res = 0;
  111.         for (int i = 0; i < array.length; i++) {
  112.             for (int j = 0; j < array[i].length; j++) {
  113.                 summOfPts[i] += array[i][j];
  114.                 if (maxPtsPerTry[i] < array[i][j]) {
  115.                     maxPtsPerTry[i] = array[i][j];
  116.                 }
  117.             }
  118.         }
  119.  
  120.         for (int i = 0; i < maxPtsPerTry.length; i++)
  121.             if (maxPtsPerTry[i] > res) {
  122.                 res = maxPtsPerTry[i];
  123.                 winner = i;
  124.             }
  125.  
  126.         res = 0;
  127.  
  128.         for (int i = 0; i < summOfPts.length; i++)
  129.             if (summOfPts[i] > res) {
  130.                 res = summOfPts[i];
  131.                 winner = i;
  132.             }
  133.         return winner;
  134.     }
  135.  
  136.     //8. Состязания - 4.
  137.     static int fourthCompetition(int[][] array) {
  138.         int[] maxPtsPerTry = new int[array.length];
  139.         int maxPts = 0;
  140.         int winners = 0;
  141.         for (int i = 0; i < array.length; i++) {
  142.             for (int j = 0; j < array[i].length; j++) {
  143.                 if (maxPtsPerTry[i] < array[i][j]) {
  144.                     maxPtsPerTry[i] = array[i][j];
  145.                 }
  146.             }
  147.         }
  148.         for (int i = 0; i < maxPtsPerTry.length; i++) {
  149.             if (maxPts < maxPtsPerTry[i])
  150.                 maxPts = maxPtsPerTry[i];
  151.         }
  152.         for (int i = 0; i < maxPtsPerTry.length; i++) {
  153.             if (maxPts == maxPtsPerTry[i])
  154.                 winners++;
  155.         }
  156.         return winners;
  157.     }
  158.  
  159.     //9. Созтязания - 5.
  160.     static int fifthCompetition(int[][] array) {
  161.         int[] maxPtsPerTry = new int[array.length];
  162.         int maxPts = 0;
  163.         int winners = 0;
  164.         for (int i = 0; i < array.length; i++) {
  165.             for (int j = 0; j < array[i].length; j++) {
  166.                 if (maxPtsPerTry[i] < array[i][j]) {
  167.                     maxPtsPerTry[i] = array[i][j];
  168.                 }
  169.             }
  170.         }
  171.         for (int i = 0; i < maxPtsPerTry.length; i++) {
  172.             if (maxPts < maxPtsPerTry[i])
  173.                 maxPts = maxPtsPerTry[i];
  174.         }
  175.         for (int i = 0; i < maxPtsPerTry.length; i++) {
  176.             if (maxPts == maxPtsPerTry[i]) {
  177.                 winners++;
  178.                 System.out.print("Номер победителя " + i + '\n');
  179.             }
  180.         }
  181.         return winners;
  182.     }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment