From d17dd6ccb36f4af9325ae5171fa055a1cd90df77 Mon Sep 17 00:00:00 2001 From: lig5t Date: Fri, 29 Nov 2024 03:07:49 +0300 Subject: [PATCH 1/2] 1 --- src/main/java/Car.java | 21 +++++++++++++++++++++ src/main/java/Main.java | 30 +++++++++++++++++++++++++++++- src/main/java/Race.java | 19 +++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) 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..57dce4e62 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,21 @@ +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; + } + + public double calculateDistance(double hours) { + return speed * hours; + } +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..e8e82127e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,34 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + Car[] cars = new Car[3]; + + for (int i = 0; i < 3; i++) { + System.out.print("Введите название автомобиля #" + (i + 1) + ": "); + String name = scanner.nextLine(); + + double speed; + while (true) { + System.out.print("Введите скорость автомобиля #" + (i + 1) + " (от 0 до 250): "); + speed = scanner.nextDouble(); + scanner.nextLine(); // + + if (speed > 0 && speed <= 250) { + break; // + } else { + System.out.println("Ошибка: скорость должна быть > 0 и <= 250. Попробуйте снова."); + } + } + + cars[i] = new Car(name, speed); + } + + Race race = new Race(cars); + Car winner = race.determineWinner(); + System.out.println("Самая быстрая машина: " + winner.getName()); + + scanner.close(); } } \ 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..49f22a82e --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,19 @@ +public class Race { + private Car[] cars; + + public Race(Car[] cars) { + this.cars = cars; + } + + public Car determineWinner() { + Car winner = cars[0]; + + for (Car car : cars) { + if (car.calculateDistance(24) > winner.calculateDistance(24)) { + winner = car; + } + } + + return winner; + } +} \ No newline at end of file From 0704aea04dc80977e0afec1760771016c28c98be Mon Sep 17 00:00:00 2001 From: lig5t Date: Sat, 14 Dec 2024 20:55:19 +0300 Subject: [PATCH 2/2] 1 --- src/main/java/Main.java | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index e8e82127e..7615cb6ef 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -6,19 +6,32 @@ public static void main(String[] args) { Car[] cars = new Car[3]; for (int i = 0; i < 3; i++) { - System.out.print("Введите название автомобиля #" + (i + 1) + ": "); - String name = scanner.nextLine(); + String name; + while (true) { + System.out.print("Введите название автомобиля #" + (i + 1) + ": "); + name = scanner.nextLine().trim(); + + if (!name.isEmpty()) { + break; + } else { + System.out.println("Ошибка: название автомобиля не должно быть пустым. Попробуйте снова."); + } + } double speed; while (true) { System.out.print("Введите скорость автомобиля #" + (i + 1) + " (от 0 до 250): "); - speed = scanner.nextDouble(); - scanner.nextLine(); // + String input = scanner.nextLine(); - if (speed > 0 && speed <= 250) { - break; // - } else { - System.out.println("Ошибка: скорость должна быть > 0 и <= 250. Попробуйте снова."); + try { + speed = Double.parseDouble(input); + if (speed > 0 && speed <= 250) { + break; + } else { + System.out.println("Ошибка: скорость должна быть > 0 и <= 250. Попробуйте снова."); + } + } catch (NumberFormatException e) { + System.out.println("Ошибка: введено некорректное значение. Попробуйте снова."); } }