- Два числа називаються дружніми, якщо кожне з них дорівнює сумі всіх дільників другого не рахуючи самого цього числа. Знайдіть всі пари дружніх чисел на відрізку [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());
}
}
Відповідь:
Комментариев нет:
Отправить комментарий