Advertisement
Uimin_Maxim

Задача 16_2

Jan 27th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.75 KB | None | 0 0
  1. //Уймин Максим
  2. //IT School, 2 группа
  3. //13.10.2015
  4. //Задача 16. Дана матрица размера M*N
  5. //В каждом ее столбце найти количество элементов, больших среднего геометрического всех элементов этого столбца.
  6. import java.io.PrintStream;
  7. import java.util.Scanner;
  8. public class Exersise16_2 {
  9.     //Основной класс
  10.     public static PrintStream out = System.out;
  11.     public static Scanner scan = new Scanner(System.in);
  12.     //Данные
  13.     static int[][]matrix;
  14.     static int M = Construct();
  15.     static int N = Construct();
  16.     static double[] GeoMean;
  17.     static int Count[];
  18.     //Методы
  19.     public static int Construct (){
  20.         //Конструктор для ввода размеров матрицы
  21.         int value = scan.nextInt();
  22.         return value;
  23.     }
  24.     public static void CreateMatrix(){
  25.         //Метода создаёт матрицу заданных размеров и заполняет её случайными числами от -10 до 10
  26.         matrix = new int [M][N];
  27.         for (int i=0;i<M;i++){
  28.             for (int j=0;j<N;j++){
  29.                 matrix[i][j] = (-10) + (int)(Math.random()*((10-(-10))+1));
  30.             }
  31.         }
  32.     }
  33.     public static void PrintMatrix(){
  34.         //Метод выводит матрицу на экран
  35.         for (int i=0;i<M;i++){
  36.             for (int j=0;j<N;j++){
  37.                 out.print(matrix[i][j] + "\t");
  38.             }
  39.             out.println();
  40.         }
  41.     }
  42.     public static void FillGeoMean (){
  43.         //Метод находит среднее геометрическое каждого столбца матрицы и сохраняет это значение в ячейку массива под номером, равным номеру стобца в матрице
  44.         GeoMean = new double [N];//Определяем размер массива
  45.         for (int i=0;i<N;i++){
  46.             GeoMean[i] = 1;
  47.             for (int j=0;j<M;j++){
  48.                 GeoMean[i] = GeoMean[i]*matrix[j][i];
  49.             }
  50.             GeoMean[i] = Math.pow(GeoMean[i],1.0/M);
  51.         }
  52.     }
  53.     public static void PrintGeoMean(){
  54.         //Метод выводит на экран массив GeoMean длинны N
  55.         for (int i=0;i<N;i++){
  56.             out.print(GeoMean[i]+"\t");
  57.         }
  58.         out.println();
  59.     }
  60.     public static void CountElements(){
  61.         //Метод считает количество элементов стобца, которые больше среднего неометрического всех элементов этого столбца и сохраняет это значение в ячейке массива с номером, равным номеру стобца в матрице
  62.         Count = new int [N];//Определяем размер массива
  63.         for (int i=0;i<N;i++){
  64.             Count[i]=0;
  65.             for (int j=0;j<M;j++){
  66.                 if (matrix[j][i]>GeoMean[i]) Count[i]=Count[i]+1;
  67.             }
  68.         }
  69.     }
  70.     public static void PrintCount(){
  71.         //Метод выводит на экран массив Count длинны N
  72.         for (int i=0;i<N;i++){
  73.             out.print(Count[i]+"\t");
  74.         }
  75.         out.println();
  76.     }
  77.     public class AnotherClass{
  78.         //Дополнительный класс
  79.         public void main(String [] args){
  80.             //Основная функция, отсюда начинается выполнение программы
  81.             out.println("Enter the height of matrix");
  82.             Exersise16_2.Construct();
  83.             out.println("Enter the width of matrix");
  84.             Exersise16_2.Construct();
  85.             Exersise16_2.CreateMatrix();
  86.             out.println("Original matrix:");
  87.             Exersise16_2.PrintMatrix();
  88.             Exersise16_2.FillGeoMean();
  89.             out.println("Geometric mean of each column: ");
  90.             Exersise16_2.PrintGeoMean();
  91.             Exersise16_2.CountElements();
  92.             out.println("Number of elements in each column that greater than geometric mean of each column: ");
  93.             Exersise16_2.PrintCount();
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement