From c3fe5f3844671ee2b5de0d73ce845254eb6dfc75 Mon Sep 17 00:00:00 2001 From: LampJuice Date: Wed, 8 Jan 2025 14:55:01 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=BC=D0=B0=D1=88=D0=BD=D0=B5?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Auto.java | 14 ++++++++++++++ src/main/java/Main.java | 33 ++++++++++++++++++++++++++++++++- src/main/java/Race.java | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 src/main/java/Auto.java create mode 100644 src/main/java/Race.java diff --git a/src/main/java/Auto.java b/src/main/java/Auto.java new file mode 100644 index 000000000..64a40c040 --- /dev/null +++ b/src/main/java/Auto.java @@ -0,0 +1,14 @@ + +public class Auto implements Comparable { + String name; + int speed; + + + Auto(String name, int speed) { + this.name = name; + this.speed = speed; + } + public int compareTo(Auto o){ + return (o.speed-speed); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..1d5ec60a8 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,37 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + + ArrayList autoList = new ArrayList(); + + competitors(autoList); + Race.check(autoList); + + } + + public static void competitors(ArrayList autoList) { + Scanner scanner = new Scanner(System.in); + System.out.println("Объявляем участников гонки!"); + String name; + int speed = 0; + for(int i = 0; i < 3; i++){ + System.out.println("Введите название автомобиля No" + (i+1)); + name = scanner.next(); + System.out.println("и его скорость (от 1 до 250)"); + speed = scanner.nextInt(); + while (speed <= 0 || speed> 250){ + System.out.println("Введите скорость еще раз, от 1 до 250"); + speed = scanner.nextInt(); + } + autoList.add(new Auto(name, speed)); + Race.isWinner(name, 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..671111010 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,39 @@ +import java.util.ArrayList; +import java.util.Collections; + +public class Race { + static String winner; + static int start = 0; + static int winnerDistance = 0; + + public static int distance24h(int speed) { + return speed * 24; + } + + public static void isWinner(String name, int distance) { + if (distance> start) { + start = distance; + winner = name; + winnerDistance = distance24h(distance); + } + } + + public static void check (ArrayList checkList) { + int count = 0; + Collections.sort(checkList); + for (int i = 0; i < checkList.size()-1; i++) { + if (checkList.get(i).speed == checkList.get(i+1).speed){ + count++; + } + } + if (count == (checkList.size()-1)){ + System.out.println("Все финишировали одновременно!"); + } else if (count == 1) { + System.out.println("Две машины: \'"+checkList.get(0).name+"\' и \'"+ checkList.get(1).name+"\' пришли одновременно, проехав "+distance24h(checkList.get(0).speed)); + } else if (count == 0) { + System.out.println("Победитель финишировал на машине: \'"+checkList.get(0).name+"\', проехав "+distance24h(checkList.get(0).speed)); + } else { + System.out.println("Несколько участников пришли к финишу одновременно!"); + } + } +} From be17d522c76b0e7a75b8de1d538bc2e79d44b3cb Mon Sep 17 00:00:00 2001 From: LampJuice Date: Thu, 9 Jan 2025 18:58:44 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=BC=D0=B0=D1=88=D0=BD=D0=B5?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=201.=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5,=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=B0=D1=82=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B=D0=B9=20=D0=B2=D0=B2?= =?UTF-8?q?=D0=BE=D0=B4=20=D1=81=D0=BA=D0=BE=D1=80=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 37 ++++++++++++++++++++++++++----------- src/main/java/Race.java | 4 ++-- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 1d5ec60a8..88f2aea9d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -4,34 +4,49 @@ public class Main { public static void main(String[] args) { - ArrayList autoList = new ArrayList(); competitors(autoList); Race.check(autoList); - } public static void competitors(ArrayList autoList) { Scanner scanner = new Scanner(System.in); System.out.println("Объявляем участников гонки!"); String name; + int speed = 0; for(int i = 0; i < 3; i++){ System.out.println("Введите название автомобиля No" + (i+1)); name = scanner.next(); - System.out.println("и его скорость (от 1 до 250)"); - speed = scanner.nextInt(); - while (speed <= 0 || speed> 250){ - System.out.println("Введите скорость еще раз, от 1 до 250"); - speed = scanner.nextInt(); - } + speed = getValidSpeed(); autoList.add(new Auto(name, speed)); Race.isWinner(name, speed); } - } - - + public static int getValidSpeed () { + String spStr; + int speed = 0; + boolean flag = true; + + while (flag) { + System.out.println("Введите скорость"); + Scanner scanner = new Scanner(System.in); + spStr = scanner.next(); + try { + speed = Integer.parseInt(spStr); + if (speed <=0 || speed> 250){ + flag = true; + System.out.println("Ошибка, только целые числа от 0 да 250, еще раз..."); + }else { + flag = false; + } + } catch (NumberFormatException e) { + System.out.println("Ошибка, только целые числа от 0 да 250, еще раз..."); + flag = true; + } + } + return speed; + } } \ No newline at end of file diff --git a/src/main/java/Race.java b/src/main/java/Race.java index 671111010..c42270014 100644 --- a/src/main/java/Race.java +++ b/src/main/java/Race.java @@ -29,9 +29,9 @@ public static void check (ArrayList checkList) { if (count == (checkList.size()-1)){ System.out.println("Все финишировали одновременно!"); } else if (count == 1) { - System.out.println("Две машины: \'"+checkList.get(0).name+"\' и \'"+ checkList.get(1).name+"\' пришли одновременно, проехав "+distance24h(checkList.get(0).speed)); + System.out.println("Две машины: \'"+checkList.get(0).name+"\' и \'"+ checkList.get(1).name+"\' пришли одновременно, проехав "+distance24h(checkList.get(0).speed)+ " километров за 24 часа."); } else if (count == 0) { - System.out.println("Победитель финишировал на машине: \'"+checkList.get(0).name+"\', проехав "+distance24h(checkList.get(0).speed)); + System.out.println("Победитель финишировал на машине: \'"+checkList.get(0).name+"\', проехав "+distance24h(checkList.get(0).speed) + " километров за 24 часа."); } else { System.out.println("Несколько участников пришли к финишу одновременно!"); }

AltStyle によって変換されたページ (->オリジナル) /