From 987b06e80c195a584ab70d9e21aa81a2e86abc6c Mon Sep 17 00:00:00 2001 From: Romanoff Date: Wed, 30 Jul 2025 00:08:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=B8=D1=82=201=20=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 14 ++++++++++++ src/main/java/Main.java | 48 +++++++++++++++++++++++++++++++++++++++-- src/main/java/Race.java | 24 +++++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/main/java/Car.java create mode 100644 src/main/java/Race.java diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..2d55697f0 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,14 @@ +public class Car { + private String name; + private int speed; + public Car(String name, int speed) { + this.name = name; + this.speed = speed; + } + public String getName() { + return name; + } + public int calculateDistance(int hours) { + return speed * hours; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..5bebb1de8 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,50 @@ +import java.util.ArrayList; +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + Race leman = new Race(); + for (int i = 1; i <= 3; i++) {// цикл для записи имени и скорости 3-х автомобилей, и определения лидерства + String name;//имя автомобиля + while (true) { + System.out.println("Введите название автомобиля №" + i + ":"); + name = scanner.nextLine().trim();//исключаем название из одних пробелов + if (!name.isEmpty()) {//проверяем не пустой ли ввод + break; + } else { + System.out.println("Ошибка: название автомобиля не может быть пустым!"); + } + } + + int speed;//скорость автомобиля + while (true) {//бесконечный цикл для обработки ошибок ввода скорости + System.out.println("Введите скорость автомобиля №" + i + " (от 1 до 250 км/ч)"); + String input = scanner.nextLine().trim();//в input присваиваем введенную строку + if (input.matches("^[1-9]\\d{0,2}$")) {//устанавливаем правила ввода + speed = Integer.parseInt(input);//преобразуем полученную строку в число + if (speed > 0 && speed <= 250) {//проверяем границы введенной скорости + break; + } else { + System.out.println("Ошибка: скорость должна быть от 1 до 250 км/ч");//сообщение об ошибке и повтор цикла + } + } else { + System.out.println("Ошибка: скорость должна быть целым числом");//сообщение об ошибке и повтор цикла + } + } + Car car = new Car(name, speed);//создаем автомобиль и присваиваем ему имя и скорость + leman.determinateLeader(car);//определяем занял ли автомобиль лидерство + } + + System.out.println("Результаты гонки:");//выводим результат гонки + ArrayList leaders = leman.getLeaders(); + if (leaders.size() == 1) {//если в таблице лидеров 1 победитель + System.out.println("Самый быстрый автомобиль: " + leaders.getFirst().getName()); + } else {//если в таблице лидеров больше 1 победителя + System.out.println("Автомобили, разделившие первенство:"); + for (Car car : leaders) { + System.out.println(car.getName()); + } + } } -} \ No newline at end of file +} diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 000000000..2689c30c3 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; + +public class Race { + private String leaderName = ""; + private int leaderDistance = 0; + private ArrayList leaders = new ArrayList<>(); + + public void determinateLeader(Car car) { + int distance = car.calculateDistance(24); + + if (distance > leaderDistance) { + leaders.clear(); + leaders.add(car); + leaderDistance = distance; + } + else if (distance == leaderDistance) { + leaders.add(car); + } + } + + public ArrayList getLeaders() { + return new ArrayList<>(leaders); + } +}