dxvmxnd

Untitled

Oct 26th, 2023
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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. }
Add Comment
Please, Sign In to add comment