From 629beea088010ede4068e282fa9a95452efeb126 Mon Sep 17 00:00:00 2001 From: rvolkov Date: Sun, 17 Aug 2025 16:56:09 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=98=D0=B7=D0=B2=D0=B8=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D1=83.=20=D0=9E=D0=B1=D1=81=D1=82=D0=BE=D1=8F=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D1=81=D1=82=D0=B2=D0=B0=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5=20(=D1=81=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D1=8F=20=D0=B2=20=D0=BD=D0=BE=D1=87=D1=8C=20?= =?UTF-8?q?=D1=81=2027.07=20=D0=BD=D0=B0=2028.08)=20=D1=81=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D0=B0=D0=BB=D0=B8=20=D0=B2=D1=81=D0=B5=20=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D1=8B.=20=D0=AF=20=D1=81=D0=BE=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=B4=D0=BD=D0=B8=D0=BA=20IT=20AFL.=20=D0=A1=D0=B5=D0=B9=D1=87?= =?UTF-8?q?=D0=B0=D1=81=20=D1=83=D0=B6=D0=B5=20=D1=81=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=BE=D0=BF=D1=80=D0=BE=D1=89=D0=B5,=20=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=D1=89=D0=B8=D0=B9=20=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D1=82=20=D0=BE=D1=87=D0=B5=D0=BD=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D1=82=D0=B0=D1=80=D0=B0=D1=8E=D1=81=D1=8C=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B5=D1=80=D0=B6=D0=B0=D1=82=D1=8C=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D1=87=D0=B5?= =?UTF-8?q?=D0=BC=20=D0=BD=D0=B0=201-2=20=D0=B4=D0=BD=D1=8F=20=D0=B0=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20=D0=B8=20=D1=83=D1=81=D0=BF?= =?UTF-8?q?=D0=B5=D1=8E=20=D0=B2=D0=BE=D0=B2=D1=80=D0=B5=D0=BC=D1=8F))).?= =?UTF-8?q?=20=D0=A1=D0=BF=D0=B0=D1=81=D0=B8=D0=B1=D0=BE!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 26 ++++++++++++++++++++++++++ src/main/java/Main.java | 37 ++++++++++++++++++++++++++++++++++++- src/main/java/Race.java | 23 +++++++++++++++++++++++ 3 files changed, 85 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..6d680d1a9 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,26 @@ +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 getSpeed() { + return speed; + } + + /// Вычисляет расстояние пройденное машинкой за 24 чсас. + public int getDistanceIn24Hours() { + return getSpeed() * 24; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..cccb119f8 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,41 @@ +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); // Скнер для ввода данных. + Car[] cars = new Car[3]; // Массив размерностью в 3 машинки могламно условию. + + for (int i = 0; i < cars.length; i++){ + System.out.println("Введите название автомобиля № " + (i + 1) + ":"); + String name = scanner.nextLine(); + + int speed; + while (true) { + System.out.println("Введите его скорость (1–250):"); + speed = scanner.nextInt(); + scanner.nextLine(); //Странно что в JAVA nextInt() не очищает буффер ввода!!!!!! + + if (speed >0 && speed <=250){ + break; + } + else { + System.out.println("Задана неверная скорость. Скорость должна быть в диапазоне от 1 до 250 км/ч. Попробуйте снова."); + } + } + cars[i] = new Car(name, speed); + } + + Race race = new Race(); + ArrayList leaders = race.getRaceLeaders(cars); + if (leaders.size() == 1){ + System.out.println("Лидер гонки \"24 часа Ле-Ман\": " + leaders.getFirst().getName() + ", он проехал - " + leaders.getFirst().getDistanceIn24Hours() + " км."); + } + else { + System.out.println("Лидеры гонки \"24 часа Ле-Ман\": "); + for (Car leader: leaders){ + System.out.println("* " + leader.getName() + ", проехал - " + leader.getDistanceIn24Hours() + " км."); + } + } } } \ 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..69e46bf64 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,23 @@ +import java.util.ArrayList; +public class Race { + /// Сптско лидеров, на тот случай если больше одной машинки имеет максимальный, одинаковый пробег. + private ArrayList leaders = new ArrayList<>(); + + /// Метод вычисляет лидера или лидеров, и возвращает список лидирующих машинок. + public ArrayList getRaceLeaders(Car[] cars){ + int maxDistance = 0; // Первоначальная инициализация максимальной дистанции. + for (Car car: cars){ + int distance = car.getDistanceIn24Hours(); // Вычисление пройденной дистанции. + + if(distance > maxDistance){ //Если машинка лидер: + maxDistance = distance; + leaders.clear(); // Очищаем список лидеров, + leaders.add(car); //Добавляем машинку в лидеры. + } + else if (distance == maxDistance){ //Если машинка второй лидер: + leaders.add(car); //Добавляем машинку в лидеры. + } + } + return leaders; //Возвращаем список лидеров. + } +} From 27f53ae5834ce74241ef8da5a6975bdf8cb44994 Mon Sep 17 00:00:00 2001 From: rvolkov Date: Sun, 17 Aug 2025 17:02:30 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D0=B7=D0=B2=D0=B8=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D1=83.=20=D0=9E=D0=B1=D1=81=D1=82=D0=BE=D1=8F=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D1=81=D1=82=D0=B2=D0=B0=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5=20(=D1=81=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D1=8F=20=D0=B2=20=D0=BD=D0=BE=D1=87=D1=8C=20?= =?UTF-8?q?=D1=81=2027.07=20=D0=BD=D0=B0=2028.07)=20=D1=81=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D0=B0=D0=BB=D0=B8=20=D0=B2=D1=81=D0=B5=20=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D1=8B.=20=D0=AF=20=D1=81=D0=BE=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=B4=D0=BD=D0=B8=D0=BA=20IT=20AFL.=20=D0=A1=D0=B5=D0=B9=D1=87?= =?UTF-8?q?=D0=B0=D1=81=20=D1=83=D0=B6=D0=B5=20=D1=81=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=BE=D0=BF=D1=80=D0=BE=D1=89=D0=B5,=20=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=D1=89=D0=B8=D0=B9=20=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D1=82=20=D0=BE=D1=87=D0=B5=D0=BD=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D1=82=D0=B0=D1=80=D0=B0=D1=8E=D1=81=D1=8C=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B5=D1=80=D0=B6=D0=B0=D1=82=D1=8C=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D1=87=D0=B5?= =?UTF-8?q?=D0=BC=20=D0=BD=D0=B0=201-2=20=D0=B4=D0=BD=D1=8F=20=D0=B0=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20=D0=B8=20=D1=83=D1=81=D0=BF?= =?UTF-8?q?=D0=B5=D1=8E=20=D0=B2=D0=BE=D0=B2=D1=80=D0=B5=D0=BC=D1=8F))).?= =?UTF-8?q?=20=D0=A1=D0=BF=D0=B0=D1=81=D0=B8=D0=B1=D0=BE!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++++++- src/main/java/Car.java | 12 ++++++------ src/main/java/Main.java | 2 +- src/main/java/Race.java | 10 +++++----- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 63be1bfe0..042839dac 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -# Пустой репозиторий для работы с Java кодом в Android Studio +# Итак, нам предстоит определить лидера гонки: +# Запрашиваем у пользователя 3 автомобиля, каждый из которых имеет два параметра: название и скорость. +# После ввода данных пользователем проверяем, что введённая скорость >0 и <=250. Если скорость ввели неверно, программа должна запросить эти данные заново. +# После успешного ввода рассчитываем, сколько километров за 24 часа смог проехать каждый участник гонки (автомобиль), и запоминаем лидера. +# Выводим название автомобиля-лидера в консоль в любом понятном формате. Например: Самая быстрая машина: Москвич. +# Обратите внимание, что в задании нужно использовать разные классы. Предлагаем разделить весь код на три класса: +# Автомобиль — объект, содержащий в себе параметры «название» и «скорость». +# Гонка – класс, в котором рассчитывается и запоминается лидер. +# Main – класс, в котором происходит считывание пользовательского ввода и коммуникация с остальными классами. diff --git a/src/main/java/Car.java b/src/main/java/Car.java index 6d680d1a9..8f9ccdc1c 100644 --- a/src/main/java/Car.java +++ b/src/main/java/Car.java @@ -1,22 +1,22 @@ public class Car { /// Локальные переменные для хранения заданных в конструкторе значений. - private String name; // Название машинки. - private int speed; //Скорость машинки. + private String _name; // Название машинки. + private int _speed; //Скорость машинки. /// Конструктор, принимает на вход значения: имя машинки, и ее скорость. public Car(String name, int speed) { - this.name = name; - this.speed = speed; + _name = name; + _speed = speed; } /// Метод доступа к названию машинки. public String getName() { - return name; + return _name; } /// Метод доступа к скорости машинки. public int getSpeed() { - return speed; + return _speed; } /// Вычисляет расстояние пройденное машинкой за 24 чсас. diff --git a/src/main/java/Main.java b/src/main/java/Main.java index cccb119f8..cf86e31ed 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -34,7 +34,7 @@ public static void main(String[] args) { else { System.out.println("Лидеры гонки \"24 часа Ле-Ман\": "); for (Car leader: leaders){ - System.out.println("* " + leader.getName() + ", проехал - " + leader.getDistanceIn24Hours() + " км."); + System.out.println("* " + leader.getName() + ", он проехал - " + leader.getDistanceIn24Hours() + " км."); } } } diff --git a/src/main/java/Race.java b/src/main/java/Race.java index 69e46bf64..4f1dffd95 100644 --- a/src/main/java/Race.java +++ b/src/main/java/Race.java @@ -1,7 +1,7 @@ import java.util.ArrayList; public class Race { /// Сптско лидеров, на тот случай если больше одной машинки имеет максимальный, одинаковый пробег. - private ArrayList leaders = new ArrayList<>(); + private ArrayList _leaders = new ArrayList<>(); /// Метод вычисляет лидера или лидеров, и возвращает список лидирующих машинок. public ArrayList getRaceLeaders(Car[] cars){ @@ -11,13 +11,13 @@ public ArrayList getRaceLeaders(Car[] cars){ if(distance > maxDistance){ //Если машинка лидер: maxDistance = distance; - leaders.clear(); // Очищаем список лидеров, - leaders.add(car); //Добавляем машинку в лидеры. + _leaders.clear(); // Очищаем список лидеров, + _leaders.add(car); //Добавляем машинку в лидеры. } else if (distance == maxDistance){ //Если машинка второй лидер: - leaders.add(car); //Добавляем машинку в лидеры. + _leaders.add(car); //Добавляем машинку в лидеры. } } - return leaders; //Возвращаем список лидеров. + return _leaders; //Возвращаем список лидеров. } }