From 1012660b66440df60048a04b59eca6f94da67f4f Mon Sep 17 00:00:00 2001 From: Karen927 Date: Wed, 13 May 2026 08:16:54 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 22 ++++++++++++++ src/main/java/Main.java | 65 +++++++++++++++++++++++++++++++++++++++-- src/main/java/Race.java | 41 ++++++++++++++++++++++++++ 3 files changed, 126 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..cc41a7bd9 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,22 @@ +public class Car { + private String name; + private double speed; // скорость в км/ч + + public Car(String name, double speed) { + this.name = name; + this.speed = speed; + } + + public String getName() { + return name; + } + + public double getSpeed() { + return speed; + } + + // Рассчитывает расстояние, которое автомобиль проедет за 24 часа + public double calculateDistance() { + return speed * 24; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..5951078c4 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,67 @@ +import java.util.Scanner; + public class Main { + private static final Scanner scanner = new Scanner(System.in); + private static final int CAR_COUNT = 3; + private static final double MIN_SPEED = 0; + private static final double MAX_SPEED = 250; + public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("Добро пожаловать на гонку! Введите данные о 3 автомобилях."); + + Race race = new Race(); + + // Запрашиваем данные о трёх автомобилях + for (int i = 1; i <= CAR_COUNT; i++) { + System.out.println("\nВведите данные для автомобиля №" + i + ":"); + Car car = createCar(); + race.addCar(car); + } + + // Определяем лидера гонки + race.determineLeader(); + + // Выводим результат + Car leader = race.getLeader(); + if (leader != null) { + System.out.println("\nСамая быстрая машина: " + leader.getName()); + } else { + System.out.println("\nНе удалось определить лидера гонки."); + } + + scanner.close(); + } + + // Создаёт автомобиль после валидации ввода + private static Car createCar() { + String name = getCarName(); + double speed = getValidSpeed(); + return new Car(name, speed); + } + + // Получает название автомобиля от пользователя + private static String getCarName() { + System.out.print("Название автомобиля: "); + return scanner.nextLine(); + } + + // Получает корректную скорость от пользователя (0 < speed <= 250) + private static double getValidSpeed() { + double speed; + while (true) { + System.out.print("Скорость автомобиля (км/ч): "); + try { + speed = Double.parseDouble(scanner.nextLine()); + if (speed > MIN_SPEED && speed <= MAX_SPEED) { + break; + } else { + System.out.println("Ошибка: скорость должна быть больше 0 и не превышать 250 км/ч. Попробуйте ещё раз."); + } + } catch (NumberFormatException e) { + System.out.println("Ошибка: введите корректное числовое значение скорости."); + } + } + return speed; } -} \ 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..241fe0c8d --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; +import java.util.List; + +public class Race { + private List cars; + private Car leader; + + public Race() { + cars = new ArrayList<>(); + } + + // Добавляет автомобиль в гонку + public void addCar(Car car) { + cars.add(car); + } + + // Определяет лидера гонки — автомобиль с наибольшим расстоянием за 24 часа + public void determineLeader() { + if (cars.isEmpty()) { + leader = null; + return; + } + + leader = cars.get(0); + double maxDistance = leader.calculateDistance(); + + for (Car car : cars) { + double currentDistance = car.calculateDistance(); + if (currentDistance > maxDistance) { + maxDistance = currentDistance; + leader = car; + } + } + } + + // Возвращает лидера гонки + public Car getLeader() { + return leader; + } +} + From dd972b05c8038937b4fd593a717a581588e09f9c Mon Sep 17 00:00:00 2001 From: Karen927 Date: Wed, 13 May 2026 08:24:44 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 2 +- src/main/java/Main.java | 12 ++++++------ src/main/java/Race.java | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/Car.java b/src/main/java/Car.java index cc41a7bd9..a93634aa3 100644 --- a/src/main/java/Car.java +++ b/src/main/java/Car.java @@ -15,7 +15,7 @@ public double getSpeed() { return speed; } - // Рассчитывает расстояние, которое автомобиль проедет за 24 часа + public double calculateDistance() { return speed * 24; } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 5951078c4..803dfcba4 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -12,17 +12,17 @@ public static void main(String[] args) { Race race = new Race(); - // Запрашиваем данные о трёх автомобилях + for (int i = 1; i <= CAR_COUNT; i++) { System.out.println("\nВведите данные для автомобиля №" + i + ":"); Car car = createCar(); race.addCar(car); } - // Определяем лидера гонки + race.determineLeader(); - // Выводим результат + Car leader = race.getLeader(); if (leader != null) { System.out.println("\nСамая быстрая машина: " + leader.getName()); @@ -33,20 +33,20 @@ public static void main(String[] args) { scanner.close(); } - // Создаёт автомобиль после валидации ввода + private static Car createCar() { String name = getCarName(); double speed = getValidSpeed(); return new Car(name, speed); } - // Получает название автомобиля от пользователя + private static String getCarName() { System.out.print("Название автомобиля: "); return scanner.nextLine(); } - // Получает корректную скорость от пользователя (0 < speed <= 250) + private static double getValidSpeed() { double speed; while (true) { diff --git a/src/main/java/Race.java b/src/main/java/Race.java index 241fe0c8d..8aab350d3 100644 --- a/src/main/java/Race.java +++ b/src/main/java/Race.java @@ -9,12 +9,12 @@ public Race() { cars = new ArrayList<>(); } - // Добавляет автомобиль в гонку + public void addCar(Car car) { cars.add(car); } - // Определяет лидера гонки — автомобиль с наибольшим расстоянием за 24 часа + public void determineLeader() { if (cars.isEmpty()) { leader = null; @@ -33,7 +33,7 @@ public void determineLeader() { } } - // Возвращает лидера гонки + public Car getLeader() { return leader; } From 68799b17a47d9725970b6797578bd353febe3208 Mon Sep 17 00:00:00 2001 From: Karen927 Date: Wed, 13 May 2026 08:25:24 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Car.java b/src/main/java/Car.java index a93634aa3..c03415da2 100644 --- a/src/main/java/Car.java +++ b/src/main/java/Car.java @@ -1,6 +1,6 @@ public class Car { private String name; - private double speed; // скорость в км/ч + private double speed; public Car(String name, double speed) { this.name = name; @@ -15,7 +15,7 @@ public double getSpeed() { return speed; } - + public double calculateDistance() { return speed * 24; }