Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.school;
- import java.util.Scanner;
- public class Main {
- // Функция для расчета длины стороны треугольника
- public static double d(double dx, double dy) {
- return Math.sqrt(dx * dx + dy * dy);
- }
- // Функция для расчета площади по формуле Герона
- public static double S(double p1x, double p2x, double p3x, double p1y, double p2y, double p3y) {
- double d1 = d(p1x - p2x, p1y - p2y),
- d2 = d(p2x - p3x, p2y - p2y),
- d3 = d(p3x - p1x, p3y - p1y);
- double p = (d1 + d2 + d3) / 2.0;
- return Math.sqrt(p * (p - d1) * (p - d2) * (p - d3));
- }
- // Функция для проверки точек треугольника на правильность
- public static boolean check(double px1, double px2, double px3, double p1y, double p2y, double p3y) {
- int sum = 0;
- if (px1 == 0) sum += 1;
- if (px2 == 0) sum += 1;
- if (px3 == 0) sum += 1;
- return (sum == 2) && (p1y != 0) && (p2y != 0) && (p3y != 0);
- }
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- int px[] = new int[10];
- int py[] = new int[10];
- for (int i = 0; i < 10; i++) { // Генерация случайных точек
- px[i] = (int)(Math.random() * 5 - 2);
- py[i] = (int)(Math.random() * 10 - 5);
- }
- double max = 0;
- for (int i = 0; i < 10; i ++) { // Перебор всех точек
- for (int j = 0; j < 10; j++) {
- for (int k = 0; k < 10; k++) {
- double p1x = px[i],
- p2x = px[j],
- p3x = px[k],
- p1y = py[i],
- p2y = py[j],
- p3y = py[k];
- if (check(p1x, p2x, p3x, p1y, p2y, p3y)) {
- double s = S(p1x, p2x, p3x, p1y, p2y, p3y);
- if (s > max) { // Нахождение максимальной площади
- max = s;
- }
- }
- }
- }
- }
- System.out.println(max);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment