- Два числа називаються дружніми, якщо кожне з них дорівнює сумі всіх дільників другого не рахуючи самого цього числа. Знайдіть всі пари дружніх чисел на відрізку [a; b].
- Написати клас StudentsGrades, що містить приватний масив цілих чисел, в якому зберігаються оцінки групи студентів (оцінки можуть мати значення від 0 до 100). Клас повинен містити публічні методи для зчитування масиву (getter), присвоєння йому значення іншого масиву (setter) та додавання даних до нього (adder), а також методи, які повертають такі статистичні дані:
- максимальна оцінка в групі
- мінімальна оцінка в групі
- середній бал групи
- кількість студентів в яких бал вищий за середній
- кількість студентів в яких бал нижчий за середній
- кількість студентів з відмінною оцінкою
- кількість студентів з оцінкою "добре"
- кількість студентів з оцінкою "задовільно"
- кількість студентів з оцінкою "не задовільно"
- вивести всі оцінки (метод toString())
Оцінки задаються від 0 до 100. "0-59" - незадовільно, "60-70" - задовільно, "71-90" - добре, "91-100" - відмінно.Написати клас-тестер із функцією main, в ході якої створюється об'єкт класу StudentsGrades, зчитуються з клавіатури оцінки студентів та друкуються усі вищеперераховані статистичні дані.Відповідь:Клас тестер.
public class Test { public static void main(String[] args) { StudentsGrades studentsGrades=new StudentsGrades(); studentsGrades.addGrades(); System.out.println(studentsGrades.toString()); studentsGrades.getInfo(); } }
Клас для считування даних
Відповідь:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class DataInput { public static Long getLong() throws IOException { String s = getString(); Long value = Long.valueOf(s); return value; } public static char getChar() throws IOException { String s = getString(); return s.charAt(0); } public static Integer getInt() { String s = ""; try { s = getString(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Integer value = Integer.valueOf(s); return value; } public static String getString() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = br.readLine(); return s; } }
Відповідь:import java.util.Arrays; public class StudentsGrades { private int[] grades; private int maxGrage = Integer.MIN_VALUE; private int minGrage = Integer.MAX_VALUE; private double averageGrade; private int countExelent; private int countGood; private int countNoBad; private int countBad; private int moreAverage; private int lessAverage; public StudentsGrades() { int size; do { System.out.print("Скільки студентів в групі? ->"); size = DataInput.getInt(); if (size <= 0) { System.out.println("Кількість студентів повинна бути більше 0!"); } } while (size <= 0); grades = new int[size]; } public void setGrades(int[] grades) { this.grades = grades; } public void addGrades() { int grade; for (int i = 0; i < grades.length; i++) { do { System.out.print("Балл " + (i + 1) + ": "); grade = DataInput.getInt(); } while ((grade < 0) || (grade > 100)); grades[i] = grade; gradeValue(grade); gradeMinMax(grade); averageGrade += grade; } averageGrade /= grades.length; countMoreLeseAverage(); } private void countMoreLeseAverage() { for (int i = 0; i < grades.length; i++) { if (grades[i] < averageGrade) { lessAverage++; } else { moreAverage++; } } } private void gradeMinMax(int grade) { if (grade > maxGrage) { maxGrage = grade; } if (grade < minGrage) { minGrage = grade; } } private void gradeValue(int grade) { if (grade <= 59) { countBad++; } else if (grade <= 70) { countNoBad++; } else if (grade <= 90) { countGood++; } else { countExelent++; } } public void getInfo() { System.out.println("Максимальний бал: " + maxGrage); System.out.println("Мінімальний бал: " + minGrage); System.out.println("Середній бал: " + averageGrade); System.out.println("Кількість студентів в яких бал вищий за середній: " + moreAverage); System.out.println("Кількість студентів в яких бал нищий за середній: " + lessAverage); System.out.println("Кількість студентів з оцінкою \"відмінною\": " + countExelent); System.out.println("Кількість студентів з оцінкою \"добре\": " + countGood); System.out.println("Кількість студентів з оцінкою \"задовільно\": " + countNoBad); System.out.println("Кількість студентів з оцінкою \"не задовільно\": " + countBad); } @Override public String toString() { return "Оцінки: " + Arrays.toString(grades); } }
- Створіть клас з ім'ям Student, що містить поля: прізвище та ініціали, номер групи, успішність (масив з п'яти елементів). Створити масив з елементів такого типу, впорядкувати записи за зростанням середнього бала. Додати можливість виведення прізвищ і номерів груп студентів, які мають оцінки, рівні тільки 4 або 5.
- Створити клас для зберігання комплексних чисел. Реалізувати операції над комплексними числами: додавання, віднімання, множення, ділення, спряження, піднесення до ступіня, добування квадратного кореня.
- Створіть клас з ім'ям Train, що містить поля: назва пункту призначення, номер поїзда, час відправлення. Ввести дані в масив з п'яти елементів типу Ttrain, впорядкувати елементи за номерами поїздів. Додати можливість виведення інформації про потяг, номер якого введено користувачем. Додати можливість сортування масив по пункту призначення, причому поїзда з однаковими пунктами призначення повинні бути впорядковані за часом відправлення.
- Створити клас з двома змінними. Додати функцію виведення на екран і функцію зміни цих змінних. Додати функцію, яка знаходить суму значень цих змінних, і функцію яка знаходить найбільше значення з цих двох змінних.
- Описати клас, який реалізує десятковий лічильник, який може збільшувати або зменшувати своє значення на одиницю в заданому діапазоні. Передбачити ініціалізацію лічильника значеннями за замовчуванням і довільними значеннями. Лічильник має два методи: збільшення і зменшення, - і властивість, що дозволяє отримати його поточний стан. Написати програму, яка демонструвала б всі можливості класу.
- Скласти опис класу для вектора, заданого координатами його кінців в тривимірному просторі. Забезпечити операції додавання і віднімання векторів з отриманням нового вектора (суми або різниці), обчислення скалярного добутку двох векторів, довжини вектора, косинуса кута між векторами.
- Описати клас, що представляє трикутник. Передбачити методи для створення об'єктів, обчислення площі, периметра і точки перетину медіан. Описати властивості для отримання стану об'єкта.
- Створити інтерфейс Figure з методами обчислення площі та периметра, а також методом, що виводить інформацію про фігуру на екран. Створити похідні класи: Rectangle (прямокутник), Circle (коло), Triangle (трикутник) зі своїми методами обчислення площі і періметра. Створити масив n фігур і вивести повну інформацію про фігури на екран.
- Клас Покупець: Прізвище, Ім'я, По батькові, Адреса, Номер кредитної картки, Номер банківського рахунку; конструктор; Методи: установки значень атрибутів, отримання значень атрибутів, вивід інформації. Створити масив об'єктів даного класу. Вивести список покупців в алфавітному порядку і список покупців, у яких номер кредитної картки знаходиться в заданому діапазоні.
- Створити класс Emploee. клас повинен містити поле типу int для збереження номеру працівника і поле типу double для збереження його заробітної плати. Розробити класс, який дозволить ввести кількість працівників та відобразити інформацію про них. Написати класс який продемонструє дані можливості.
Відповідь:
import static java.lang.Math.pow; import java.util.Scanner; public class TaskOop1 { Model m[]; int a; int b; public TaskOop1(int a, int b) { this.a = a; this.b = b; int num = a; int sumDiv; boolean flag; int n = b - a + 1; m = new Model[n]; for (int i = 0; i < n; i++) { flag = true; sumDiv = sumDiv(num); if (sumDiv == 1) { flag = false; } m[i] = new Model(num, sumDiv, flag); num++; } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Вкажіть границі проміжка [a;b]"); System.out.print("a="); int a = sc.nextInt(); System.out.print("b="); int b = sc.nextInt(); TaskOop1 to1 = new TaskOop1(a, b); System.out.println("/////////////////////"); to1.friendlyNumbers(); } // Пошук дільників числа int sumDiv(int x) { int sum = 0; int c; int d; double y = pow(x, 0.5); int n = 1; while (n <= y) { c = x % n; d = x / n; if (c == 0) { sum += n; if (d != n) { sum += d; } } n++; } return sum - x; } //Пошук дружніх чисел public void friendlyNumbers() { for (int i = 0; i < m.length; i++) { if (m[i].isFlag() && (uslovie(m, i, a))) { System.out.println("Пара: " + m[i].getSumDiv() + "; " + m[i].getNum()); } else { m[i].setFlag(false); } } } //Умова до методу пошуку public boolean uslovie(Model m[], int i, int a) { //Перевірка на попадання в проміжок if ((m[i].getSumDiv() > m[m.length - 1].getNum()) || (m[i].getSumDiv() < m[0].getNum())) { return false; } else if (m[m[i].getSumDiv() - a].isFlag()) { //перевірка на необхідність порівння return false; } else if (m[i].getNum() == m[m[i].getSumDiv() - a].getSumDiv()) { return true; } else { return false; } } }Класс Model
Відповідь:
public class Model { int num; int sumDiv; boolean flag; public Model(int num, int div, boolean flag) { this.num = num; this.sumDiv = div; this.flag = flag; } public int getNum() { return num; } public int getSumDiv() { return sumDiv; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } }
Відповідь:
import java.util.Arrays; public class Dispatcher { public static void main(String[] args) { // створюємо масив студентів Student[] students = new Student[]{ new Student("Іванов", "В.М.", "23", new int[]{4, 5, 5, 4, 5}), new Student("Петров", "І.Р.", "23", new int[]{2, 4, 3, 4, 5}), new Student("Сидоров", "У.П.", "23", new int[]{5, 4, 4, 5, 5}), new Student("Карпов", "И.Ф.", "23", new int[]{5, 2, 4, 4, 2}), }; // сортуємо за середнім балом та виводимо відсортований масив Arrays.sort(students); System.out.println(); for (int i = 0; i < students.length; i++) { System.out.println(students[i].toString()); } System.out.println(); // виводимо інформацію про студентів в яких оцінки 4 та 5 display(students); } private static void display(Student[] students) { for (int i = 0; i < students.length; i++) { if (isFourOrFive(students[i])) { students[i].getInfo(); } } } // перевірка на наявність оцінок студента тільки 4 і 5 private static boolean isFourOrFive(Student student) { boolean flag = true; for (int i = 0; i < student.getAcPerf().length; i++) { if (student.getAcPerf()[i] != 4 && student.getAcPerf()[i] != 5) { flag = false; break; } } return flag; } }Клас Student.
Відповідь:
import java.util.Arrays; import java.util.Scanner; public class Student implements Comparable{ private Scanner sc = new Scanner(System.in); private String firstName; private String initials; private String numberGroup; private int[] acPerf = new int[5]; private Double average; public Student(String firstName, String initials, String numberGroup, int[] acPerf) { this.firstName = firstName; this.initials = initials; this.numberGroup = numberGroup; this.acPerf = acPerf; this.average = averege(); } // конструктор на довільну кількість студентів public Student() { System.out.print("Прізвище ->"); this.firstName = sc.next(); System.out.print("Ініціали ->"); this.initials = sc.next(); System.out.print("Група ->"); this.numberGroup = sc.next(); for (int i = 0; i < acPerf.length; i++) { System.out.print(i + 1 + " бал ->"); this.acPerf[i] = sc.nextInt(); } this.average = averege(); } public int[] getAcPerf() { return acPerf; } // розрахунок середнього балу private double averege() { double sum = 0; for (int i = 0; i < acPerf.length; i++) { sum += acPerf[i]; } return sum / acPerf.length; } // інформація про призвище студента та номер групи public void getInfo() { System.out.print("Прізвище: " + firstName + ". № групи: " + numberGroup); } @Override public String toString() { return "Студент: " + firstName + " " + initials + "; Група: " + numberGroup + "; Бали: " + Arrays.toString(acPerf) + "; Середнє: " + average; } // для сортування за середнім балом @Override public int compareTo(Student student) { return this.average.compareTo(student.average); } }
Відповідь:
Клас тестер:
Клас операцій над комплексними числами:
public class Controller { public static void main(String[] args) { ComplexNumber z1 = new ComplexNumber(3, -4); ComplexNumber z2 = new ComplexNumber(0.0, 5); ComplexOperations co = new ComplexOperations(); System.out.println(co.add(z1, z2)); System.out.println(co.dif(z1, z2)); System.out.println(co.mult(z1, z2)); System.out.println(co.div(z1,z2)); System.out.println(co.conjugate(z1)); System.out.println(co.scrt(z1)); System.out.println(co.pow(co.scrt(z1), 2)); } }Клас комплексних чисел:
Відповідь:
public class ComplexNumber { private double real; private double imaginary; private String sReal; private String sImaginary; public ComplexNumber(double real, double imaginary) { this.real = real; this.imaginary = imaginary; sReal = String.format("%.2f", real); sImaginary = String.format("%.2f", imaginary); } public ComplexNumber(double real) { this(real, 0.0); } public ComplexNumber() { this(0.0); } @Override public String toString() { if (sReal == "NaN" || sImaginary == "NaN") { return "NaN"; } if (Double.isInfinite(real) || Double.isInfinite(imaginary)) { return "Infinity"; } if (imaginary == 0) { return "" + sReal; } if (real == 0) { return "" + sImaginary + "i"; } if (imaginary > 0) { return sReal + "+" + sImaginary + "i"; } else { return sReal + "" + sImaginary + "i"; } } public void setReal(double real) { this.real = real; if (Double.isNaN(real)) { sReal = "NaN"; } else { sReal = String.format("%.2f", real); } } public void setImaginary(double imaginary) { this.imaginary = imaginary; if (Double.isNaN(imaginary)) { sImaginary = "NaN"; } else { sImaginary = String.format("%.2f", imaginary); } } public double getImaginary() { return imaginary; } public double getReal() { return real; } }
Клас операцій над комплексними числами:
Відповідь:
import static java.lang.Math.signum; import static java.lang.Math.sqrt; public class ComplexOperations { private ComplexNumber z = new ComplexNumber(); public ComplexNumber add(ComplexNumber z1, ComplexNumber z2) { z.setReal(z1.getReal() + z2.getReal()); z.setImaginary(z1.getImaginary() + z2.getImaginary()); return this.z; } public ComplexNumber dif(ComplexNumber z1, ComplexNumber z2) { this.z.setReal(z1.getReal() - z2.getReal()); this.z.setImaginary(z1.getImaginary() - z2.getImaginary()); return this.z; } public ComplexNumber mult(ComplexNumber z1, ComplexNumber z2) { double a = z1.getReal(); double c = z2.getReal(); double b = z1.getImaginary(); double d = z2.getImaginary(); this.z.setReal(a * c - b * d); this.z.setImaginary(b * c + a * d); return this.z; } public ComplexNumber div(ComplexNumber z1, ComplexNumber z2) { double a = z1.getReal(); double c = z2.getReal(); double b = z1.getImaginary(); double d = z2.getImaginary(); this.z.setReal((a * c + b * d) / (c * c + d * d)); this.z.setImaginary((b * c - a * d) / (c * c + d * d)); return this.z; } public ComplexNumber conjugate(ComplexNumber z) { this.z.setReal(z.getReal()); this.z.setImaginary(-z.getImaginary()); return this.z; } public ComplexNumber pow(ComplexNumber z, int pow) { this.z = z; for (int i = 1; i < pow; i++) { mult(this.z, z); } return this.z; } public ComplexNumber scrt(ComplexNumber z) { double a = z.getReal(); double b = z.getImaginary(); this.z.setReal(sqrt((a + sqrt(a * a + b * b)) / 2)); this.z.setImaginary(signum(b) * sqrt((-a + sqrt(a * a + b * b)) / 2)); return this.z; } }
Відповідь:
Клас тестер.
Клас компаратори за номером та пунктом призначення.
import java.util.Arrays; import java.util.Scanner; public class Controller { public static void main(String[] args) { Train[] trains = new Train[5]; trains[0] = new Train("Дніпро", 32, "25.02.2018 15:24"); trains[1] = new Train("Льві", 47, "26.02.2018 18:24"); trains[2] = new Train("Дніпро", 92, "25.03.2018 20:04"); trains[3] = new Train("Одеса", 100, "25.02.2018 17:25"); trains[4] = new Train("Харків", 15, "20.04.2018 15:19"); getInfoTrain(trains); Arrays.sort(trains, new TrainNumberComparator()); for (Train train : trains ) { System.out.println(train.toString()); } Arrays.sort(trains, new TrainPunktComparator()); System.out.println(); for (Train train : trains ) { System.out.println(train.toString()); } } private static void getInfoTrain(Train[] trains) { System.out.println("Інформацію про який поїзд бажаєте отримати?"); System.out.print("№№: "); for (int i = 0; i < trains.length - 1; i++) { System.out.print(trains[i].getNumber() + ", "); } System.out.println(trains[trains.length - 1].getNumber() + "."); Scanner scanner = new Scanner(System.in); System.out.print("->"); int number = scanner.nextInt(); for (int i = 0; i < trains.length; i++) { if (number == trains[i].getNumber()) { trains[i].getInfo(); return; } } System.out.println("Поїзда з таким омером не існує!"); } }Клас Train.
Відповідь:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Train { private String punkt; private int number; private LocalDateTime time; public LocalDateTime getTime() { return time; } public String getPunkt() { return punkt; } public int getNumber() { return number; } public Train(String punkt, int number, String date) { this.punkt = punkt; this.number = number; this.time = stringTime(date); } public void getInfo() { System.out.println("Пункт призначення: " + punkt); System.out.println("Дата відправлення: " + time()); } private LocalDateTime stringTime(String date) { String pattern = "d'.'M'.'y HH':'mm"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return LocalDateTime.parse(date, formatter); } private String time() { String pattern = "dd'.'MM'.'yyyy HH':'mm"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return time.format(formatter); } @Override public String toString() { return "Пункт призначення '" + punkt + '\'' + ", №" + number + ", час відправлення=" + time(); } }
Відповідь:
import java.util.Comparator; public class TrainNumberComparator implements Comparator{ @Override public int compare(Train train1, Train train2) { return train1.getNumber()-train2.getNumber(); } } import java.util.Comparator; public class TrainPunktComparator implements Comparator { @Override public int compare(Train train1, Train train2) { if (train1.getPunkt().compareToIgnoreCase(train2.getPunkt()) == 0) { return train1.getTime().compareTo(train2.getTime()); } else { return train1.getPunkt().compareToIgnoreCase(train2.getPunkt()); } } }
Відповідь:
Клас тестер. public class Controller { public static void main(String[] args) { TwoNumbers twoNumbers = new TwoNumbers(2, 8); System.out.println("x1 = " + twoNumbers.getX1() + ", x2 = " + twoNumbers.getX2()); System.out.println("Сума = " + twoNumbers.sum()); twoNumbers.max(); twoNumbers.setX1(8); twoNumbers.max(); twoNumbers.setX2(4); twoNumbers.max(); System.out.println("x1 = " + twoNumbers.getX1() + ", x2 = " + twoNumbers.getX2()); } }Клас 2 чисел.
Відповідь:
public class TwoNumbers { private int x1; private int x2; public TwoNumbers(int x1, int x2) { this.x1 = x1; this.x2 = x2; } public int getX1() { return x1; } public void setX1(int x1) { this.x1 = x1; } public int getX2() { return x2; } public void setX2(int x2) { this.x2 = x2; } public int sum() { return x1 + x2; } public void max() { if (x1 > x2) { System.out.println("Перша змінна більша і = " + x1); } else if (x1 < x2) { System.out.println("Друга змінна більша і = " + x2); } else { System.out.println("Змінні однакові і = " + x1); } } }
Відповідь:
public class Counter { private int max; private int min; private int count; public Counter(int count, int min, int max) { this.count = count; this.min = min; this.max = max; } public Counter() { this(0, 0, 10); } public void setMax(int max) { this.max = max; } public void setMin(int min) { this.min = min; } public void setCount(int count) { this.count = count; } public void up() { count++; } public void down() { count--; } }
Відповідь:
Клас тестер public class Controller { public static void main(String[] args) { VectorOperation vo = new VectorOperation(); Vector a = new Vector(1, 1, 1); Vector b = new Vector(1, 0, 0); System.out.println("Сума векторів с = " + vo.addVector(a, b).toString()); System.out.println("Різниця векторів с = " + vo.difVector(a, b).toString()); System.out.println("Косінус кута між векторами " + vo.getCosAlhfa(a, b)); System.out.println("Модуль вектора |a| = " + a.getModul()); } }Клас вектор
Відповідь:
import static java.lang.Math.sqrt; public class Vector { private double x; private double y; private double z; private double modul; @Override public String toString() { return "(" + x + "; " + y + "; " + z + ")"; } public Vector(double x, double y, double z) { this.x = x; this.y = y; this.z = z; setModul(); } public Vector() { this(0, 0, 0); } private void setModul() { modul = sqrt(x * x + y * y + z * z); } public double getX() { return x; } public double getY() { return y; } public double getZ() { return z; } public double getModul() { return modul; } public void setX(double x) { this.x = x; } public void setY(double y) { this.y = y; } public void setZ(double z) { this.z = z; } }
Відповідь:
import static java.lang.Math.cos; import static java.lang.Math.toRadians; public class VectorOperation { private Vector vector = new Vector(); public Vector addVector(Vector a, Vector b) { vector.setX(a.getX() + b.getX()); vector.setY(a.getY() + b.getY()); vector.setZ(a.getZ() + b.getZ()); return vector; } public Vector difVector(Vector a, Vector b) { vector.setX(a.getX() - b.getX()); vector.setY(a.getY() - b.getY()); vector.setZ(a.getZ() - b.getZ()); return vector; } public double scalar(Vector a, Vector b, double alhfa) { return a.getModul() * b.getModul() * cos(toRadians(alhfa)); } public double getCosAlhfa(Vector a, Vector b) { double temp = a.getX() * b.getX() + a.getY() * b.getY() + a.getZ() * b.getZ(); return temp / a.getModul() / b.getModul(); } }
Відповідь:
public class Controller { public static void main(String[] args) { Triangle triangle = new Triangle(new Point(1, -4), new Point(4, 6), new Point(4, 7)); System.out.printf("P=%.2f%n", triangle.perimetr()); System.out.printf("S=%.2f%n", triangle.sqare()); System.out.println("O" + triangle.getCoordinate().toString()); } }Клас трикутник
Відповідь:
import static java.lang.Math.pow; import static java.lang.Math.sqrt; public class Triangle { private Point A; private Point B; private Point C; private double a; private double b; private double c; private Point M; public Triangle(Point A, Point B, Point C) { this.A = A; this.B = B; this.C = C; this.a = length(B, C); this.b = length(A, C); this.c = length(A, B); this.M = setCoordinate(); } private double length(Point A, Point B) { return sqrt(pow(B.getX() - A.getX(), 2) + pow(B.getY() - A.getY(), 2)); } public double perimetr() { return a + b + c; } public double sqare() { double p = perimetr() / 2; return sqrt(p * (p - a) * (p - b) * (p - c)); } private Point setCoordinate() { Point M = new Point(); M.setX(0.3 * (A.getX() + B.getX() + C.getX())); M.setY(0.3 * (A.getY() + B.getY() + C.getY())); return M; } public Point getCoordinate() { return M; } }
Відповідь:
public class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public Point(double x) { this(x, x); } public Point() { this(0); } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } @Override public String toString() { return String.format("(%.2f; %.2f)", x, y); } }
Відповідь:
public class Tester { public static void main(String[] args) { Figure[] figure = new Figure[5]; figure[0] = new Rectangle(2, 3); figure[1] = new Circle(5); figure[2] = new Triangle(3, 4, 5); figure[3] = new Circle(10); figure[4] = new Rectangle(4, 6); for (Figure f : figure ) { f.info(); } } }Інтерфейс фигура
Відповідь:
interface Figure { double square(); double perimeter(); void info(); }
Відповідь:
public class Rectangle implements Figure { private double a; private double b; public Rectangle(double a, double b) { if (a > 0) this.a = a; if (b > 0) this.b = b; } @Override public double square() { return a * b; } @Override public double perimeter() { return 2 * (a + b); } @Override public void info() { System.out.printf("Я прямокутник зі сторонами a = %.2f, b = %.2f%n", a, b); System.out.printf("S = %.2f, P = %.2f%n%n", square(), perimeter()); } }
Відповідь:
import static java.lang.Math.PI; public class Circle implements Figure { private double r; public Circle(double r) { if (r > 0) this.r = r; } @Override public double square() { return PI * r * r; } @Override public double perimeter() { return 2 * PI * r; } @Override public void info() { System.out.printf("Я коло з R = %.2f%n", r); System.out.printf("S = %.2f, C = %.2f%n%n", square(), perimeter()); } }
Відповідь:
import static java.lang.Math.sqrt; public class Triangle implements Figure { private double a; private double b; private double c; public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } @Override public double square() { double p = perimeter() / 2; return sqrt(p * (p - a) * (p - b) * (p - c)); } @Override public double perimeter() { return a + b + c; } @Override public void info() { System.out.printf("Я трикутник зі сторонами a = %.2f, b = %.2f, с = %.2f%n", a, b, c); System.out.printf("S = %.2f, P = %.2f%n%n", square(), perimeter()); } }
Відповідь:
Комментариев нет:
Отправить комментарий