Advertisement
dxvmxnd

Untitled

Oct 25th, 2023
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.55 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     public static int matrixCout(int[][] matrix, int sizeI, int sizeJ)
  7.     {
  8.         int sum = 0;
  9.         int maxsum = 0;
  10.  
  11.         for (int i = 0; i < sizeI ; i++) {
  12.  
  13.             for (int j = 0; j < sizeJ; j++) {
  14.                 sum = sum + Math.abs(matrix[i][j]);
  15.             }
  16.             if (sum > maxsum) {
  17.                 maxsum = sum;
  18.             }
  19.                 sum = 0;
  20.  
  21.         }
  22.  
  23.  
  24.         return maxsum;
  25.     }
  26.  
  27.     static void fromfile()
  28.     {
  29.         Scanner scan = new Scanner(System.in);
  30.         int[][] matrix = new int[0][0];
  31.         boolean isIncorrect;
  32.         int sizeI = 0;
  33.         int sizeJ = 0;
  34.         do {
  35.             isIncorrect = false;
  36.             System.out.println("Введите путь к файлу: ");
  37.             String path = scan.nextLine();
  38.             if (path.toLowerCase().endsWith(".txt")) {
  39.                 try (BufferedReader bufferedReader = new BufferedReader(new FileReader(path))) {
  40.                     sizeI = Integer.parseInt(bufferedReader.readLine());
  41.                     sizeJ = Integer.parseInt(bufferedReader.readLine());
  42.                     matrix = new int[sizeI][sizeJ];
  43.  
  44.                     for (int i = 0; i < sizeI; i++) {
  45.                         String[] line = bufferedReader.readLine().split(" ");
  46.                         for (int j = 0; j < sizeJ; j++) {
  47.                             matrix[i][j] = Integer.parseInt(line[j]);
  48.                         }
  49.                     }
  50.                     System.out.println("Максимальная сумма модулей элементов строк: " + matrixCout(matrix, sizeI, sizeJ));
  51.                 }    catch (IOException ioException) {
  52.                     System.out.println("Неверный тип данных! Измените входные данные и перезапустите программу");
  53.                     isIncorrect = true;
  54.                 }
  55.                 try {
  56.                     FileWriter writer = new FileWriter(path, true);
  57.                     writer.write( "\nМаксимальная сумма модулей строк: " + matrixCout(matrix, sizeI, sizeJ));
  58.                     writer.close();
  59.  
  60.                     System.out.println("Данные успешно записаны в файл.");
  61.                 } catch (IOException e) {
  62.                     System.out.println("Ошибка при записи данных в файл.");
  63.                     e.printStackTrace(); }
  64.  
  65.  
  66.             } else {
  67.                 System.out.println("Неверный формат файла или путь к файлу!");
  68.                 isIncorrect = true;
  69.             }
  70.         } while (isIncorrect);
  71.         System.out.println("Вывод матрицы:");
  72.         for (int[] row : matrix) {
  73.             for (int element : row) {
  74.                 System.out.print(element + " ");
  75.             }
  76.             System.out.print("\n");
  77.         }
  78.         scan.close();
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.     };
  87.  
  88.     static void fromconsole()
  89.     {
  90.         Scanner scan = new Scanner(System.in);
  91.  
  92.         boolean isIncorrect;
  93.  
  94.         int sizeI = 0;
  95.         do {
  96.             isIncorrect = false;
  97.             System.out.println("Введите количество строк в матрице: ");
  98.             try {
  99.                 sizeI = Integer.parseInt(scan.nextLine());
  100.             }
  101.             catch (NumberFormatException exception) {
  102.                 System.err.println("Неверный ввод данных!");
  103.                 isIncorrect = true;
  104.             }
  105.         } while (isIncorrect);
  106.  
  107.         int sizeJ = 0;
  108.         do {
  109.             isIncorrect = false;
  110.             System.out.println("Введите количество столбцов в матрице: ");
  111.             try {
  112.                 sizeJ = Integer.parseInt(scan.nextLine());
  113.             }
  114.             catch (NumberFormatException exception) {
  115.                 System.err.println("Неверный ввод данных!");
  116.                 isIncorrect = true;
  117.             }
  118.         } while (isIncorrect);
  119.  
  120.         int[][] matrix = new int[sizeI][sizeJ];
  121.  
  122.         for ( int i = 0; i < sizeI; i++) {
  123.             for (int j = 0; j < sizeJ; j++) {
  124.                 do {
  125.                     isIncorrect = false;
  126.                     System.out.println("Введите элемент " + (i+1) + "," + (j+1) + " элемент матрицы: ");
  127.                     try {
  128.                         matrix[i][j] = Integer.parseInt(scan.nextLine());
  129.                     }
  130.                     catch (NumberFormatException exception) {
  131.                         System.err.println("Неверный ввод данных!");
  132.                         isIncorrect = true;
  133.                     }
  134.                 } while (isIncorrect);
  135.             }
  136.  
  137.         }
  138.         System.out.println("Вывод матрицы на экран:")   ;
  139.         for ( int i = 0; i < sizeI; i++) {
  140.             for (int j = 0; j < sizeJ; j++) {
  141.                 System.out.print(matrix[i][j]);
  142.                 System.out.print(" ");
  143.             }
  144.             System.out.print("\n");
  145.         }
  146.         System.out.println("Максимальная сумма модулей элементов строк:" + matrixCout(matrix, sizeI, sizeJ));
  147.  
  148.     };
  149.  
  150.     public static void main(String[] args) {
  151.  
  152.         Scanner scan = new Scanner(System.in);
  153.         String choice = "";
  154.         boolean isIncorrect;
  155.  
  156.         System.out.println("Данная программа находит наибольшую сумму элементов строк матрицы.");
  157.         System.out.println("Выберите, откуда будут вводиться данные: ");
  158.         do {
  159.             isIncorrect = false;
  160.             System.out.println("Напишите ONE, если с консоли. Напишите TWO, если с файла. ");
  161.             try {
  162.                 choice = scan.nextLine();
  163.                 if (!choice.equals("ONE") && !choice.equals("TWO")) {
  164.                     System.err.println("Неверный ввод данных!");
  165.                     isIncorrect = true;
  166.                 }
  167.             }
  168.             catch (Exception e) {
  169.                 System.err.println("Неверный ввод данных!");
  170.                 isIncorrect = true;
  171.             }
  172.  
  173.  
  174.         } while (!choice.equals("ONE") && !choice.equals("TWO"));
  175.         if (choice.equals("ONE")) {
  176.             fromconsole();
  177.         }
  178.         else {
  179.             fromfile();
  180.         }
  181.  
  182.  
  183.     }
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement