Advertisement
dxvmxnd

Untitled

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