grioool

Untitled

Sep 29th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. package grigorieva.olga;
  2.  
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7.  
  8. public class OAiPVariant7Program211 {
  9. public static void main(String[] args) {
  10. int n = inputN();
  11.  
  12. double[][] triangles = new double[n][3];
  13. for (int i = 0; i < n; i++) {
  14. triangles[i] = inputTriangle(i);
  15. }
  16.  
  17. double[][] medians = new double[n][3];
  18. for (int i = 0; i < n; i++) {
  19. medians[i] = calculateMedians(triangles[i]);
  20. }
  21.  
  22. int biggestMedianTriangle = 0;
  23. int biggestMedianTriangleMedian = 0;
  24. for (int i = 0; i < n; i++) {
  25. for (int j = 0; j < 3; j++) {
  26. if (medians[i][j] > medians[biggestMedianTriangle][biggestMedianTriangleMedian]) {
  27. biggestMedianTriangle = i;
  28. biggestMedianTriangleMedian = j;
  29. }
  30. }
  31. }
  32.  
  33. System.out.println("Самая большая медиана = " + medians[biggestMedianTriangle][biggestMedianTriangleMedian] + " у треугольника с порядковым номером = " + biggestMedianTriangle);
  34. }
  35.  
  36.  
  37. private static int inputN() {
  38. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  39.  
  40. int n = 0;
  41. boolean inputIsCorrect = false;
  42. do {
  43. System.out.print("Введите N: ");
  44. try {
  45. String inputN = bufferedReader.readLine();
  46. n = Integer.parseInt(inputN);
  47. if (n > 0) {
  48. inputIsCorrect = true;
  49. } else {
  50. System.out.println("N должно быть больше 0");
  51. }
  52. } catch (NumberFormatException e) {
  53. System.out.println("Это не число!");
  54. } catch (IOException e) {
  55. System.out.println("Ошибка чтения!");
  56. }
  57. } while (!inputIsCorrect);
  58.  
  59. return n;
  60. }
  61.  
  62. private static double[] inputTriangle(int n) {
  63. double[] triangle = new double[3];
  64.  
  65. boolean inputIsCorrect = false;
  66. do {
  67. for (int i = 0; i < 3; i++) {
  68. triangle[i] = inputDouble("Введите " + (i + 1) + "ю сторону " + (n + 1) + "го трегольника: ");
  69. }
  70.  
  71. double a = triangle[0];
  72. double b = triangle[1];
  73. double c = triangle[2];
  74.  
  75. if (a + b > c && a + c > b && b + c > a) {
  76. System.out.println("Треугольник существует!");
  77. inputIsCorrect = true;
  78. } else {
  79. System.out.println("Треугольник НЕ существует!");
  80. }
  81. } while (!inputIsCorrect);
  82.  
  83. return triangle;
  84. }
  85.  
  86. private static double inputDouble(String prompt) {
  87. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  88.  
  89. double result = 0;
  90. boolean inputIsCorrect = false;
  91. do {
  92. System.out.print(prompt);
  93. try {
  94. String input = bufferedReader.readLine();
  95. result = Double.parseDouble(input);
  96. if (result > 0) {
  97. inputIsCorrect = true;
  98. } else {
  99. System.out.println("Введённое число должно быть больше 0");
  100. }
  101. } catch (NumberFormatException e) {
  102. System.out.println("Это не число!");
  103. } catch (IOException e) {
  104. System.out.println("Ошибка чтения!");
  105. }
  106. } while (!inputIsCorrect);
  107.  
  108. return result;
  109. }
  110.  
  111.  
  112. private static double[] calculateMedians(double[] triangle) {
  113. double a = triangle[0];
  114. double b = triangle[1];
  115. double c = triangle[2];
  116.  
  117. double[] medians = new double[3];
  118.  
  119. medians[0] = calculateMedian(b, c, a);
  120. medians[1] = calculateMedian(a, c, b);
  121. medians[2] = calculateMedian(a, b, c);
  122.  
  123. return medians;
  124. }
  125.  
  126. private static double calculateMedian(double x, double y, double z) {
  127. return Math.sqrt((2 * y * y + 2 * z * z - 2 * x * x) / 4);
  128. }
  129. }
Add Comment
Please, Sign In to add comment