Advertisement
Egor_Vakar

lab2.1(java)

Sep 27th, 2021 (edited)
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. package com.company;
  2. import java.util.Scanner;
  3. import static java.lang.StrictMath.abs;
  4. public class Main {
  5.     public static void main(String[] args) {
  6.         System.out.println("Приветствуем вас в программе, которая найдёт площадь многоугольника
  7.                            по заданным координатам вершин.\nВведите количество вершин:");
  8.         boolean isIncorrect;
  9.         int n = 0;
  10.         Scanner scan = new Scanner(System.in);
  11.         do {
  12.             isIncorrect = false;
  13.             try {
  14.                 n = Integer.parseInt(scan.nextLine());
  15.             }
  16.             catch(Exception e) {
  17.                 System.out.println("Количество вершин введёно некорректно!!!\n
  18.                                    Введите количество вершин:");
  19.                 isIncorrect = true;
  20.             }
  21.             if (!isIncorrect && n < 3){
  22.                 System.out.println("Заданное число не может являться количеством вершин!!!\n
  23.                                    Введите количество вершин(целое число больше нуля):");
  24.                 isIncorrect = true;
  25.             }
  26.         } while (isIncorrect);
  27.         double[] xArray = new double[n];
  28.         double[] yArray = new double[n];
  29.         for (int i = 0; i < n; i++){
  30.             System.out.print("Введите координаты вершины " + (i + 1) + ":\nx(" + (i + 1) + ") = ");
  31.             do {
  32.                 isIncorrect = false;
  33.                 try {
  34.                     xArray[i] = Double.parseDouble(scan.nextLine());
  35.                 }
  36.                 catch(Exception e) {
  37.                     System.out.print("Координата x вершины " + (i + 1) + " введена некорректно!!!\n
  38.                                      Введите x(" + (i + 1) + ") = ");
  39.                             isIncorrect = true;
  40.                 }
  41.             }while (isIncorrect);
  42.             System.out.print("y(" + (i + 1) + ") = ");
  43.             do {
  44.                 isIncorrect = false;
  45.                 try {
  46.                     yArray[i] = Double.parseDouble(scan.nextLine());
  47.                 }
  48.                 catch(Exception e) {
  49.                     System.out.print("Координата y вершины " + (i + 1) + " введена некорректно!!!\n
  50.                                      Введите y(" + (i + 1) + ") = ");
  51.                             isIncorrect = true;
  52.                 }
  53.             }while (isIncorrect);
  54.         }
  55.         scan.close();
  56.         double square = 0;
  57.         for (int i = 0; i < n; i++)
  58.             if (i < (n - 1) )
  59.                 square += xArray[i] * yArray[i+1] - xArray[i+1] * yArray[i];
  60.             else
  61.                 square += xArray[i] * yArray[0] - xArray[0] * yArray[i];
  62.         xArray = null;
  63.         yArray = null;
  64.         square = abs(square) / 2;
  65.         System.out.print("Площадь многоугольника = " + square);
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement