From f0a9ed13adae1006f02185f2fcbf7a3571b761f3 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Mon, 30 Sep 2024 18:45:07 +0300 Subject: [PATCH 01/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 + students/23K9006/23K9006-p01/pom.xml | 13 +++++++++++++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++++++++++++ students/23K9006/README.adoc | 2 ++ students/23K9006/pom.xml | 18 ++++++++++++++++++ 5 files changed, 46 insertions(+) create mode 100644 students/23K9006/23K9006-p01/pom.xml create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K9006/README.adoc create mode 100644 students/23K9006/pom.xml diff --git a/pom.xml b/pom.xml index 2407437b0..65c6497b8 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,7 @@ students/0000001 + students/23K9006 students/23K0093 students/23K0690 students/23K0120 diff --git a/students/23K9006/23K9006-p01/pom.xml b/students/23K9006/23K9006-p01/pom.xml new file mode 100644 index 000000000..3a03cecb7 --- /dev/null +++ b/students/23K9006/23K9006-p01/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p01 + Массивы + diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K9006/README.adoc b/students/23K9006/README.adoc new file mode 100644 index 000000000..3136b1a87 --- /dev/null +++ b/students/23K9006/README.adoc @@ -0,0 +1,2 @@ +Плешаков Илья +КАБО-01-23 \ No newline at end of file diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml new file mode 100644 index 000000000..a3228508a --- /dev/null +++ b/students/23K9006/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + algorithms-and-data-structures + ru.mirea.practice + 2024.1 + ../../pom.xml + + 23K9006 + pom + Практическая работа Ильи + + + 23K9006-p01 + + From b92f53a0c4ec8da6457abe9751a41bc5dd123a64 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Mon, 30 Sep 2024 18:45:07 +0300 Subject: [PATCH 02/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 + students/23K9006/23K9006-p01/pom.xml | 13 +++++++++++++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++++++++++++ students/23K9006/README.adoc | 2 ++ students/23K9006/pom.xml | 18 ++++++++++++++++++ 5 files changed, 46 insertions(+) create mode 100644 students/23K9006/23K9006-p01/pom.xml create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K9006/README.adoc create mode 100644 students/23K9006/pom.xml diff --git a/pom.xml b/pom.xml index 2407437b0..65c6497b8 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,7 @@ students/0000001 + students/23K9006 students/23K0093 students/23K0690 students/23K0120 diff --git a/students/23K9006/23K9006-p01/pom.xml b/students/23K9006/23K9006-p01/pom.xml new file mode 100644 index 000000000..3a03cecb7 --- /dev/null +++ b/students/23K9006/23K9006-p01/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p01 + Массивы + diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K9006/README.adoc b/students/23K9006/README.adoc new file mode 100644 index 000000000..3136b1a87 --- /dev/null +++ b/students/23K9006/README.adoc @@ -0,0 +1,2 @@ +Плешаков Илья +КАБО-01-23 \ No newline at end of file diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml new file mode 100644 index 000000000..a3228508a --- /dev/null +++ b/students/23K9006/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + algorithms-and-data-structures + ru.mirea.practice + 2024.1 + ../../pom.xml + + 23K9006 + pom + Практическая работа Ильи + + + 23K9006-p01 + + From 6662b43d533ba373616d10b439e10f929784d799 Mon Sep 17 00:00:00 2001 From: busindor2018 <65424611+busindor2018@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:02:47 +0300 Subject: [PATCH 03/15] =?UTF-8?q?Revert=20"=D0=9B=D0=B0=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=961"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - students/23K9006/23K9006-p01/pom.xml | 13 ------------- .../java/ru/mirea/practice/s0000001/Main.java | 12 ------------ students/23K9006/README.adoc | 2 -- students/23K9006/pom.xml | 18 ------------------ 5 files changed, 46 deletions(-) delete mode 100644 students/23K9006/23K9006-p01/pom.xml delete mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java delete mode 100644 students/23K9006/README.adoc delete mode 100644 students/23K9006/pom.xml diff --git a/pom.xml b/pom.xml index de68615b6..a7cb5cec9 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,6 @@ students/0000001 - students/23K9006 students/23K0093 students/23K0690 students/23K0120 diff --git a/students/23K9006/23K9006-p01/pom.xml b/students/23K9006/23K9006-p01/pom.xml deleted file mode 100644 index 3a03cecb7..000000000 --- a/students/23K9006/23K9006-p01/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p01 - Массивы - diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java deleted file mode 100644 index b89e47de8..000000000 --- a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Main.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.mirea.practice.s0000001; - -public final class Main { - - private Main() { - - } - - public static void main(String[] args) { - System.out.println("первая практическая работа!"); - } -} diff --git a/students/23K9006/README.adoc b/students/23K9006/README.adoc deleted file mode 100644 index 3136b1a87..000000000 --- a/students/23K9006/README.adoc +++ /dev/null @@ -1,2 +0,0 @@ -Плешаков Илья -КАБО-01-23 \ No newline at end of file diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml deleted file mode 100644 index a3228508a..000000000 --- a/students/23K9006/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - algorithms-and-data-structures - ru.mirea.practice - 2024.1 - ../../pom.xml - - 23K9006 - pom - Практическая работа Ильи - - - 23K9006-p01 - - From 2638b344d24b3d754cb1decc4c084c97fe08fd96 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Mon, 30 Sep 2024 23:42:55 +0300 Subject: [PATCH 04/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 + students/23K9006/23K9006-p01/pom.xml | 13 +++++++ students/23K9006/23K9006-p02/pom.xml | 13 +++++++ students/23K9006/23K9006-p03/pom.xml | 13 +++++++ .../ru/mirea/practice/s0000001/First.java | 39 +++++++++++++++++++ .../java/ru/mirea/practice/s0000001/Four.java | 35 +++++++++++++++++ .../ru/mirea/practice/s0000001/Third.java | 34 ++++++++++++++++ students/23K9006/23K9006-p04/pom.xml | 13 +++++++ .../ru/mirea/practice/s0000001/Atelier.java | 34 ++++++++++++++++ .../ru/mirea/practice/s0000001/Clothes.java | 24 ++++++++++++ .../java/ru/mirea/practice/s0000001/Main.java | 36 +++++++++++++++++ .../mirea/practice/s0000001/MenClothing.java | 3 ++ .../ru/mirea/practice/s0000001/Pants.java | 15 +++++++ .../ru/mirea/practice/s0000001/Season.java | 26 +++++++++++++ .../java/ru/mirea/practice/s0000001/Size.java | 27 +++++++++++++ .../ru/mirea/practice/s0000001/Skirt.java | 10 +++++ .../ru/mirea/practice/s0000001/TShirt.java | 15 +++++++ .../java/ru/mirea/practice/s0000001/Tie.java | 10 +++++ .../practice/s0000001/WomenClothing.java | 4 ++ 19 files changed, 365 insertions(+) create mode 100644 students/23K9006/23K9006-p01/pom.xml create mode 100644 students/23K9006/23K9006-p02/pom.xml create mode 100644 students/23K9006/23K9006-p03/pom.xml create mode 100644 students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java create mode 100644 students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java create mode 100644 students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java create mode 100644 students/23K9006/23K9006-p04/pom.xml create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java create mode 100644 students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java diff --git a/pom.xml b/pom.xml index a7cb5cec9..de68615b6 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,7 @@ students/0000001 + students/23K9006 students/23K0093 students/23K0690 students/23K0120 diff --git a/students/23K9006/23K9006-p01/pom.xml b/students/23K9006/23K9006-p01/pom.xml new file mode 100644 index 000000000..3a03cecb7 --- /dev/null +++ b/students/23K9006/23K9006-p01/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p01 + Массивы + diff --git a/students/23K9006/23K9006-p02/pom.xml b/students/23K9006/23K9006-p02/pom.xml new file mode 100644 index 000000000..58f813a3b --- /dev/null +++ b/students/23K9006/23K9006-p02/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p02 + Второе задание + diff --git a/students/23K9006/23K9006-p03/pom.xml b/students/23K9006/23K9006-p03/pom.xml new file mode 100644 index 000000000..c144fba20 --- /dev/null +++ b/students/23K9006/23K9006-p03/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p03 + Третье задание + diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java new file mode 100644 index 000000000..d0bf7949c --- /dev/null +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java @@ -0,0 +1,39 @@ +import java.util.Arrays; +import java.util.Random; + +public class First { + + public static void main(String[] args) { + int arraySize = 10; + + double[] mathRandomArray = new double[arraySize]; + + for (int i = 0; i < arraySize; i++) { +mathRandomArray[i] = Math.random(); + } + + System.out.println("Массив, сгенерированный с использованием Math.random():"); + System.out.println(Arrays.toString(mathRandomArray)); + + Arrays.sort(mathRandomArray); + + System.out.println("Отсортированный массив:"); + System.out.println(Arrays.toString(mathRandomArray)); + + double[] randomArray = new double[arraySize]; + Random random = new Random(); + + for (int i = 0; i < arraySize; i++) { +randomArray[i] = random.nextDouble(); + } + + System.out.println("\nМассив, сгенерированный с использованием Random:"); + System.out.println(Arrays.toString(randomArray)); + + Arrays.sort(randomArray); + + System.out.println("Отсортированный массив:"); + System.out.println(Arrays.toString(randomArray)); + } +} + diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java new file mode 100644 index 000000000..529ca4493 --- /dev/null +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java @@ -0,0 +1,35 @@ +public class Four { + + public static void main(String[] args) { + + Double doubleObject1 = Double.valueOf(3.14); + Double doubleObject2 = Double.valueOf("2.718"); + + System.out.println("Значение doubleObject1: " + doubleObject1); + System.out.println("Значение doubleObject2: " + doubleObject2); + + String stringValue = "123.456"; + double primitiveDouble = Double.parseDouble(stringValue); + System.out.println("Преобразованное значение из строки: " + primitiveDouble); + + double primitiveDoubleValue = doubleObject1.doubleValue(); + float primitiveFloatValue = doubleObject1.floatValue(); + int primitiveIntValue = doubleObject1.intValue(); + long primitiveLongValue = doubleObject1.longValue(); + short primitiveShortValue = doubleObject1.shortValue(); + byte primitiveByteValue = doubleObject1.byteValue(); + + System.out.println("Преобразование к типу double: " + primitiveDoubleValue); + System.out.println("Преобразование к типу float: " + primitiveFloatValue); + System.out.println("Преобразование к типу int: " + primitiveIntValue); + System.out.println("Преобразование к типу long: " + primitiveLongValue); + System.out.println("Преобразование к типу short: " + primitiveShortValue); + System.out.println("Преобразование к типу byte: " + primitiveByteValue); + + System.out.println("Значение doubleObject1 (из задания 1): " + doubleObject1); + + String d = Double.toString(3.14); + System.out.println("Преобразованный литерал double к строке: " + d); + } +} + diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java new file mode 100644 index 000000000..27c1222df --- /dev/null +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java @@ -0,0 +1,34 @@ +import java.util.Random; + +public class Third{ + + public static void main(String[] args) { + int[] numbers = new int[4]; + Random random = new Random(); + + for (int i = 0; i < numbers.length; i++) { +numbers[i] = 10 + random.nextInt(90); + } + + System.out.print("Массив: "); + for (int num : numbers) { + System.out.print(num + " "); + } + System.out.println(); + + boolean isIncreasing = true; + for (int i = 1; i < numbers.length; i++) { + if (numbers[i] <= numbers[i - 1]) { + isIncreasing = false; + break; + } + } + + if (isIncreasing) { + System.out.println("Массив является строго возрастающей последовательностью."); + } else { + System.out.println("Массив не является строго возрастающей последовательностью."); + } + } +} + diff --git a/students/23K9006/23K9006-p04/pom.xml b/students/23K9006/23K9006-p04/pom.xml new file mode 100644 index 000000000..b287c3d76 --- /dev/null +++ b/students/23K9006/23K9006-p04/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p04 + Четвертое задание + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java new file mode 100644 index 000000000..7e4498237 --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java @@ -0,0 +1,34 @@ +public class Atelier { + + public void dressWomen(Clothes[] clothes) { + System.out.println("Женская одежда:"); + for (Clothes item : clothes) { + if (item instanceof WomenClothing) { + ((WomenClothing) item).dressWomen(); + } + } + } + + public void dressMan(Clothes[] clothes) { + System.out.println("Мужская одежда:"); + for (Clothes item : clothes) { + if (item instanceof MenClothing) { + ((MenClothing) item).dressMan(); + } + } + } + + public static void main(String[] args) { + Clothes[] clothesArray = { + new TShirt(Size.M, 25.99, "красный"), + new Pants(Size.L, 45.99, "синий"), + new Skirt(Size.S, 29.99, "черный"), + new Tie(Size.M, 15.99, "зеленый") + }; + + Atelier atelier = new Atelier(); + atelier.dressWomen(clothesArray); + atelier.dressMan(clothesArray); + } +} + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java new file mode 100644 index 000000000..cf0309df9 --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java @@ -0,0 +1,24 @@ +public abstract class Clothes { + private Size size; + private double price; + private String color; + + public Clothes(Size size, double price, String color) { + this.size = size; + this.price = price; + this.color = color; + } + + public Size getSize() { + return size; + } + + public double getPrice() { + return price; + } + + public String getColor() { + return color; + } +} + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..88878836f --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,36 @@ +public class Main { + + public static void main(String[] args) { + Season myFavoriteSeason = Season.SUMMER; + System.out.println("Мое любимое время года: " + myFavoriteSeason); + System.out.println("Средняя температура: " + myFavoriteSeason.getAverageTemperature()); + System.out.println("Описание: " + myFavoriteSeason.getDescription()); + + printSeasonDescription(myFavoriteSeason); + + for (Season season : Season.values()) { + System.out.println(season + " имеет среднюю температуру " + season.getAverageTemperature() + + " градусов. " + season.getDescription()); + } + } + + public static void printSeasonDescription(Season season) { + switch (season) { + case WINTER: + System.out.println("Я люблю зиму"); + break; + case SPRING: + System.out.println("Я люблю весну"); + break; + case SUMMER: + System.out.println("Я люблю лето"); + break; + case FALL: + System.out.println("Я люблю осень"); + break; + default: + System.out.println("Неизвестное время года"); + } + } +} + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java new file mode 100644 index 000000000..82110d66b --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java @@ -0,0 +1,3 @@ +public interface MenClothing { + void dressMan(); +} diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java new file mode 100644 index 000000000..36f16e6ad --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java @@ -0,0 +1,15 @@ +public class Pants extends Clothes implements MenClothing, WomenClothing { + public Pants(Size size, double price, String color) { + super(size, price, color); + } + + @Override + public void dressMan() { + System.out.println("Штаны для мужчин: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } + + @Override + public void dressWomen() { + System.out.println("Штаны для женщин: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } +} diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java new file mode 100644 index 000000000..5351c052d --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java @@ -0,0 +1,26 @@ +public enum Season { + WINTER(-5), + SPRING(10), + SUMMER(25) { + @Override + public String getDescription() { + return "Теплое время года"; + } + }, + FALL(8); + + private final int averageTemperature; + + Season(int averageTemperature) { + this.averageTemperature = averageTemperature; + } + + public int getAverageTemperature() { + return averageTemperature; + } + + public String getDescription() { + return "Холодное время года"; + } +} + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java new file mode 100644 index 000000000..60834358e --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java @@ -0,0 +1,27 @@ +public enum Size { + XXS(32) { + @Override + public String getDescription() { + return "Детский размер"; + } + }, + XS(34), + S(36), + M(38), + L(40); + + private final int euroSize; + + Size(int euroSize) { + this.euroSize = euroSize; + } + + public int getEuroSize() { + return euroSize; + } + + public String getDescription() { + return "Взрослый размер"; + } +} + diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java new file mode 100644 index 000000000..9a9e66e0e --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java @@ -0,0 +1,10 @@ +public class Skirt extends Clothes implements WomenClothing { + public Skirt(Size size, double price, String color) { + super(size, price, color); + } + + @Override + public void dressWomen() { + System.out.println("Юбка: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } +} diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java new file mode 100644 index 000000000..e1bb01681 --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java @@ -0,0 +1,15 @@ +public class TShirt extends Clothes implements MenClothing, WomenClothing { + public TShirt(Size size, double price, String color) { + super(size, price, color); + } + + @Override + public void dressMan() { + System.out.println("Футболка для мужчин: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } + + @Override + public void dressWomen() { + System.out.println("Футболка для женщин: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } +} \ No newline at end of file diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java new file mode 100644 index 000000000..06b5c13c0 --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java @@ -0,0 +1,10 @@ +public class Tie extends Clothes implements MenClothing { + public Tie(Size size, double price, String color) { + super(size, price, color); + } + + @Override + public void dressMan() { + System.out.println("Галстук: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); + } +} diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java new file mode 100644 index 000000000..604983074 --- /dev/null +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java @@ -0,0 +1,4 @@ +public interface WomenClothing { + void dressWomen(); +} + From 5d53e4dad941e5fbda942fb42ba9d6a357f98da0 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Mon, 30 Sep 2024 23:44:33 +0300 Subject: [PATCH 05/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/mirea/practice/s0000001/First.java | 14 +++++ .../java/ru/mirea/practice/s0000001/Four.java | 47 ++++++++++++++ .../ru/mirea/practice/s0000001/Second.java | 18 ++++++ .../ru/mirea/practice/s0000001/Third.java | 18 ++++++ .../ru/mirea/practice/s0000001/1/Author.java | 37 +++++++++++ .../ru/mirea/practice/s0000001/1/Circle.java | 41 +++++++++++++ .../mirea/practice/s0000001/1/Computer.java | 31 ++++++++++ .../ru/mirea/practice/s0000001/1/Point.java | 25 ++++++++ .../ru/mirea/practice/s0000001/1/Shop.java | 58 ++++++++++++++++++ .../practice/s0000001/1/ShopInterface.java | 8 +++ .../mirea/practice/s0000001/1/TestAuthor.java | 16 +++++ .../mirea/practice/s0000001/1/TestShop.java | 61 +++++++++++++++++++ .../ru/mirea/practice/s0000001/1/Tester.java | 43 +++++++++++++ students/23K9006/A.java | 0 students/23K9006/README.adoc | 1 + students/23K9006/pom.xml | 19 ++++++ 16 files changed, 437 insertions(+) create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java create mode 100644 students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java create mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java create mode 100644 students/23K9006/A.java create mode 100644 students/23K9006/README.adoc create mode 100644 students/23K9006/pom.xml diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java new file mode 100644 index 000000000..863102891 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s0000001; + +public class First { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + int sum = 0; + for (int i = 0; i < numbers.length; i++) { + sum += numbers[i]; + } + double average = (double) sum / numbers.length; + System.out.println("Elements sum: " + sum); + System.out.println("Average: " + average); + } +} diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java new file mode 100644 index 000000000..93f161520 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java @@ -0,0 +1,47 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public class Four { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + + System.out.print("Введите количество элементов в массиве: "); + int n = scanner.nextInt(); + + int[] numbers = new int[n]; + + System.out.println("Введите элементы массива:"); + for (int i = 0; i < n; i++) { + System.out.print("Элемент " + (i + 1) + ": "); + numbers[i] = scanner.nextInt(); + } + + int sum = 0; + int max = numbers[0]; + int min = numbers[0]; + + int i = 0; + do { + sum += numbers[i]; + i++; + } while (i < n); + + i = 1; + while (i < n) { + if (numbers[i] > max) { + max = numbers[i]; + } + if (numbers[i] < min) { + min = numbers[i]; + } + i++; + } + + System.out.println("Сумма элементов массива: " + sum); + System.out.println("Максимальный элемент: " + max); + System.out.println("Минимальный элемент: " + min); + } +} + + \ No newline at end of file diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java new file mode 100644 index 000000000..a06faf8e2 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public class Second { + public static void main(String[] args) { + int num; + Scanner sc = new Scanner(System.in); + System.out.print("Number of elems: "); + num = sc.nextInt(); + int[] numbers = new int[num]; + System.out.println(num); + for (int i = 0; i < num; i++) { + numbers[i] = sc.nextInt(); + } + System.out.println(numbers); + } +} diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java new file mode 100644 index 000000000..be7db4605 --- /dev/null +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001; + +public class Third { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + + int sum = 0; + for (int i = 0; i < numbers.length; i++) { + sum += numbers[i]; + } + + double average = (double) sum / numbers.length; + + System.out.println("Сумма элементов массива: " + sum); + System.out.println("Среднее арифметическое: " + average); + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java new file mode 100644 index 000000000..7f2c9c055 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java @@ -0,0 +1,37 @@ +package ru.mirea.practice.s0000001 + +public class Author { + private String name; + private String email; + private char gender; + + public Author(String name, String email, char gender) { + this.name = name; + this.email = email; + this.gender = gender; + } + + public String getName() { + return name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public char getGender() { + return gender; + } + + @Override + public String toString() { + return "Author[name=" + name + ", email=" + email + ", gender=" + gender + "]"; + } +} + + + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java new file mode 100644 index 000000000..5f15e0d57 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java @@ -0,0 +1,41 @@ +package ru.mirea.practice.s0000001 + +public class Circle { + private Point center; + private double radius; + + public Circle(Point center, double radius) { + this.center = center; + this.radius = radius; + } + + public Point getCenter() { + return center; + } + + public double getRadius() { + return radius; + } + + public void setCenter(Point center) { + this.center = center; + } + + public void setRadius(double radius) { + this.radius = radius; + } + + public double getArea() { + return Math.PI * radius * radius; + } + + public double getCircumference() { + return 2 * Math.PI * radius; + } + + @Override + public String toString() { + return "Circle[center=" + center.toString() + ", radius=" + radius + "]"; + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java new file mode 100644 index 000000000..6d2c030b5 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s0000001 + +public class Computer { + private String brand; + private String model; + private double price; + + public Computer(String brand, String model, double price) { + this.brand = brand; + this.model = model; + this.price = price; + } + + public String getBrand() { + return brand; + } + + public String getModel() { + return model; + } + + public double getPrice() { + return price; + } + + @Override + public String toString() { + return "Computer[brand=" + brand + ", model=" + model + ", price=" + price + "]"; + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java new file mode 100644 index 000000000..7cc4e2006 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001 + +public class Point { + private double x; + private double y; + + public Point(double x, double y) { + this.x = x; + this.y = y; + } + + public double getX() { + return x; + } + + public double getY() { + return y; + } + + @Override + public String toString() { + return "Point(" + "x=" + x + ", y=" + y + ')'; + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java new file mode 100644 index 000000000..a60265526 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java @@ -0,0 +1,58 @@ +package ru.mirea.practice.s0000001 + +import java.util.ArrayList; +import java.util.Scanner; + +public class Shop implements ShopInterface { + private ArrayList computers; + + public Shop() { + computers = new ArrayList<>(); + } + + @Override + public void addComputer(Computer computer) { + computers.add(computer); + System.out.println("Компьютер добавлен: " + computer); + } + + @Override + public void removeComputer(String model) { + Computer toRemove = null; + for (Computer comp : computers) { + if (comp.getModel().equalsIgnoreCase(model)) { + toRemove = comp; + break; + } + } + if (toRemove != null) { + computers.remove(toRemove); + System.out.println("Компьютер удален: " + toRemove); + } else { + System.out.println("Компьютер с моделью \"" + model + "\" не найден."); + } + } + + @Override + public Computer findComputer(String model) { + for (Computer comp : computers) { + if (comp.getModel().equalsIgnoreCase(model)) { + return comp; + } + } + System.out.println("Компьютер с моделью \"" + model + "\" не найден."); + return null; + } + + public void displayComputers() { + if (computers.isEmpty()) { + System.out.println("Магазин пуст."); + } else { + System.out.println("Список компьютеров в магазине:"); + for (Computer comp : computers) { + System.out.println(comp); + } + } + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java new file mode 100644 index 000000000..96d63cb3f --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s0000001 + +public interface ShopInterface { + void addComputer(Computer computer); + void removeComputer(String model); + Computer findComputer(String model); +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java new file mode 100644 index 000000000..1d109d2fd --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java @@ -0,0 +1,16 @@ +package ru.mirea.practice.s0000001 + +public class TestAuthor { + public static void main(String[] args) { + Author author = new Author("John Doe", "john.doe@example.com", 'M'); + + System.out.println("Имя автора: " + author.getName()); + System.out.println("Email автора: " + author.getEmail()); + System.out.println("Пол автора: " + author.getGender()); + + author.setEmail("john.newemail@example.com"); + System.out.println("Новый email автора: " + author.getEmail()); + + System.out.println(author.toString()); + } +} diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java new file mode 100644 index 000000000..ea4e51b06 --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java @@ -0,0 +1,61 @@ +package ru.mirea.practice.s0000001 + +import java.util.Scanner; + +public class TestShop { + public static void main(String[] args) { + Shop shop = new Shop(); + Scanner scanner = new Scanner(System.in); + boolean running = true; + + while (running) { + System.out.println("\nМеню:"); + System.out.println("1. Добавить компьютер"); + System.out.println("2. Удалить компьютер"); + System.out.println("3. Найти компьютер"); + System.out.println("4. Показать все компьютеры"); + System.out.println("5. Выйти"); + System.out.print("Выберите действие: "); + int choice = scanner.nextInt(); +scanner.nextLine(); + + switch (choice) { + case 1: + System.out.print("Введите бренд: "); + String brand = scanner.nextLine(); + System.out.print("Введите модель: "); + String model = scanner.nextLine(); + System.out.print("Введите цену: "); + double price = scanner.nextDouble(); + Computer computer = new Computer(brand, model, price); + shop.addComputer(computer); + break; + case 2: + System.out.print("Введите модель компьютера для удаления: "); + model = scanner.nextLine(); + shop.removeComputer(model); + break; + case 3: + System.out.print("Введите модель компьютера для поиска: "); + model = scanner.nextLine(); + Computer foundComputer = shop.findComputer(model); + if (foundComputer != null) { + System.out.println("Найден компьютер: " + foundComputer); + } + break; + case 4: + shop.displayComputers(); + break; + case 5: + running = false; + break; + default: + System.out.println("Неверный выбор. Попробуйте снова."); + } + } + + scanner.close(); + System.out.println("Работа завершена."); + } +} + diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java new file mode 100644 index 000000000..e1e43d9aa --- /dev/null +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s0000001 + +public class Tester { + private Circle[] circles; + private int numberOfCircles; + + public Tester(int size) { + circles = new Circle[size]; + numberOfCircles = 0; + } + + public void addCircle(Circle circle) { + if (numberOfCircles < circles.length) { + circles[numberOfCircles] = circle; + numberOfCircles++; + } else { + System.out.println("Массив окружностей заполнен."); + } + } + + public int getNumberOfCircles() { + return numberOfCircles; + } + + public void printCircles() { + for (int i = 0; i < numberOfCircles; i++) { + System.out.println(circles[i]); + } + } + + public static void main(String[] args) { + Tester tester = new Tester(3); + + tester.addCircle(new Circle(new Point(0, 0), 5)); + tester.addCircle(new Circle(new Point(1, 1), 10)); + tester.addCircle(new Circle(new Point(2, 2), 7)); + + tester.printCircles(); + + System.out.println("Количество окружностей в массиве: " + tester.getNumberOfCircles()); + } +} + diff --git a/students/23K9006/A.java b/students/23K9006/A.java new file mode 100644 index 000000000..e69de29bb diff --git a/students/23K9006/README.adoc b/students/23K9006/README.adoc new file mode 100644 index 000000000..efad0af14 --- /dev/null +++ b/students/23K9006/README.adoc @@ -0,0 +1 @@ +== Пример оформления практических заданий \ No newline at end of file diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml new file mode 100644 index 000000000..c1ffbfc3a --- /dev/null +++ b/students/23K9006/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + algorithms-and-data-structures + ru.mirea.practice + 2024.1 + ../../pom.xml + + 23K9006 + pom + Практическая работа Пети + + + 23K9006-p01 + 23K9006-p02 + + From 975f7d13f418a93280b22b594a5814b47da057ee Mon Sep 17 00:00:00 2001 From: busindor2018 <65424611+busindor2018@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:47:02 +0300 Subject: [PATCH 06/15] README.adoc --- students/23K9006/README.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/students/23K9006/README.adoc b/students/23K9006/README.adoc index efad0af14..cc3fdff45 100644 --- a/students/23K9006/README.adoc +++ b/students/23K9006/README.adoc @@ -1 +1,2 @@ -== Пример оформления практических заданий \ No newline at end of file +Плешаков Илья +КАБО-01-23 From 8a45c3fa54f329b3adbc5f2d4b38244d2adcb923 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Tue, 1 Oct 2024 11:35:25 +0300 Subject: [PATCH 07/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/mirea/practice/s0000001/First.java | 7 +- .../java/ru/mirea/practice/s0000001/Four.java | 74 +++++++++---------- .../ru/mirea/practice/s0000001/Second.java | 23 +++--- .../ru/mirea/practice/s0000001/Third.java | 7 +- .../ru/mirea/practice/s0000001/1/Author.java | 5 +- .../ru/mirea/practice/s0000001/1/Circle.java | 41 ---------- .../mirea/practice/s0000001/1/Computer.java | 31 -------- .../ru/mirea/practice/s0000001/1/Point.java | 25 ------- .../ru/mirea/practice/s0000001/1/Shop.java | 58 --------------- .../practice/s0000001/1/ShopInterface.java | 8 -- .../mirea/practice/s0000001/1/TestAuthor.java | 4 +- .../mirea/practice/s0000001/1/TestShop.java | 61 --------------- .../ru/mirea/practice/s0000001/1/Tester.java | 43 ----------- .../ru/mirea/practice/s0000001/First.java | 9 ++- .../java/ru/mirea/practice/s0000001/Four.java | 5 +- .../ru/mirea/practice/s0000001/Third.java | 7 +- .../ru/mirea/practice/s0000001/Atelier.java | 3 +- .../ru/mirea/practice/s0000001/Clothes.java | 3 +- .../java/ru/mirea/practice/s0000001/Main.java | 10 ++- .../mirea/practice/s0000001/MenClothing.java | 2 + .../ru/mirea/practice/s0000001/Pants.java | 2 + .../ru/mirea/practice/s0000001/Season.java | 3 +- .../java/ru/mirea/practice/s0000001/Size.java | 3 +- .../ru/mirea/practice/s0000001/Skirt.java | 2 + .../ru/mirea/practice/s0000001/TShirt.java | 4 +- .../java/ru/mirea/practice/s0000001/Tie.java | 2 + .../practice/s0000001/WomenClothing.java | 3 +- students/23K9006/pom.xml | 2 + 28 files changed, 103 insertions(+), 344 deletions(-) delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java delete mode 100644 students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java index 863102891..2d5edfb89 100644 --- a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java @@ -1,12 +1,13 @@ package ru.mirea.practice.s0000001; -public class First { +public abstract class First { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int sum = 0; - for (int i = 0; i < numbers.length; i++) { - sum += numbers[i]; + for (int number : numbers) { + sum += number; } + double average = (double) sum / numbers.length; System.out.println("Elements sum: " + sum); System.out.println("Average: " + average); diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java index 93f161520..7f342941a 100644 --- a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Four.java @@ -2,46 +2,46 @@ import java.util.Scanner; -public class Four { +public abstract class Four { public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - System.out.print("Введите количество элементов в массиве: "); - int n = scanner.nextInt(); - - int[] numbers = new int[n]; - - System.out.println("Введите элементы массива:"); - for (int i = 0; i < n; i++) { - System.out.print("Элемент " + (i + 1) + ": "); - numbers[i] = scanner.nextInt(); - } - - int sum = 0; - int max = numbers[0]; - int min = numbers[0]; - - int i = 0; - do { - sum += numbers[i]; - i++; - } while (i < n); - - i = 1; - while (i < n) { - if (numbers[i] > max) { - max = numbers[i]; + int number; + int[] numbers; + + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите количество элементов в массиве: "); + number = scanner.nextInt(); + numbers = new int[number]; + + System.out.println("Введите элементы массива:"); + for (int i = 0; i < number; i++) { + System.out.print("Элемент " + (i + 1) + ": "); + numbers[i] = scanner.nextInt(); } - if (numbers[i] < min) { - min = numbers[i]; + + int sum = 0; + int max = numbers[0]; + int min = numbers[0]; + + int i = 0; + do { + sum += numbers[i]; + i++; + } while (i < number); + + i = 1; + while (i < number) { + if (numbers[i] > max) { + max = numbers[i]; + } + if (numbers[i] < min) { + min = numbers[i]; + } + i++; } - i++; - } - System.out.println("Сумма элементов массива: " + sum); - System.out.println("Максимальный элемент: " + max); - System.out.println("Минимальный элемент: " + min); + System.out.println("Сумма элементов массива: " + sum); + System.out.println("Максимальный элемент: " + max); + System.out.println("Минимальный элемент: " + min); + } } } - - \ No newline at end of file diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java index a06faf8e2..01d0bb3ef 100644 --- a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java @@ -2,17 +2,22 @@ import java.util.Scanner; -public class Second { +public abstract class Second { public static void main(String[] args) { int num; - Scanner sc = new Scanner(System.in); - System.out.print("Number of elems: "); - num = sc.nextInt(); - int[] numbers = new int[num]; - System.out.println(num); - for (int i = 0; i < num; i++) { - numbers[i] = sc.nextInt(); + + try (Scanner sc = new Scanner(System.in)) { + System.out.print("Number of elems: "); + num = sc.nextInt(); + int[] numbers = new int[num]; + System.out.println(num); + for (int i = 0; i < num; i++) { + numbers[i] = sc.nextInt(); + } + + for (int number : numbers) { + System.out.print(number + " "); + } } - System.out.println(numbers); } } diff --git a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java index be7db4605..6d002da15 100644 --- a/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java +++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java @@ -1,14 +1,15 @@ package ru.mirea.practice.s0000001; -public class Third { +public abstract class Third { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int sum = 0; - for (int i = 0; i < numbers.length; i++) { - sum += numbers[i]; + for (int number : numbers) { + sum += number; } + double average = (double) sum / numbers.length; System.out.println("Сумма элементов массива: " + sum); diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java index 7f2c9c055..f0398c898 100644 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java @@ -1,4 +1,4 @@ -package ru.mirea.practice.s0000001 +package ru.mirea.practice.s0000001; public class Author { private String name; @@ -32,6 +32,3 @@ public String toString() { return "Author[name=" + name + ", email=" + email + ", gender=" + gender + "]"; } } - - - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java deleted file mode 100644 index 5f15e0d57..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Circle.java +++ /dev/null @@ -1,41 +0,0 @@ -package ru.mirea.practice.s0000001 - -public class Circle { - private Point center; - private double radius; - - public Circle(Point center, double radius) { - this.center = center; - this.radius = radius; - } - - public Point getCenter() { - return center; - } - - public double getRadius() { - return radius; - } - - public void setCenter(Point center) { - this.center = center; - } - - public void setRadius(double radius) { - this.radius = radius; - } - - public double getArea() { - return Math.PI * radius * radius; - } - - public double getCircumference() { - return 2 * Math.PI * radius; - } - - @Override - public String toString() { - return "Circle[center=" + center.toString() + ", radius=" + radius + "]"; - } -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java deleted file mode 100644 index 6d2c030b5..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Computer.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.mirea.practice.s0000001 - -public class Computer { - private String brand; - private String model; - private double price; - - public Computer(String brand, String model, double price) { - this.brand = brand; - this.model = model; - this.price = price; - } - - public String getBrand() { - return brand; - } - - public String getModel() { - return model; - } - - public double getPrice() { - return price; - } - - @Override - public String toString() { - return "Computer[brand=" + brand + ", model=" + model + ", price=" + price + "]"; - } -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java deleted file mode 100644 index 7cc4e2006..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Point.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mirea.practice.s0000001 - -public class Point { - private double x; - private double y; - - public Point(double x, double y) { - this.x = x; - this.y = y; - } - - public double getX() { - return x; - } - - public double getY() { - return y; - } - - @Override - public String toString() { - return "Point(" + "x=" + x + ", y=" + y + ')'; - } -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java deleted file mode 100644 index a60265526..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Shop.java +++ /dev/null @@ -1,58 +0,0 @@ -package ru.mirea.practice.s0000001 - -import java.util.ArrayList; -import java.util.Scanner; - -public class Shop implements ShopInterface { - private ArrayList computers; - - public Shop() { - computers = new ArrayList<>(); - } - - @Override - public void addComputer(Computer computer) { - computers.add(computer); - System.out.println("Компьютер добавлен: " + computer); - } - - @Override - public void removeComputer(String model) { - Computer toRemove = null; - for (Computer comp : computers) { - if (comp.getModel().equalsIgnoreCase(model)) { - toRemove = comp; - break; - } - } - if (toRemove != null) { - computers.remove(toRemove); - System.out.println("Компьютер удален: " + toRemove); - } else { - System.out.println("Компьютер с моделью \"" + model + "\" не найден."); - } - } - - @Override - public Computer findComputer(String model) { - for (Computer comp : computers) { - if (comp.getModel().equalsIgnoreCase(model)) { - return comp; - } - } - System.out.println("Компьютер с моделью \"" + model + "\" не найден."); - return null; - } - - public void displayComputers() { - if (computers.isEmpty()) { - System.out.println("Магазин пуст."); - } else { - System.out.println("Список компьютеров в магазине:"); - for (Computer comp : computers) { - System.out.println(comp); - } - } - } -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java deleted file mode 100644 index 96d63cb3f..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/ShopInterface.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.mirea.practice.s0000001 - -public interface ShopInterface { - void addComputer(Computer computer); - void removeComputer(String model); - Computer findComputer(String model); -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java index 1d109d2fd..9dc0953cf 100644 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java +++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java @@ -1,6 +1,6 @@ -package ru.mirea.practice.s0000001 +package ru.mirea.practice.s0000001; -public class TestAuthor { +public abstract class TestAuthor { public static void main(String[] args) { Author author = new Author("John Doe", "john.doe@example.com", 'M'); diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java deleted file mode 100644 index ea4e51b06..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestShop.java +++ /dev/null @@ -1,61 +0,0 @@ -package ru.mirea.practice.s0000001 - -import java.util.Scanner; - -public class TestShop { - public static void main(String[] args) { - Shop shop = new Shop(); - Scanner scanner = new Scanner(System.in); - boolean running = true; - - while (running) { - System.out.println("\nМеню:"); - System.out.println("1. Добавить компьютер"); - System.out.println("2. Удалить компьютер"); - System.out.println("3. Найти компьютер"); - System.out.println("4. Показать все компьютеры"); - System.out.println("5. Выйти"); - System.out.print("Выберите действие: "); - int choice = scanner.nextInt(); -scanner.nextLine(); - - switch (choice) { - case 1: - System.out.print("Введите бренд: "); - String brand = scanner.nextLine(); - System.out.print("Введите модель: "); - String model = scanner.nextLine(); - System.out.print("Введите цену: "); - double price = scanner.nextDouble(); - Computer computer = new Computer(brand, model, price); - shop.addComputer(computer); - break; - case 2: - System.out.print("Введите модель компьютера для удаления: "); - model = scanner.nextLine(); - shop.removeComputer(model); - break; - case 3: - System.out.print("Введите модель компьютера для поиска: "); - model = scanner.nextLine(); - Computer foundComputer = shop.findComputer(model); - if (foundComputer != null) { - System.out.println("Найден компьютер: " + foundComputer); - } - break; - case 4: - shop.displayComputers(); - break; - case 5: - running = false; - break; - default: - System.out.println("Неверный выбор. Попробуйте снова."); - } - } - - scanner.close(); - System.out.println("Работа завершена."); - } -} - diff --git a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java deleted file mode 100644 index e1e43d9aa..000000000 --- a/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Tester.java +++ /dev/null @@ -1,43 +0,0 @@ -package ru.mirea.practice.s0000001 - -public class Tester { - private Circle[] circles; - private int numberOfCircles; - - public Tester(int size) { - circles = new Circle[size]; - numberOfCircles = 0; - } - - public void addCircle(Circle circle) { - if (numberOfCircles < circles.length) { - circles[numberOfCircles] = circle; - numberOfCircles++; - } else { - System.out.println("Массив окружностей заполнен."); - } - } - - public int getNumberOfCircles() { - return numberOfCircles; - } - - public void printCircles() { - for (int i = 0; i < numberOfCircles; i++) { - System.out.println(circles[i]); - } - } - - public static void main(String[] args) { - Tester tester = new Tester(3); - - tester.addCircle(new Circle(new Point(0, 0), 5)); - tester.addCircle(new Circle(new Point(1, 1), 10)); - tester.addCircle(new Circle(new Point(2, 2), 7)); - - tester.printCircles(); - - System.out.println("Количество окружностей в массиве: " + tester.getNumberOfCircles()); - } -} - diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java index d0bf7949c..4000e4b84 100644 --- a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java @@ -1,7 +1,9 @@ +package ru.mirea.practice.s0000001; + import java.util.Arrays; import java.util.Random; -public class First { +public abstract class First { public static void main(String[] args) { int arraySize = 10; @@ -9,7 +11,7 @@ public static void main(String[] args) { double[] mathRandomArray = new double[arraySize]; for (int i = 0; i < arraySize; i++) { -mathRandomArray[i] = Math.random(); + mathRandomArray[i] = Math.random(); } System.out.println("Массив, сгенерированный с использованием Math.random():"); @@ -24,7 +26,7 @@ public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < arraySize; i++) { -randomArray[i] = random.nextDouble(); + randomArray[i] = random.nextDouble(); } System.out.println("\nМассив, сгенерированный с использованием Random:"); @@ -36,4 +38,3 @@ public static void main(String[] args) { System.out.println(Arrays.toString(randomArray)); } } - diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java index 529ca4493..629addb54 100644 --- a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java @@ -1,4 +1,6 @@ -public class Four { +package ru.mirea.practice.s0000001; + +public abstract class Four { public static void main(String[] args) { @@ -32,4 +34,3 @@ public static void main(String[] args) { System.out.println("Преобразованный литерал double к строке: " + d); } } - diff --git a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java index 27c1222df..b98735aba 100644 --- a/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java +++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java @@ -1,13 +1,15 @@ +package ru.mirea.practice.s0000001; + import java.util.Random; -public class Third{ +public abstract class Third { public static void main(String[] args) { int[] numbers = new int[4]; Random random = new Random(); for (int i = 0; i < numbers.length; i++) { -numbers[i] = 10 + random.nextInt(90); + numbers[i] = 10 + random.nextInt(90); } System.out.print("Массив: "); @@ -31,4 +33,3 @@ public static void main(String[] args) { } } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java index 7e4498237..55de259ca 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public class Atelier { public void dressWomen(Clothes[] clothes) { @@ -31,4 +33,3 @@ public static void main(String[] args) { atelier.dressMan(clothesArray); } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java index cf0309df9..484f97daa 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public abstract class Clothes { private Size size; private double price; @@ -21,4 +23,3 @@ public String getColor() { return color; } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java index 88878836f..fefc70774 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -1,4 +1,6 @@ -public class Main { +package ru.mirea.practice.s0000001; + +public abstract class Main { public static void main(String[] args) { Season myFavoriteSeason = Season.SUMMER; @@ -9,8 +11,8 @@ public static void main(String[] args) { printSeasonDescription(myFavoriteSeason); for (Season season : Season.values()) { - System.out.println(season + " имеет среднюю температуру " + season.getAverageTemperature() + - " градусов. " + season.getDescription()); + System.out.println(season + " имеет среднюю температуру " + season.getAverageTemperature() + + " градусов. " + season.getDescription()); } } @@ -30,7 +32,7 @@ public static void printSeasonDescription(Season season) { break; default: System.out.println("Неизвестное время года"); + break; } } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java index 82110d66b..aac375993 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public interface MenClothing { void dressMan(); } diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java index 36f16e6ad..7b07d741e 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public class Pants extends Clothes implements MenClothing, WomenClothing { public Pants(Size size, double price, String color) { super(size, price, color); diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java index 5351c052d..54605a11e 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public enum Season { WINTER(-5), SPRING(10), @@ -23,4 +25,3 @@ public String getDescription() { return "Холодное время года"; } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java index 60834358e..23ea574ca 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public enum Size { XXS(32) { @Override @@ -24,4 +26,3 @@ public String getDescription() { return "Взрослый размер"; } } - diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java index 9a9e66e0e..ef9e168e0 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public class Skirt extends Clothes implements WomenClothing { public Skirt(Size size, double price, String color) { super(size, price, color); diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java index e1bb01681..d4b93458f 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public class TShirt extends Clothes implements MenClothing, WomenClothing { public TShirt(Size size, double price, String color) { super(size, price, color); @@ -12,4 +14,4 @@ public void dressMan() { public void dressWomen() { System.out.println("Футболка для женщин: размер " + getSize() + ", цвет " + getColor() + ", цена " + getPrice()); } -} \ No newline at end of file +} diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java index 06b5c13c0..c1c4a91e9 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java @@ -1,3 +1,5 @@ +package ru.mirea.practice.s0000001; + public class Tie extends Clothes implements MenClothing { public Tie(Size size, double price, String color) { super(size, price, color); diff --git a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java index 604983074..7d5829871 100644 --- a/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java +++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java @@ -1,4 +1,5 @@ +package ru.mirea.practice.s0000001; + public interface WomenClothing { void dressWomen(); } - diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index c1ffbfc3a..a3098b1ca 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -15,5 +15,7 @@ 23K9006-p01 23K9006-p02 + 23K9006-p03 + 23K9006-p04 From 57088bf0ce7c7a3603e64f5b99374891d80e93cc Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Thu, 3 Oct 2024 11:16:02 +0300 Subject: [PATCH 08/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961,2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mirea/practice/s0000001/1/2/Circle.java | 19 +++ .../ru/mirea/practice/s0000001/1/2/Shape.java | 18 +++ .../s0000001/1/FootballMatchSimulation.java | 73 +++++++++++ .../practice/s0000001/MovableCircle.java | 36 ++++++ .../mirea/practice/s0000001/MovablePoint.java | 40 ++++++ .../practice/s0000001/MovableRectangle.java | 64 ++++++++++ .../ru/mirea/practice/s0000001/Movable.java | 12 ++ .../mirea/practice/s0000001/MovablePoint.java | 40 ++++++ .../practice/s0000001/MovableRectangle.java | 60 +++++++++ .../practice/s0000001/NumbersFrom1ToN.java | 17 +++ .../practice/s0000001/TriangularSequence.java | 33 +++++ .../practice/s0000001/MergeSortStudents.java | 72 +++++++++++ .../ru/mirea/practice/s0000001/Student.java | 24 ++++ .../mirea/practice/s0000001/TestStudent.java | 39 ++++++ .../s0000001/SortingStudentsbygpa.java | 120 ++++++++++++++++++ .../ru/mirea/practice/s0000001/Student.java | 77 +++++++++++ .../ru/mirea/practice/s0000001/Student2.java | 62 +++++++++ students/23K9006/A.java | 0 students/23K9006/pom.xml | 8 +- 19 files changed, 813 insertions(+), 1 deletion(-) create mode 100644 students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Circle.java create mode 100644 students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Shape.java create mode 100644 students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/FootballMatchSimulation.java create mode 100644 students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableCircle.java create mode 100644 students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java create mode 100644 students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/Movable.java create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java create mode 100644 students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/NumbersFrom1ToN.java create mode 100644 students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/TriangularSequence.java create mode 100644 students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/MergeSortStudents.java create mode 100644 students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/Student.java create mode 100644 students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/TestStudent.java create mode 100644 students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/SortingStudentsbygpa.java create mode 100644 students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student.java create mode 100644 students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student2.java delete mode 100644 students/23K9006/A.java diff --git a/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Circle.java b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Circle.java new file mode 100644 index 000000000..e5283e652 --- /dev/null +++ b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Circle.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s0000001; + +import java.awt.Color; +import java.awt.Graphics; + +public class Circle extends Shape { + private int radius; + + public Circle(Color color, int x, int y, int radius) { + super(color, x, y); + this.radius = radius; + } + + @Override + public void draw(Graphics g) { + g.setColor(color); + g.fillOval(x, y, radius * 2, radius * 2); + } +} diff --git a/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Shape.java b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Shape.java new file mode 100644 index 000000000..7b41a0d03 --- /dev/null +++ b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/2/Shape.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001; + +import java.awt.Color; +import java.awt.Graphics; + +public abstract class Shape { + protected Color color; + protected int x; + protected int y; + + public Shape(Color color, int x, int y) { + this.color = color; + this.x = x; + this.y = y; + } + + public abstract void draw(Graphics g); +} diff --git a/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/FootballMatchSimulation.java b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/FootballMatchSimulation.java new file mode 100644 index 000000000..05630060e --- /dev/null +++ b/students/23K9006/23K9006-p05/src/main/java/ru/mirea/practice/s0000001/1/FootballMatchSimulation.java @@ -0,0 +1,73 @@ +package ru.mirea.practice.s0000001; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.SwingConstants; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class FootballMatchSimulation extends JFrame { + private int scoreMilan = 0; + private int scoreMadrid = 0; + + private JLabel resultLabel; + private JLabel lastScorerLabel; + private JLabel winnerLabel; + + public FootballMatchSimulation() { + setTitle("Football Match Simulation"); + setSize(400, 200); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLayout(new GridLayout(4, 1)); + + final JButton buttonMilan = new JButton("AC Milan"); + final JButton buttonMadrid = new JButton("Real Madrid"); + + resultLabel = new JLabel("Result: 0 X 0", SwingConstants.CENTER); + lastScorerLabel = new JLabel("Last Scorer: N/A", SwingConstants.CENTER); + winnerLabel = new JLabel("Winner: DRAW", SwingConstants.CENTER); + + buttonMilan.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + scoreMilan++; + updateGame("AC Milan"); + } + }); + + buttonMadrid.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + scoreMadrid++; + updateGame("Real Madrid"); + } + }); + + add(buttonMilan); + add(buttonMadrid); + add(resultLabel); + add(lastScorerLabel); + add(winnerLabel); + + setVisible(true); + } + + private void updateGame(String lastScorer) { + resultLabel.setText("Result: " + scoreMilan + " X " + scoreMadrid); + lastScorerLabel.setText("Last Scorer: " + lastScorer); + + if (scoreMilan > scoreMadrid) { + winnerLabel.setText("Winner: AC Milan"); + } else if (scoreMadrid > scoreMilan) { + winnerLabel.setText("Winner: Real Madrid"); + } else { + winnerLabel.setText("Winner: DRAW"); + } + } + + public static void main(String[] args) { + new FootballMatchSimulation(); + } +} diff --git a/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableCircle.java b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableCircle.java new file mode 100644 index 000000000..8168db53b --- /dev/null +++ b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableCircle.java @@ -0,0 +1,36 @@ +package ru.mirea.practice.s0000001; + +public class MovableCircle implements Movable { + private int radius; + private MovablePoint center; + + public MovableCircle(int x, int y, int xspeed, int yspeed, int radius) { + this.radius = radius; + this.center = new MovablePoint(x, y, xspeed, yspeed); + } + + @Override + public void moveUp() { + center.moveUp(); + } + + @Override + public void moveDown() { + center.moveDown(); + } + + @Override + public void moveLeft() { + center.moveLeft(); + } + + @Override + public void moveRight() { + center.moveRight(); + } + + @Override + public String toString() { + return "MovableCircle{radius=" + radius + ", center=" + center + '}'; + } +} diff --git a/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java new file mode 100644 index 000000000..e53d9b3bd --- /dev/null +++ b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s0000001; + +public class MovablePoint implements Movable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public MovablePoint(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public void moveUp() { + y += yspeed; + } + + @Override + public void moveDown() { + y -= yspeed; + } + + @Override + public void moveLeft() { + x -= xspeed; + } + + @Override + public void moveRight() { + x += xspeed; + } + + @Override + public String toString() { + return "MovablePoint{x=" + x + ", y=" + y + ", xspeed=" + xspeed + ", yspeed=" + yspeed + '}'; + } +} diff --git a/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java new file mode 100644 index 000000000..abcf8fd0c --- /dev/null +++ b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java @@ -0,0 +1,64 @@ +package ru.mirea.practice.s0000001; + +public class MovableRectangle implements Movable { + private MovablePoint topLeft; + private MovablePoint bottomRight; + + public MovableRectangle(int x1, int y1, int x2, int y2, int xspeed, int yspeed) { + this.topLeft = new MovablePoint(x1, y1, xspeed, yspeed); + this.bottomRight = new MovablePoint(x2, y2, xspeed, yspeed); + } + + private boolean hasSameSpeed() { + return topLeft.xspeed == bottomRight.xspeed && topLeft.yspeed == bottomRight.yspeed; + } + + @Override + public void moveUp() { + if (hasSameSpeed()) { + topLeft.moveUp(); + bottomRight.moveUp(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveDown() { + if (hasSameSpeed()) { + topLeft.moveDown(); + bottomRight.moveDown(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveLeft() { + if (hasSameSpeed()) { + topLeft.moveLeft(); + bottomRight.moveLeft(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveRight() { + if (hasSameSpeed()) { + topLeft.moveRight(); + bottomRight.moveRight(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public String toString() { + return "MovableRectangle{" + + "topLeft=" + topLeft + + ", bottomRight=" + + bottomRight + + '}'; + } +} diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/Movable.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/Movable.java new file mode 100644 index 000000000..ec7b83ad3 --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/Movable.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public interface Movable { + + void moveUp(); + + void moveDown(); + + void moveLeft(); + + void moveRight(); +} diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java new file mode 100644 index 000000000..e53d9b3bd --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovablePoint.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s0000001; + +public class MovablePoint implements Movable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public MovablePoint(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public void moveUp() { + y += yspeed; + } + + @Override + public void moveDown() { + y -= yspeed; + } + + @Override + public void moveLeft() { + x -= xspeed; + } + + @Override + public void moveRight() { + x += xspeed; + } + + @Override + public String toString() { + return "MovablePoint{x=" + x + ", y=" + y + ", xspeed=" + xspeed + ", yspeed=" + yspeed + '}'; + } +} diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java new file mode 100644 index 000000000..52026f5b4 --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/MovableRectangle.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class MovableRectangle implements Movable { + private MovablePoint topLeft; + private MovablePoint bottomRight; + + public MovableRectangle(int x1, int y1, int x2, int y2, int xspeed, int yspeed) { + this.topLeft = new MovablePoint(x1, y1, xspeed, yspeed); + this.bottomRight = new MovablePoint(x2, y2, xspeed, yspeed); + } + + private boolean hasSameSpeed() { + return topLeft.xspeed == bottomRight.xspeed && topLeft.yspeed == bottomRight.yspeed; + } + + @Override + public void moveUp() { + if (hasSameSpeed()) { + topLeft.moveUp(); + bottomRight.moveUp(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveDown() { + if (hasSameSpeed()) { + topLeft.moveDown(); + bottomRight.moveDown(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveLeft() { + if (hasSameSpeed()) { + topLeft.moveLeft(); + bottomRight.moveLeft(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveRight() { + if (hasSameSpeed()) { + topLeft.moveRight(); + bottomRight.moveRight(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public String toString() { + return "MovableRectangle{topLeft=" + topLeft + ", bottomRight=" + bottomRight + '}'; + } +} diff --git a/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/NumbersFrom1ToN.java b/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/NumbersFrom1ToN.java new file mode 100644 index 000000000..dd81706c1 --- /dev/null +++ b/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/NumbersFrom1ToN.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public abstract class NumbersFrom1ToN { + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Введите число n: "); + int n = scanner.nextInt(); + + for (int i = 1; i <= n; i++) { + System.out.print(i + " "); + } + } + } +} diff --git a/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/TriangularSequence.java b/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/TriangularSequence.java new file mode 100644 index 000000000..5fb627684 --- /dev/null +++ b/students/23K9006/23K9006-p08/src/main/java/ru/mirea/practice/s0000001/TriangularSequence.java @@ -0,0 +1,33 @@ +package ru.mirea.practice.s0000001; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public abstract class TriangularSequence { + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Введите число n: "); + int n = scanner.nextInt(); + + List sequence = generateTriangularSequence(n); + + for (int number : sequence) { + System.out.print(number + " "); + } + } + } + + public static List generateTriangularSequence(int n) { + List result = new ArrayList<>(); + int count = 0; + for (int i = 1; count < n; i++) { + for (int j = 0; j < i && count < n; j++) { + result.add(i); + count++; + } + } + return result; + } +} diff --git a/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/MergeSortStudents.java b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/MergeSortStudents.java new file mode 100644 index 000000000..39007be8e --- /dev/null +++ b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/MergeSortStudents.java @@ -0,0 +1,72 @@ +package ru.mirea.practice.s0000001; + +import java.util.ArrayList; +import java.util.List; + +public abstract class MergeSortStudents { + + public static void main(String[] args) { + List list1 = new ArrayList<>(); + list1.add(new Student(105, "Ivan")); + list1.add(new Student(102, "Maria")); + list1.add(new Student(110, "Peter")); + + List list2 = new ArrayList<>(); + list2.add(new Student(101, "Anna")); + list2.add(new Student(108, "John")); + list2.add(new Student(103, "Sophia")); + + List mergedList = mergeAndSort(list1, list2); + + System.out.println("Merged and sorted list:"); + for (Student student : mergedList) { + System.out.println(student); + } + } + + public static List mergeAndSort(List list1, List list2) { + List mergedList = new ArrayList<>(list1); + mergedList.addAll(list2); + return mergeSort(mergedList); + } + + public static List mergeSort(List students) { + if (students.size() <= 1) { + return students; + } + + int mid = students.size() / 2; + List left = new ArrayList<>(students.subList(0, mid)); + List right = new ArrayList<>(students.subList(mid, students.size())); + + return merge(mergeSort(left), mergeSort(right)); + } + + private static List merge(List left, List right) { + List result = new ArrayList<>(); + int i = 0; + int j = 0; + + while (i < left.size() && j < right.size()) { + if (left.get(i).getIdNumber() <= right.get(j).getIdNumber()) { + result.add(left.get(i)); + i++; + } else { + result.add(right.get(j)); + j++; + } + } + + while (i < left.size()) { + result.add(left.get(i)); + i++; + } + + while (j < right.size()) { + result.add(right.get(j)); + j++; + } + + return result; + } +} diff --git a/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/Student.java b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/Student.java new file mode 100644 index 000000000..3c23a722d --- /dev/null +++ b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/Student.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +public class Student { + private int idNumber; + private String name; + + public Student(int idNumber, String name) { + this.idNumber = idNumber; + this.name = name; + } + + public int getIdNumber() { + return idNumber; + } + + public String getName() { + return name; + } + + @Override + public String toString() { + return "Student{idNumber=" + idNumber + ", name='" + name + "'}"; + } +} diff --git a/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/TestStudent.java b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/TestStudent.java new file mode 100644 index 000000000..5d0161520 --- /dev/null +++ b/students/23K9006/23K9006-p09/src/main/java/ru/mirea/practice/s0000001/TestStudent.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s0000001; + +public abstract class TestStudent { + + public static void main(String[] args) { + Student[] students = new Student[5]; + students[0] = new Student(105, "Ivan"); + students[1] = new Student(102, "Maria"); + students[2] = new Student(110, "Peter"); + students[3] = new Student(101, "Anna"); + students[4] = new Student(108, "John"); + + System.out.println("Before sorting:"); + printStudents(students); + + insertionSort(students); + + System.out.println("\nAfter sorting by iDNumber:"); + printStudents(students); + } + + public static void insertionSort(Student[] students) { + for (int i = 1; i < students.length; i++) { + Student key = students[i]; + int j = i - 1; + while (j >= 0 && students[j].getIdNumber() > key.getIdNumber()) { + students[j + 1] = students[j]; + j = j - 1; + } + students[j + 1] = key; + } + } + + public static void printStudents(Student[] students) { + for (Student student : students) { + System.out.println(student); + } + } +} diff --git a/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/SortingStudentsbygpa.java b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/SortingStudentsbygpa.java new file mode 100644 index 000000000..284304b1c --- /dev/null +++ b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/SortingStudentsbygpa.java @@ -0,0 +1,120 @@ +package ru.mirea.practice.s0000001; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +public class SortingStudentsbygpa implements Comparator { + + private List students; + + public SortingStudentsbygpa() { + this.students = new ArrayList<>(); + } + + public void setArray() { + students.add(new Student2(101, "Ivan", "Ivanov", 3.5)); + students.add(new Student2(102, "Maria", "Petrova", 4.0)); + students.add(new Student2(103, "Peter", "Sidorov", 3.7)); + students.add(new Student2(104, "Anna", "Smirnova", 3.8)); + students.add(new Student2(105, "John", "Doe", 3.2)); + } + + public void quicksort(int low, int high) { + if (low < high) { + int pi = partition(low, high); + quicksort(low, pi - 1); + quicksort(pi + 1, high); + } + } + + private int partition(int low, int high) { + Student2 pivot = students.get(high); + int i = low - 1; + for (int j = low; j < high; j++) { + if (compare(students.get(j), pivot) > 0) { + i++; + Student2 temp = students.get(i); + students.set(i, students.get(j)); + students.set(j, temp); + } + } + Student2 temp = students.get(i + 1); + students.set(i + 1, students.get(high)); + students.set(high, temp); + return i + 1; + } + + public void mergeSort(int left, int right) { + if (left < right) { + int mid = (left + right) / 2; + mergeSort(left, mid); + mergeSort(mid + 1, right); + merge(left, mid, right); + } + } + + private void merge(int left, int mid, int right) { + List leftList = new ArrayList<>(students.subList(left, mid + 1)); + List rightList = new ArrayList<>(students.subList(mid + 1, right + 1)); + + int i = 0; + int j = 0; + int k = left; + while (i < leftList.size() && j < rightList.size()) { + if (compare(leftList.get(i), rightList.get(j)) > 0) { + students.set(k++, leftList.get(i++)); + } else { + students.set(k++, rightList.get(j++)); + } + } + + while (i < leftList.size()) { + students.set(k++, leftList.get(i++)); + } + + while (j < rightList.size()) { + students.set(k++, rightList.get(j++)); + } + } + + public void outArray() { + for (Student2 student : students) { + System.out.println(student); + } + } + + public void sortByIdNumber() { + students.sort(Comparator.comparingInt(Student2::getIdNumber)); + } + + @Override + public int compare(Student2 s1, Student2 s2) { + return Double.compare(s2.getGpa(), s1.getGpa()); + } + + public static void main(String[] args) { + SortingStudentsbygpa sortingStudents = new SortingStudentsbygpa(); + sortingStudents.setArray(); + + System.out.println("Before sorting by GPA (quick sort):"); + sortingStudents.outArray(); + sortingStudents.quicksort(0, sortingStudents.students.size() - 1); + + System.out.println("\nAfter sorting by GPA (quick sort):"); + sortingStudents.outArray(); + + sortingStudents.setArray(); + + System.out.println("\nBefore sorting by GPA (merge sort):"); + sortingStudents.outArray(); + sortingStudents.mergeSort(0, sortingStudents.students.size() - 1); + + System.out.println("\nAfter sorting by GPA (merge sort):"); + sortingStudents.outArray(); + + System.out.println("\nSorting by ID number:"); + sortingStudents.sortByIdNumber(); + sortingStudents.outArray(); + } +} diff --git a/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student.java b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student.java new file mode 100644 index 000000000..8acf5ecac --- /dev/null +++ b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student.java @@ -0,0 +1,77 @@ +package ru.mirea.practice.s0000001; + +public class Student { + private String firstName; + private String lastName; + private String major; + private int course; + private String group; + + public Student(String firstName, String lastName, String major, int course, String group) { + this.firstName = firstName; + this.lastName = lastName; + this.major = major; + this.course = course; + this.group = group; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getMajor() { + return major; + } + + public void setMajor(String major) { + this.major = major; + } + + public int getCourse() { + return course; + } + + public void setCourse(int course) { + this.course = course; + } + + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + @Override + public String toString() { + return "Student{" + + "firstName='" + + firstName + + '\'' + + ", lastName='" + + lastName + + '\'' + + ", major='" + + major + + '\'' + + ", course=" + + course + + ", group='" + + group + + '\'' + + '}'; + } +} diff --git a/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student2.java b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student2.java new file mode 100644 index 000000000..ef8ca3820 --- /dev/null +++ b/students/23K9006/23K9006-p10/src/main/java/ru/mirea/practice/s0000001/Student2.java @@ -0,0 +1,62 @@ +package ru.mirea.practice.s0000001; + +public class Student2 { + private int idNumber; + private String firstName; + private String lastName; + private double gpa; + + public Student2(int idNumber, String firstName, String lastName, double gpa) { + this.idNumber = idNumber; + this.firstName = firstName; + this.lastName = lastName; + this.gpa = gpa; + } + + public int getIdNumber() { + return idNumber; + } + + public void setIdNumber(int idNumber) { + this.idNumber = idNumber; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public double getGpa() { + return gpa; + } + + public void setGpa(double gpa) { + this.gpa = gpa; + } + + @Override + public String toString() { + return "Student{idNumber=" + + idNumber + + ", firstName='" + + firstName + + '\'' + + ", lastName='" + + lastName + + '\'' + + ", gpa=" + + gpa + + '}'; + } +} diff --git a/students/23K9006/A.java b/students/23K9006/A.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index a3098b1ca..3265cdc88 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -10,12 +10,18 @@ 23K9006 pom - Практическая работа Пети + Практическая работа Ильи 23K9006-p01 23K9006-p02 23K9006-p03 23K9006-p04 + 23K9006-p05 + 23K9006-p06 + 23K9006-p07 + 23K9006-p08 + 23K9006-p09 + 23K9006-p10 From 403f39553b81d9dce05026566f0114831cfd4523 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Thu, 3 Oct 2024 11:23:48 +0300 Subject: [PATCH 09/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961,2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p05/pom.xml | 13 ++++ students/23K9006/23K9006-p06/pom.xml | 13 ++++ .../ru/mirea/practice/s0000001/Movable.java | 12 ++++ students/23K9006/23K9006-p07/pom.xml | 13 ++++ .../mirea/practice/s0000001/2/1/Movable2.java | 12 ++++ .../practice/s0000001/2/1/Movable2Point.java | 40 +++++++++++++ .../s0000001/2/1/Movable2Rectangle.java | 60 +++++++++++++++++++ students/23K9006/23K9006-p08/pom.xml | 13 ++++ students/23K9006/23K9006-p09/pom.xml | 13 ++++ students/23K9006/23K9006-p10/pom.xml | 13 ++++ 10 files changed, 202 insertions(+) create mode 100644 students/23K9006/23K9006-p05/pom.xml create mode 100644 students/23K9006/23K9006-p06/pom.xml create mode 100644 students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/Movable.java create mode 100644 students/23K9006/23K9006-p07/pom.xml create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2.java create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Point.java create mode 100644 students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Rectangle.java create mode 100644 students/23K9006/23K9006-p08/pom.xml create mode 100644 students/23K9006/23K9006-p09/pom.xml create mode 100644 students/23K9006/23K9006-p10/pom.xml diff --git a/students/23K9006/23K9006-p05/pom.xml b/students/23K9006/23K9006-p05/pom.xml new file mode 100644 index 000000000..cd6946a5d --- /dev/null +++ b/students/23K9006/23K9006-p05/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p05 + Пятое задание + diff --git a/students/23K9006/23K9006-p06/pom.xml b/students/23K9006/23K9006-p06/pom.xml new file mode 100644 index 000000000..c8cd48800 --- /dev/null +++ b/students/23K9006/23K9006-p06/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p06 + Шестое задание + diff --git a/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/Movable.java b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/Movable.java new file mode 100644 index 000000000..ec7b83ad3 --- /dev/null +++ b/students/23K9006/23K9006-p06/src/main/java/ru/mirea/practice/s0000001/Movable.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public interface Movable { + + void moveUp(); + + void moveDown(); + + void moveLeft(); + + void moveRight(); +} diff --git a/students/23K9006/23K9006-p07/pom.xml b/students/23K9006/23K9006-p07/pom.xml new file mode 100644 index 000000000..a702b123c --- /dev/null +++ b/students/23K9006/23K9006-p07/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p07 + Седьмое задание + diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2.java new file mode 100644 index 000000000..3161072e0 --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public interface Movable2 { + + void moveUp(); + + void moveDown(); + + void moveLeft(); + + void moveRight(); +} diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Point.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Point.java new file mode 100644 index 000000000..d418a49ba --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Point.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s0000001; + +public class Movable2Point implements Movable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public Movable2Point(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public void moveUp() { + y += yspeed; + } + + @Override + public void moveDown() { + y -= yspeed; + } + + @Override + public void moveLeft() { + x -= xspeed; + } + + @Override + public void moveRight() { + x += xspeed; + } + + @Override + public String toString() { + return "MovablePoint{x=" + x + ", y=" + y + ", xspeed=" + xspeed + ", yspeed=" + yspeed + '}'; + } +} diff --git a/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Rectangle.java b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Rectangle.java new file mode 100644 index 000000000..2e1c6b2db --- /dev/null +++ b/students/23K9006/23K9006-p07/src/main/java/ru/mirea/practice/s0000001/2/1/Movable2Rectangle.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class Movable2Rectangle implements Movable { + private Movable2Point topLeft; + private Movable2Point bottomRight; + + public Movable2Rectangle(int x1, int y1, int x2, int y2, int xspeed, int yspeed) { + this.topLeft = new Movable2Point(x1, y1, xspeed, yspeed); + this.bottomRight = new Movable2Point(x2, y2, xspeed, yspeed); + } + + private boolean hasSameSpeed() { + return topLeft.xspeed == bottomRight.xspeed && topLeft.yspeed == bottomRight.yspeed; + } + + @Override + public void moveUp() { + if (hasSameSpeed()) { + topLeft.moveUp(); + bottomRight.moveUp(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveDown() { + if (hasSameSpeed()) { + topLeft.moveDown(); + bottomRight.moveDown(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveLeft() { + if (hasSameSpeed()) { + topLeft.moveLeft(); + bottomRight.moveLeft(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public void moveRight() { + if (hasSameSpeed()) { + topLeft.moveRight(); + bottomRight.moveRight(); + } else { + System.out.println("Точки движутся с разной скоростью."); + } + } + + @Override + public String toString() { + return "MovableRectangle{topLeft=" + topLeft + ", bottomRight=" + bottomRight + '}'; + } +} diff --git a/students/23K9006/23K9006-p08/pom.xml b/students/23K9006/23K9006-p08/pom.xml new file mode 100644 index 000000000..1b3c684a1 --- /dev/null +++ b/students/23K9006/23K9006-p08/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p08 + Восьмое задание + diff --git a/students/23K9006/23K9006-p09/pom.xml b/students/23K9006/23K9006-p09/pom.xml new file mode 100644 index 000000000..0915aae6f --- /dev/null +++ b/students/23K9006/23K9006-p09/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p09 + Девятое задание + diff --git a/students/23K9006/23K9006-p10/pom.xml b/students/23K9006/23K9006-p10/pom.xml new file mode 100644 index 000000000..a9f7c19ec --- /dev/null +++ b/students/23K9006/23K9006-p10/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p10 + Десятое задание + From 9756a29b838dce01afde66a62cb9cacfc6681875 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Thu, 7 Nov 2024 23:52:35 +0300 Subject: [PATCH 10/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961,2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p11/pom.xml | 13 +++ .../practice/s0000001/1/1/DateComparison.java | 24 +++++ .../ru/mirea/practice/s0000001/1/1/Main.java | 20 ++++ .../s0000001/1/1/MyDateComparison.java | 17 ++++ .../practice/s0000001/1/2/Assignment.java | 4 + .../s0000001/1/2/DateComparisonApp.java | 20 ++++ .../practice/s0000001/1/2/MyAssignment.java | 4 + students/23K9006/23K9006-p13/pom.xml | 13 +++ .../mirea/practice/s0000001/1/1/Employee.java | 7 ++ .../ru/mirea/practice/s0000001/1/1/Main1.java | 43 ++++++++ .../ru/mirea/practice/s0000001/1/1/Main2.java | 18 ++++ .../mirea/practice/s0000001/1/1/Person.java | 24 +++++ .../practice/s0000001/1/1/PoloShirt.java | 7 ++ .../ru/mirea/practice/s0000001/1/1/Shirt.java | 23 +++++ .../mirea/practice/s0000001/1/1/TShirt.java | 7 ++ students/23K9006/23K9006-p14/pom.xml | 13 +++ .../s0000001/1/1/DateFormatValidator.java | 32 ++++++ .../practice/s0000001/1/1/DateValidator.java | 11 +++ .../ru/mirea/practice/s0000001/1/1/Main1.java | 25 +++++ .../ru/mirea/practice/s0000001/1/1/Main2.java | 25 +++++ .../s0000001/1/1/PasswordValidator.java | 11 +++ .../s0000001/1/1/SecurePasswordValidator.java | 19 ++++ students/23K9006/23K9006-p16/pom.xml | 13 +++ .../practice/s0000001/1/1/TextEditorApp.java | 98 +++++++++++++++++++ students/23K9006/23K9006-p17/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/1/Main.java | 61 ++++++++++++ .../mirea/practice/s0000001/1/1/Student.java | 32 ++++++ .../practice/s0000001/1/1/StudentList.java | 64 ++++++++++++ students/23K9006/23K9006-p19/pom.xml | 13 +++ .../s0000001/1/1/InvalidTaxIdException.java | 7 ++ .../practice/s0000001/1/1/OnlineUser.java | 15 +++ .../s0000001/1/1/PurchaseProcess.java | 29 ++++++ .../ru/mirea/practice/s0000001/1/1/User.java | 13 +++ students/23K9006/23K9006-p20/pom.xml | 13 +++ .../practice/s0000001/1/1/Calculator.java | 27 +++++ .../practice/s0000001/1/1/GenericClass.java | 31 ++++++ .../practice/s0000001/1/1/IntegerMinMax.java | 7 ++ .../ru/mirea/practice/s0000001/1/1/Main.java | 25 +++++ .../ru/mirea/practice/s0000001/1/1/Main1.java | 12 +++ .../mirea/practice/s0000001/1/1/MinMax.java | 29 ++++++ .../practice/s0000001/1/1/MyGenericClass.java | 7 ++ .../practice/s0000001/1/1/StringMinMax.java | 7 ++ students/23K9006/pom.xml | 7 ++ 43 files changed, 903 insertions(+) create mode 100644 students/23K9006/23K9006-p11/pom.xml create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/DateComparison.java create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/MyDateComparison.java create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/Assignment.java create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/DateComparisonApp.java create mode 100644 students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/MyAssignment.java create mode 100644 students/23K9006/23K9006-p13/pom.xml create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Employee.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Person.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/PoloShirt.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Shirt.java create mode 100644 students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/TShirt.java create mode 100644 students/23K9006/23K9006-p14/pom.xml create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateFormatValidator.java create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateValidator.java create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/PasswordValidator.java create mode 100644 students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/SecurePasswordValidator.java create mode 100644 students/23K9006/23K9006-p16/pom.xml create mode 100644 students/23K9006/23K9006-p16/src/main/java/ru/mirea/practice/s0000001/1/1/TextEditorApp.java create mode 100644 students/23K9006/23K9006-p17/pom.xml create mode 100644 students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java create mode 100644 students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Student.java create mode 100644 students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/StudentList.java create mode 100644 students/23K9006/23K9006-p19/pom.xml create mode 100644 students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/InvalidTaxIdException.java create mode 100644 students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/OnlineUser.java create mode 100644 students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/PurchaseProcess.java create mode 100644 students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/User.java create mode 100644 students/23K9006/23K9006-p20/pom.xml create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Calculator.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/GenericClass.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/IntegerMinMax.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MinMax.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MyGenericClass.java create mode 100644 students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/StringMinMax.java diff --git a/students/23K9006/23K9006-p11/pom.xml b/students/23K9006/23K9006-p11/pom.xml new file mode 100644 index 000000000..ece4bdee2 --- /dev/null +++ b/students/23K9006/23K9006-p11/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p11 + одиннадцатое задание + diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/DateComparison.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/DateComparison.java new file mode 100644 index 000000000..29db004b5 --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/DateComparison.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +import java.util.Date; + +abstract class DateComparison { + protected Date currentDate; + protected Date userDate; + + public DateComparison() { + this.currentDate = new Date(); // Текущая дата и время + } + + public abstract void setUserDate(String dateString); + + public void compareDates() { + if (userDate.before(currentDate)) { + System.out.println("Введенная дата " + userDate + " раньше текущей даты " + currentDate); + } else if (userDate.after(currentDate)) { + System.out.println("Введенная дата " + userDate + " позже текущей даты " + currentDate); + } else { + System.out.println("Введенная дата " + userDate + " равна текущей дате"); + } + } +} diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java new file mode 100644 index 000000000..61837796a --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class Main { + private Main() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + MyDateComparison dateComparison = new MyDateComparison(); + + System.out.println("Введите дату в формате dd-MM-yyyy HH:mm:ss: "); + String userInput = scanner.nextLine(); + + dateComparison.setUserDate(userInput); + dateComparison.compareDates(); + } + } +} diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/MyDateComparison.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/MyDateComparison.java new file mode 100644 index 000000000..a8be1dd09 --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/1/MyDateComparison.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s0000001; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +class MyDateComparison extends DateComparison { + + @Override + public void setUserDate(String dateString) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); + try { + this.userDate = dateFormat.parse(dateString); + } catch (ParseException e) { + System.out.println("Ошибка при вводе даты. Пожалуйста, используйте формат: dd-MM-yyyy HH:mm:ss"); + } + } +} diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/Assignment.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/Assignment.java new file mode 100644 index 000000000..165dc9145 --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/Assignment.java @@ -0,0 +1,4 @@ +package ru.mirea.practice.s0000001; + +class Assignment { +} diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/DateComparisonApp.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/DateComparisonApp.java new file mode 100644 index 000000000..01d28cc54 --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/DateComparisonApp.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class DateComparisonApp { + private DateComparisonApp() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + MyDateComparison dateComparison = new MyDateComparison(); + + System.out.println("Введите дату в формате dd-MM-yyyy HH:mm:ss: "); + String userInput = scanner.nextLine(); + + dateComparison.setUserDate(userInput); + dateComparison.compareDates(); + } + } +} diff --git a/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/MyAssignment.java b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/MyAssignment.java new file mode 100644 index 000000000..619eda405 --- /dev/null +++ b/students/23K9006/23K9006-p11/src/main/java/ru/mirea/practice/s0000001/1/2/MyAssignment.java @@ -0,0 +1,4 @@ +package ru.mirea.practice.s0000001; + +class MyAssignment extends Assignment { +} diff --git a/students/23K9006/23K9006-p13/pom.xml b/students/23K9006/23K9006-p13/pom.xml new file mode 100644 index 000000000..e146d6a80 --- /dev/null +++ b/students/23K9006/23K9006-p13/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p13 + тринадцатое задание + diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Employee.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Employee.java new file mode 100644 index 000000000..0da08f1da --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Employee.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class Employee extends Person { + public Employee(String lastName, String firstName, String middleName) { + super(lastName, firstName, middleName); + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java new file mode 100644 index 000000000..074ac4e84 --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s0000001; + +import java.util.Locale; + +public final class Main1 { + private Main1() {} + + public static void main(String[] args) { + String[] shirts = { + "S001,Black Polo Shirt,Black,XL", + "S002,Black Polo Shirt,Black,L", + "S003,Blue Polo Shirt,Blue,XL", + "S004,Blue Polo Shirt,Blue,M", + "S005,Tan Polo Shirt,Tan,XL", + "S006,Black T-Shirt,Black,XL", + "S007,White T-Shirt,White,XL", + "S008,White T-Shirt,White,L", + "S009,Green T-Shirt,Green,S", + "S010,Orange T-Shirt,Orange,S", + "S011,Maroon Polo Shirt,Maroon,S" + }; + + Shirt[] shirtArray = new Shirt[shirts.length]; + + for (int i = 0; i < shirts.length; i++) { + String[] parts = shirts[i].split(","); + String id = parts[0]; + String name = parts[1]; + String color = parts[2]; + String size = parts[3]; + + if (name.toLowerCase(Locale.ROOT).contains("polo")) { + shirtArray[i] = new PoloShirt(id, name, color, size); + } else { + shirtArray[i] = new TShirt(id, name, color, size); + } + } + + for (Shirt shirt : shirtArray) { + System.out.println(shirt); + } + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java new file mode 100644 index 000000000..a435da0c9 --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001; + +public final class Main2 { + + private Main2() {} + + public static void main(String[] args) { + Person person1 = new Employee("Иванов", "Иван", "Иванович"); + Person person2 = new Employee("Петров", "Петр", null); + Person person3 = new Employee("Сидоров", null, "Сидорович"); + Person person4 = new Employee("Кузнецов", null, null); + + System.out.println(person1.getFullName()); + System.out.println(person2.getFullName()); + System.out.println(person3.getFullName()); + System.out.println(person4.getFullName()); + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Person.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Person.java new file mode 100644 index 000000000..21ac46d2f --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Person.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +abstract class Person { + protected String lastName; + protected String firstName; + protected String middleName; + + public Person(String lastName, String firstName, String middleName) { + this.lastName = lastName; + this.firstName = firstName; + this.middleName = middleName; + } + + public String getFullName() { + StringBuilder fullName = new StringBuilder(lastName); + if (firstName != null && !firstName.isEmpty()) { + fullName.append(" ").append(firstName.charAt(0)).append("."); + } + if (middleName != null && !middleName.isEmpty()) { + fullName.append(" ").append(middleName.charAt(0)).append("."); + } + return fullName.toString(); + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/PoloShirt.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/PoloShirt.java new file mode 100644 index 000000000..21164210c --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/PoloShirt.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class PoloShirt extends Shirt { + public PoloShirt(String id, String name, String color, String size) { + super(id, name, color, size); + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Shirt.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Shirt.java new file mode 100644 index 000000000..df62cbfa8 --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/Shirt.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s0000001; + +abstract class Shirt { + protected String id; + protected String name; + protected String color; + protected String size; + + public Shirt(String id, String name, String color, String size) { + this.id = id; + this.name = name; + this.color = color; + this.size = size; + } + + @Override + public String toString() { + return "ID: " + id + "\n" + + "Name: " + name + "\n" + + "Color: " + color + "\n" + + "Size: " + size + "\n"; + } +} diff --git a/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/TShirt.java b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/TShirt.java new file mode 100644 index 000000000..7b65bf216 --- /dev/null +++ b/students/23K9006/23K9006-p13/src/main/java/ru/mirea/practice/s0000001/1/1/TShirt.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class TShirt extends Shirt { + public TShirt(String id, String name, String color, String size) { + super(id, name, color, size); + } +} diff --git a/students/23K9006/23K9006-p14/pom.xml b/students/23K9006/23K9006-p14/pom.xml new file mode 100644 index 000000000..bb985a655 --- /dev/null +++ b/students/23K9006/23K9006-p14/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p14 + четырнадцатое задание + diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateFormatValidator.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateFormatValidator.java new file mode 100644 index 000000000..01726da99 --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateFormatValidator.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s0000001; + +import java.util.regex.Pattern; + +class DateFormatValidator extends DateValidator { + private static final String PATTERN = + "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/" + + "(19\\d\\d|20\\d\\d|21\\d\\d|22\\d\\d|23\\d\\d|24\\d\\d|" + + "25\\d\\d|26\\d\\d|27\\d\\d|28\\d\\d|29\\d\\d|30\\d\\d|" + + "31\\d\\d|32\\d\\d|33\\d\\d|34\\d\\d|35\\d\\d|36\\d\\d|" + + "37\\d\\d|38\\d\\d|39\\d\\d|40\\d\\d|41\\d\\d|42\\d\\d|" + + "43\\d\\d|44\\d\\d|45\\d\\d|46\\d\\d|47\\d\\d|48\\d\\d|" + + "49\\d\\d|50\\d\\d|51\\d\\d|52\\d\\d|53\\d\\d|54\\d\\d|" + + "55\\d\\d|56\\d\\d|57\\d\\d|58\\d\\d|59\\d\\d|60\\d\\d|" + + "61\\d\\d|62\\d\\d|63\\d\\d|64\\d\\d|65\\d\\d|66\\d\\d|" + + "67\\d\\d|68\\d\\d|69\\d\\d|70\\d\\d|71\\d\\d|72\\d\\d|" + + "73\\d\\d|74\\d\\d|75\\d\\d|76\\d\\d|77\\d\\d|78\\d\\d|" + + "79\\d\\d|80\\d\\d|81\\d\\d|82\\d\\d|83\\d\\d|84\\d\\d|" + + "85\\d\\d|86\\d\\d|87\\d\\d|88\\d\\d|89\\d\\d|90\\d\\d|" + + "91\\d\\d|92\\d\\d|93\\d\\d|94\\d\\d|95\\d\\d|96\\d\\d|" + + "97\\d\\d|98\\d\\d|99\\d\\d)$"; + + public DateFormatValidator(String inputDate) { + super(inputDate); + } + + @Override + public boolean isValid() { + Pattern pattern = Pattern.compile(PATTERN); + return pattern.matcher(inputDate).matches(); + } +} diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateValidator.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateValidator.java new file mode 100644 index 000000000..adc7610fd --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/DateValidator.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s0000001; + +abstract class DateValidator { + protected String inputDate; + + public DateValidator(String inputDate) { + this.inputDate = inputDate; + } + + public abstract boolean isValid(); +} diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java new file mode 100644 index 000000000..3b04d0ffc --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class Main1 { + private Main1() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите пароль для проверки:"); + String input = scanner.nextLine(); + + SecurePasswordValidator validator = new SecurePasswordValidator(input); + boolean isValid = validator.isValid(); + + if (isValid) { + System.out.println("Пароль надежен: " + input); + } else { + System.out.println("Пароль ненадежен: " + input); + } + + } + } +} diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java new file mode 100644 index 000000000..64a509124 --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/Main2.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class Main2 { + private Main2() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите дату для проверки (формат dd/mm/yyyy):"); + String input = scanner.nextLine(); + + DateFormatValidator validator = new DateFormatValidator(input); + boolean isValid = validator.isValid(); + + if (isValid) { + System.out.println("Дата корректна: " + input); + } else { + System.out.println("Дата некорректна: " + input); + } + + } + } +} \ No newline at end of file diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/PasswordValidator.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/PasswordValidator.java new file mode 100644 index 000000000..e7eaa6693 --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/PasswordValidator.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s0000001; + +abstract class PasswordValidator { + protected String password; + + public PasswordValidator(String password) { + this.password = password; + } + + public abstract boolean isValid(); +} diff --git a/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/SecurePasswordValidator.java b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/SecurePasswordValidator.java new file mode 100644 index 000000000..dc82183a5 --- /dev/null +++ b/students/23K9006/23K9006-p14/src/main/java/ru/mirea/practice/s0000001/1/1/SecurePasswordValidator.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s0000001; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +class SecurePasswordValidator extends PasswordValidator { + private static final String PATTERN = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d_]{8,}$"; + + public SecurePasswordValidator(String password) { + super(password); + } + + @Override + public boolean isValid() { + Pattern pattern = Pattern.compile(PATTERN); + Matcher matcher = pattern.matcher(password); + return matcher.matches(); + } +} diff --git a/students/23K9006/23K9006-p16/pom.xml b/students/23K9006/23K9006-p16/pom.xml new file mode 100644 index 000000000..637f45e99 --- /dev/null +++ b/students/23K9006/23K9006-p16/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p16 + шестнадцатое задание + diff --git a/students/23K9006/23K9006-p16/src/main/java/ru/mirea/practice/s0000001/1/1/TextEditorApp.java b/students/23K9006/23K9006-p16/src/main/java/ru/mirea/practice/s0000001/1/1/TextEditorApp.java new file mode 100644 index 000000000..22b2f743b --- /dev/null +++ b/students/23K9006/23K9006-p16/src/main/java/ru/mirea/practice/s0000001/1/1/TextEditorApp.java @@ -0,0 +1,98 @@ +package ru.mirea.practice.s0000001; + +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class TextEditorApp { + private JTextArea textArea; + + public TextEditorApp() { + JFrame frame = new JFrame("Text Editor"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(500, 400); + + textArea = new JTextArea(); + textArea.setFont(new Font("MS Sans Serif", Font.PLAIN, 14)); + JScrollPane scrollPane = new JScrollPane(textArea); + frame.add(scrollPane, BorderLayout.CENTER); + + JMenuBar menuBar = new JMenuBar(); + + JMenu colorMenu = new JMenu("Цвет"); + String[] colors = {"Синий", "Красный", "Черный"}; + for (String color : colors) { + JMenuItem menuItem = new JMenuItem(color); + menuItem.addActionListener(new ColorActionListener()); + colorMenu.add(menuItem); + } + menuBar.add(colorMenu); + + JMenu fontMenu = new JMenu("Шрифт"); + String[] fonts = {"Times New Roman", "MS Sans Serif", "Courier New"}; + for (String font : fonts) { + JMenuItem menuItem = new JMenuItem(font); + menuItem.addActionListener(new FontActionListener()); + fontMenu.add(menuItem); + } + menuBar.add(fontMenu); + + frame.setJMenuBar(menuBar); + frame.setVisible(true); + } + + private class ColorActionListener implements ActionListener { + @Override + public void actionPerformed(ActionEvent e) { + String selectedColor = e.getActionCommand(); + switch (selectedColor) { + case "Синий": + textArea.setForeground(Color.BLUE); + break; + case "Красный": + textArea.setForeground(Color.RED); + break; + case "Черный": + textArea.setForeground(Color.BLACK); + break; + default: + textArea.setForeground(Color.BLACK); + break; + } + } + } + + private class FontActionListener implements ActionListener { + @Override + public void actionPerformed(ActionEvent e) { + String selectedFont = e.getActionCommand(); + switch (selectedFont) { + case "Times New Roman": + textArea.setFont(new Font("Times New Roman", Font.PLAIN, 14)); + break; + case "MS Sans Serif": + textArea.setFont(new Font("MS Sans Serif", Font.PLAIN, 14)); + break; + case "Courier New": + textArea.setFont(new Font("Courier New", Font.PLAIN, 14)); + break; + default: + textArea.setFont(new Font("MS Sans Serif", Font.PLAIN, 14)); + break; + } + } + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(TextEditorApp::new); + } +} diff --git a/students/23K9006/23K9006-p17/pom.xml b/students/23K9006/23K9006-p17/pom.xml new file mode 100644 index 000000000..a406917e0 --- /dev/null +++ b/students/23K9006/23K9006-p17/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p17 + семнадцатое задание + diff --git a/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java new file mode 100644 index 000000000..b599a0b7f --- /dev/null +++ b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java @@ -0,0 +1,61 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + StudentList studentList = new StudentList(); + Scanner scanner = new Scanner(System.in); + int choice; + + try { + do { + System.out.println("\nМеню:"); + System.out.println("1. Добавить студента"); + System.out.println("2. Удалить студента"); + System.out.println("3. Показать всех студентов"); + System.out.println("4. Очистить список студентов"); + System.out.println("5. Проверить, пуст ли список"); + System.out.println("6. Выход"); + System.out.print("Выберите действие: "); + choice = scanner.nextInt(); + scanner.nextLine(); + + switch (choice) { + case 1: + Student student = new Student(); + student.readAttributes(); + studentList.addStudent(student); + break; + case 2: + System.out.print("Введите имя студента для удаления: "); + String nameToRemove = scanner.nextLine(); + studentList.removeStudent(nameToRemove); + break; + case 3: + studentList.displayStudents(); + break; + case 4: + studentList.clear(); + System.out.println("Список студентов очищен."); + break; + case 5: + System.out.println("Список пуст: " + studentList.isEmpty()); + break; + case 6: + System.out.println("Выход из программы."); + break; + default: + System.out.println("Неверный выбор. Попробуйте снова."); + break; + } + } while (choice != 6); + } finally { + scanner.close(); + } + } +} diff --git a/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Student.java b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Student.java new file mode 100644 index 000000000..7f22d876d --- /dev/null +++ b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/Student.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +class Student { + + private String name; + private int age; + Student prev; + Student next; + + public void readAttributes() { + Scanner scanner = new Scanner(System.in); + try { + System.out.print("Введите имя студента: "); + this.name = scanner.nextLine(); + System.out.print("Введите возраст студента: "); + this.age = scanner.nextInt(); + scanner.nextLine(); + } finally { + scanner.close(); + } + } + + public void displayAttributes() { + System.out.println("Имя: " + name + ", Возраст: " + age); + } + + public String getName() { + return name; + } +} diff --git a/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/StudentList.java b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/StudentList.java new file mode 100644 index 000000000..f729f4ce4 --- /dev/null +++ b/students/23K9006/23K9006-p17/src/main/java/ru/mirea/practice/s0000001/1/1/StudentList.java @@ -0,0 +1,64 @@ +package ru.mirea.practice.s0000001; + +class StudentList { + + private Student head; + private Student tail; + + public StudentList() { + head = null; + tail = null; + } + + public void addStudent(Student student) { + if (head == null) { + head = student; + tail = student; + } else { + tail.next = student; + student.prev = tail; + tail = student; + } + } + + public void removeStudent(String name) { + Student current = head; + while (current != null) { + if (current.getName().equals(name)) { + if (current.prev != null) { + current.prev.next = current.next; + } else { + head = current.next; + } + if (current.next != null) { + current.next.prev = current.prev; + } else { + tail = current.prev; + } + return; + } + current = current.next; + } + } + + public void displayStudents() { + if (isEmpty()) { + System.out.println("Список студентов пуст."); + } else { + Student current = head; + while (current != null) { + current.displayAttributes(); + current = current.next; + } + } + } + + public void clear() { + head = null; + tail = null; + } + + public boolean isEmpty() { + return head == null; + } +} diff --git a/students/23K9006/23K9006-p19/pom.xml b/students/23K9006/23K9006-p19/pom.xml new file mode 100644 index 000000000..f9cbdc1bf --- /dev/null +++ b/students/23K9006/23K9006-p19/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p19 + девятнадцатое задание + diff --git a/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/InvalidTaxIdException.java b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/InvalidTaxIdException.java new file mode 100644 index 000000000..6688ffdf1 --- /dev/null +++ b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/InvalidTaxIdException.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +public class InvalidTaxIdException extends Exception { + public InvalidTaxIdException(String message) { + super(message); + } +} diff --git a/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/OnlineUser.java b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/OnlineUser.java new file mode 100644 index 000000000..384f4ee97 --- /dev/null +++ b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/OnlineUser.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s0000001; + +public class OnlineUser extends User { + + public OnlineUser(String name, String taxId) { + super(name, taxId); + } + + @Override + public void checkTaxId() throws InvalidTaxIdException { + if (taxId == null || !taxId.matches("\\d{10}") && !taxId.matches("\\d{12}")) { + throw new InvalidTaxIdException("Недействительный ИНН: " + taxId); + } + } +} diff --git a/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/PurchaseProcess.java b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/PurchaseProcess.java new file mode 100644 index 000000000..c0b7ed43c --- /dev/null +++ b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/PurchaseProcess.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +public final class PurchaseProcess { + + private PurchaseProcess() { + + } + + public static void main(String[] args) { + try (Scanner inputScanner = new Scanner(System.in)) { + System.out.print("Введите полное имя пользователя: "); + String userName = inputScanner.nextLine(); + + System.out.print("Введите номер ИНН пользователя: "); + String userTaxId = inputScanner.nextLine(); + + OnlineUser onlineUser = new OnlineUser(userName, userTaxId); + + try { + onlineUser.checkTaxId(); + System.out.println("Покупка успешно оформлена для пользователя: " + userName); + } catch (InvalidTaxIdException e) { + System.out.println(e.getMessage()); + } + } + } +} diff --git a/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/User.java b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/User.java new file mode 100644 index 000000000..da0976196 --- /dev/null +++ b/students/23K9006/23K9006-p19/src/main/java/ru/mirea/practice/s0000001/1/1/User.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +public abstract class User { + protected String name; + protected String taxId; + + public User(String name, String taxId) { + this.name = name; + this.taxId = taxId; + } + + public abstract void checkTaxId() throws InvalidTaxIdException; +} diff --git a/students/23K9006/23K9006-p20/pom.xml b/students/23K9006/23K9006-p20/pom.xml new file mode 100644 index 000000000..0b00cdffd --- /dev/null +++ b/students/23K9006/23K9006-p20/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p20 + двадцатое задание + diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Calculator.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Calculator.java new file mode 100644 index 000000000..841d0017a --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Calculator.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s0000001; + +public final class Calculator { + + private Calculator() { + // Private constructor to prevent instantiation + } + + public static double sum(T a, V b) { + return a.doubleValue() + b.doubleValue(); + } + + public static double subtraction(T a, V b) { + return a.doubleValue() - b.doubleValue(); + } + + public static double multiply(T a, V b) { + return a.doubleValue() * b.doubleValue(); + } + + public static double divide(T a, V b) { + if (b.doubleValue() == 0) { + throw new ArithmeticException("Cannot divide by zero."); + } + return a.doubleValue() / b.doubleValue(); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/GenericClass.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/GenericClass.java new file mode 100644 index 000000000..ce4932e68 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/GenericClass.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s0000001; + +abstract class GenericClass { + protected T firstValue; + protected V secondValue; + protected K thirdValue; + + public GenericClass(T firstValue, V secondValue, K thirdValue) { + this.firstValue = firstValue; + this.secondValue = secondValue; + this.thirdValue = thirdValue; + } + + public T getFirstValue() { + return firstValue; + } + + public V getSecondValue() { + return secondValue; + } + + public K getThirdValue() { + return thirdValue; + } + + public void displayClassNames() { + System.out.println("Тип первого значения: " + firstValue.getClass().getName()); + System.out.println("Тип второго значения: " + secondValue.getClass().getName()); + System.out.println("Тип третьего значения: " + thirdValue.getClass().getName()); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/IntegerMinMax.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/IntegerMinMax.java new file mode 100644 index 000000000..9ffae2241 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/IntegerMinMax.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class IntegerMinMax extends MinMax { + public IntegerMinMax(Integer[] array) { + super(array); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java new file mode 100644 index 000000000..d0ebc0537 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + // Private constructor to prevent instantiation + } + + public static void main(String[] args) { + Integer[] intArray = {5, 3, 8, 1, 4}; + IntegerMinMax intMinMax = new IntegerMinMax(intArray); + System.out.println("Minimum: " + intMinMax.getMin()); + System.out.println("Maximum: " + intMinMax.getMax()); + + String[] strArray = {"apple", "banana", "kiwi", "orange"}; + StringMinMax strMinMax = new StringMinMax(strArray); + System.out.println("Minimum: " + strMinMax.getMin()); + System.out.println("Maximum: " + strMinMax.getMax()); + + System.out.println("Sum: " + Calculator.sum(5, 10.5)); + System.out.println("Subtraction: " + Calculator.subtraction(10.5, 5)); + System.out.println("Multiplication: " + Calculator.multiply(3, 4.5)); + System.out.println("Division: " + Calculator.divide(10, 2)); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java new file mode 100644 index 000000000..d60035299 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/Main1.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main1 { + + private Main1() { + // Private constructor to prevent instantiation + } + + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MinMax.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MinMax.java new file mode 100644 index 000000000..a84e378a6 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MinMax.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +abstract class MinMax> { + protected T[] array; + + public MinMax(T[] array) { + this.array = array; + } + + public T getMin() { + T min = array[0]; + for (T element : array) { + if (element.compareTo(min) < 0) { + min = element; + } + } + return min; + } + + public T getMax() { + T max = array[0]; + for (T element : array) { + if (element.compareTo(max) > 0) { + max = element; + } + } + return max; + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MyGenericClass.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MyGenericClass.java new file mode 100644 index 000000000..7f12435f8 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/MyGenericClass.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class MyGenericClass extends GenericClass { + public MyGenericClass(String firstValue, Integer secondValue, Double thirdValue) { + super(firstValue, secondValue, thirdValue); + } +} diff --git a/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/StringMinMax.java b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/StringMinMax.java new file mode 100644 index 000000000..919b657f8 --- /dev/null +++ b/students/23K9006/23K9006-p20/src/main/java/ru/mirea/practice/s0000001/1/1/StringMinMax.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001; + +class StringMinMax extends MinMax { + public StringMinMax(String[] array) { + super(array); + } +} diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index 3265cdc88..ad2e2d532 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -23,5 +23,12 @@ 23K9006-p08 23K9006-p09 23K9006-p10 + 23K9006-p11 + 23K9006-p13 + 23K9006-p14 + 23K9006-p16 + 23K9006-p17 + 23K9006-p19 + 23K9006-p20 From 307c868c06889eeb4a1eddfab1f2c4c79b2ddcb8 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Tue, 3 Dec 2024 16:07:47 +0300 Subject: [PATCH 11/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=961,2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p21/pom.xml | 13 +++ .../practice/s0000001/1/GenericArray.java | 29 ++++++ .../ru/mirea/practice/s0000001/1/Main1.java | 21 ++++ .../ru/mirea/practice/s0000001/1/Main2.java | 21 ++++ students/23K9006/23K9006-p22/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Main1.java | 9 ++ .../practice/s0000001/1/RPnCalculator.java | 44 +++++++++ students/23K9006/23K9006-p23/pom.xml | 13 +++ .../mirea/practice/s0000001/1/ArrayQueue.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueAdt.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueModule.java | 60 ++++++++++++ .../ru/mirea/practice/s0000001/1/Main.java | 25 +++++ students/23K9006/23K9006-p24/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Complex.java | 24 +++++ .../s0000001/1/ComplexAbstractFactory.java | 8 ++ .../practice/s0000001/1/ConcreteFactory.java | 13 +++ .../ru/mirea/practice/s0000001/1/Main.java | 13 +++ students/23K9006/23K9006-p25/pom.xml | 13 +++ .../s0000001/1/StringManipulator.java | 39 ++++++++ students/23K9006/23K9006-p26/pom.xml | 13 +++ .../practice/s0000001/1/ArrayInverter.java | 28 ++++++ students/23K9006/23K9006-p27/pom.xml | 13 +++ .../mirea/practice/s0000001/1/HashTable.java | 73 ++++++++++++++ .../practice/s0000001/1/HashTableDemo.java | 34 +++++++ .../practice/s0000001/1/HashTableTest.java | 35 +++++++ students/23K9006/23K9006-p28/pom.xml | 13 +++ .../s0000001/1/SetConversionDemo.java | 23 +++++ students/23K9006/23K9006-p29/pom.xml | 13 +++ .../mirea/practice/s0000001/1/CityRoads.java | 29 ++++++ students/23K9006/23K9006-p30/pom.xml | 13 +++ .../mirea/practice/s0000001/1/BinaryTree.java | 97 +++++++++++++++++++ .../practice/s0000001/1/BinaryTreeDemo.java | 25 +++++ students/23K9006/pom.xml | 10 ++ 33 files changed, 910 insertions(+) create mode 100644 students/23K9006/23K9006-p21/pom.xml create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java create mode 100644 students/23K9006/23K9006-p22/pom.xml create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java create mode 100644 students/23K9006/23K9006-p23/pom.xml create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p24/pom.xml create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p25/pom.xml create mode 100644 students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java create mode 100644 students/23K9006/23K9006-p26/pom.xml create mode 100644 students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java create mode 100644 students/23K9006/23K9006-p27/pom.xml create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java create mode 100644 students/23K9006/23K9006-p28/pom.xml create mode 100644 students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java create mode 100644 students/23K9006/23K9006-p29/pom.xml create mode 100644 students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java create mode 100644 students/23K9006/23K9006-p30/pom.xml create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java diff --git a/students/23K9006/23K9006-p21/pom.xml b/students/23K9006/23K9006-p21/pom.xml new file mode 100644 index 000000000..35ff78ba0 --- /dev/null +++ b/students/23K9006/23K9006-p21/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p21 + двадцать первое задание + diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java new file mode 100644 index 000000000..8f223bde6 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +//второй main + +public class GenericArray { + private T[] array; + + public GenericArray(T[] array) { + this.array = array; + } + + public T get(int index) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + return array[index]; + } + + public void set(int index, T value) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + array[index] = value; + } + + public int size() { + return array.length; + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..bd78f1429 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; +import java.util.List; + +abstract class Main1 { + public static List convertArrayToList(T[] array) { + return Arrays.asList(array); + } + + public static void main(String[] args) { + String[] stringArray = {"one", "two", "three"}; + Integer[] intArray = {1, 2, 3}; + + List stringList = convertArrayToList(stringArray); + List intList = convertArrayToList(intArray); + + System.out.println(stringList); + System.out.println(intList); + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java new file mode 100644 index 000000000..5355b2d0a --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +abstract class Main2 { + public static void main(String[] args) { + Integer[] intArray = {1, 2, 3, 4, 5}; + GenericArray genericIntArray = new GenericArray<>(intArray); + + System.out.println("Элемент по индексу 2: " + genericIntArray.get(2)); + genericIntArray.set(2, 10); + System.out.println("Обновленный элемент по индексу 2: " + genericIntArray.get(2)); + System.out.println("Размер массива: " + genericIntArray.size()); + + String[] stringArray = {"A", "B", "C"}; + GenericArray genericStringArray = new GenericArray<>(stringArray); + + System.out.println("Элемент по индексу 0: " + genericStringArray.get(0)); + genericStringArray.set(0, "Z"); + System.out.println("Обновленный элемент по индексу 0: " + genericStringArray.get(0)); + System.out.println("Размер массива: " + genericStringArray.size()); + } +} diff --git a/students/23K9006/23K9006-p22/pom.xml b/students/23K9006/23K9006-p22/pom.xml new file mode 100644 index 000000000..d7e0bf479 --- /dev/null +++ b/students/23K9006/23K9006-p22/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p22 + двадцать второе задание + diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..e1d394dbb --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s0000001; + +abstract class Main1 { + public static void main(String[] args) { + String rpnExpression = "3 4 + 2 * 7 /"; + double result = RPnCalculator.calculate(rpnExpression); + System.out.println("Результат: " + result); + } +} diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java new file mode 100644 index 000000000..ab93aa9f2 --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class RPnCalculator { + public static double calculate(String expression) { + Stack stack = new Stack<>(); + String[] tokens = expression.split("\\s+"); + + for (String token : tokens) { + if (isOperator(token)) { + double b = stack.pop(); + double a = stack.pop(); + stack.push(applyOperation(a, b, token)); + } else { + stack.push(Double.parseDouble(token)); + } + } + + return stack.pop(); + } + + private static boolean isOperator(String token) { + return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token); + } + + private static double applyOperation(double a, double b, String operator) { + switch (operator) { + case "+": + return a + b; + case "-": + return a - b; + case "*": + return a * b; + case "/": + if (b == 0) { + throw new ArithmeticException("Деление на ноль"); + } + return a / b; + default: + throw new IllegalArgumentException("Недопустимый оператор: " + operator); + } + } +} diff --git a/students/23K9006/23K9006-p23/pom.xml b/students/23K9006/23K9006-p23/pom.xml new file mode 100644 index 000000000..4bba3a87b --- /dev/null +++ b/students/23K9006/23K9006-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p23 + двадцать третье задание + diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java new file mode 100644 index 000000000..027dfa4c3 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueue { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public int size() { + return size; + } + + public boolean isEmpty() { + return size == 0; + } + + public void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java new file mode 100644 index 000000000..70237c8d5 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueueAdt { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public static void enqueue(ArrayQueueAdt queue, Object element) { + ensureCapacity(queue, queue.size + 1); + queue.elements[queue.tail] = element; + queue.tail = (queue.tail + 1) % queue.elements.length; + queue.size++; + } + + public static Object element(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + return queue.elements[queue.head]; + } + + public static Object dequeue(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = queue.elements[queue.head]; + queue.elements[queue.head] = null; + queue.head = (queue.head + 1) % queue.elements.length; + queue.size--; + return result; + } + + public static int size(ArrayQueueAdt queue) { + return queue.size; + } + + public static boolean isEmpty(ArrayQueueAdt queue) { + return queue.size == 0; + } + + public static void clear(ArrayQueueAdt queue) { + queue.elements = new Object[10]; + queue.head = 0; + queue.tail = 0; + queue.size = 0; + } + + private static void ensureCapacity(ArrayQueueAdt queue, int capacity) { + if (capacity > queue.elements.length) { + Object[] newArray = new Object[2 * queue.elements.length]; + for (int i = 0; i < queue.size; i++) { + newArray[i] = queue.elements[(queue.head + i) % queue.elements.length]; + } + queue.elements = newArray; + queue.head = 0; + queue.tail = queue.size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java new file mode 100644 index 000000000..5c84fd3bf --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +abstract class ArrayQueueModule { + private static Object[] elements = new Object[10]; + private static int head = 0; + private static int tail = 0; + private static int size = 0; + + public static void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public static Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public static Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public static int size() { + return size; + } + + public static boolean isEmpty() { + return size == 0; + } + + public static void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private static void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..4bb6f9d33 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + // ArrayQueueModule + ArrayQueueModule.enqueue(10); + ArrayQueueModule.enqueue(20); + System.out.println(ArrayQueueModule.dequeue()); + System.out.println(ArrayQueueModule.size()); + + // ArrayQueueADT + ArrayQueueAdt adtQueue = new ArrayQueueAdt(); + ArrayQueueAdt.enqueue(adtQueue, 10); + ArrayQueueAdt.enqueue(adtQueue, 20); + System.out.println(ArrayQueueAdt.dequeue(adtQueue)); + System.out.println(ArrayQueueAdt.size(adtQueue)); + + // ArrayQueue + ArrayQueue queue = new ArrayQueue(); + queue.enqueue(10); + queue.enqueue(20); + System.out.println(queue.dequeue()); + System.out.println(queue.size()); + } +} diff --git a/students/23K9006/23K9006-p24/pom.xml b/students/23K9006/23K9006-p24/pom.xml new file mode 100644 index 000000000..cdb26a8f2 --- /dev/null +++ b/students/23K9006/23K9006-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p24 + двадцать четвертое задание + diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java new file mode 100644 index 000000000..c5445accd --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +public class Complex { + private final int real; + private final int image; + + public Complex(int real, int image) { + this.real = real; + this.image = image; + } + + public int getReal() { + return real; + } + + public int getImage() { + return image; + } + + @Override + public String toString() { + return real + " + " + image + "i"; + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java new file mode 100644 index 000000000..8f81f98cc --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s0000001; + +public interface ComplexAbstractFactory { + + Complex createComplex(); + + Complex createComplex(int real, int image); +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java new file mode 100644 index 000000000..ac9eb721e --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +public class ConcreteFactory implements ComplexAbstractFactory { + @Override + public Complex createComplex() { + return new Complex(0, 0); + } + + @Override + public Complex createComplex(int real, int image) { + return new Complex(real, image); + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..3de59d94f --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + ComplexAbstractFactory factory = new ConcreteFactory(); + + Complex defaultComplex = factory.createComplex(); + System.out.println("Default complex number: " + defaultComplex); + + Complex customComplex = factory.createComplex(5, 10); + System.out.println("Custom complex number: " + customComplex); + } +} diff --git a/students/23K9006/23K9006-p25/pom.xml b/students/23K9006/23K9006-p25/pom.xml new file mode 100644 index 000000000..d8abc7357 --- /dev/null +++ b/students/23K9006/23K9006-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p25 + двадцать пятое задание + diff --git a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java new file mode 100644 index 000000000..6a78208e6 --- /dev/null +++ b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +abstract class StringManipulator { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите строку для манипуляции:"); + String input = scanner.nextLine(); + + System.out.println("Введите регулярное выражение для разбиения строки:"); + String regex = scanner.nextLine(); + + System.out.println("Результаты разбиения строки:"); + String[] splitResult = input.split(regex); + for (int i = 0; i < splitResult.length; i++) { + System.out.println((i + 1) + ": " + splitResult[i]); + } + + System.out.println("\nВведите регулярное выражение для поиска в строке:"); + regex = scanner.nextLine(); + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(input); + + System.out.println("Результаты поиска в строке:"); + boolean found = false; + while (matcher.find()) { + System.out.println("Найдено: " + matcher.group() + " (начало: " + matcher.start() + ", конец: " + matcher.end() + ")"); + found = true; + } + + if (!found) { + System.out.println("Совпадений не найдено."); + } + } + } +} diff --git a/students/23K9006/23K9006-p26/pom.xml b/students/23K9006/23K9006-p26/pom.xml new file mode 100644 index 000000000..6ebf7dfbc --- /dev/null +++ b/students/23K9006/23K9006-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p26 + двадцать шестое задание + diff --git a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java new file mode 100644 index 000000000..f4c0da3a3 --- /dev/null +++ b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class ArrayInverter { + public static void invertArray(int[] array) { + Stack stack = new Stack<>(); + for (int num : array) { + stack.push(num); + } + for (int i = 0; i < array.length; i++) { + array[i] = stack.pop(); + } + } + + public static void main(String[] args) { + int[] array = {1, 2, 3, 4, 5}; + System.out.println("Исходный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + invertArray(array); + System.out.println("\nИнвертированный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + } +} diff --git a/students/23K9006/23K9006-p27/pom.xml b/students/23K9006/23K9006-p27/pom.xml new file mode 100644 index 000000000..daad6b28c --- /dev/null +++ b/students/23K9006/23K9006-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p27 + двадцать седьмое задание + diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java new file mode 100644 index 000000000..3ec4dcc80 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java @@ -0,0 +1,73 @@ +package ru.mirea.practice.s0000001; + +import java.util.LinkedList; + +public class HashTable { + private static final int TABLE_SIZE = 256; + private final LinkedList[] table; + + public HashTable() { + table = new LinkedList[TABLE_SIZE]; + hashtabInit(); + } + + private static class Entry { + final String key; + final String value; + + Entry(String key, String value) { + this.key = key; + this.value = value; + } + } + + private int hashtabHash(String key) { + int hash = 0; + for (char c : key.toCharArray()) { + hash = (hash * 31 + c) % TABLE_SIZE; + } + return hash; + } + + private void hashtabInit() { + for (int i = 0; i < TABLE_SIZE; i++) { + table[i] = new LinkedList<>(); + } + } + + public void hashtabAdd(String key, String value) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + throw new IllegalArgumentException("Key already exists: " + key); + } + } + table[hash].add(new Entry(key, value)); + } + + public String hashtabLookup(String key) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + return entry.value; + } + } + return null; + } + + public void hashtabDelete(String key) { + int hash = hashtabHash(key); + table[hash].removeIf(entry -> entry.key.equals(key)); + } + + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + + System.out.println("Lookup 'two': " + hashtable.hashtabLookup("two")); + hashtable.hashtabDelete("two"); + System.out.println("Lookup 'two' after deletion: " + hashtable.hashtabLookup("two")); + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java new file mode 100644 index 000000000..5e944032c --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableDemo { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + System.out.println("\nSearch for the key 'three':"); + String value = hashtable.hashtabLookup("three"); + if (value != null) { + System.out.println("'three' found with value: " + value); + } else { + System.out.println("'three' not found."); + } + + System.out.println("\nDeleting the key 'three'..."); + hashtable.hashtabDelete("three"); + + System.out.println("\nDictionary after deleting 'three':"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java new file mode 100644 index 000000000..f81f731f7 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableTest { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + hashtable.hashtabAdd("six", "6"); + hashtable.hashtabAdd("seven", "7"); + hashtable.hashtabAdd("eight", "8"); + hashtable.hashtabAdd("nine", "9"); + hashtable.hashtabAdd("ten", "10"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabDelete("five"); + System.out.println("\nDictionary after deleting 'five':"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabAdd("five", "15"); + System.out.println("\nDictionary after adding 'five' with new value:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p28/pom.xml b/students/23K9006/23K9006-p28/pom.xml new file mode 100644 index 000000000..ff15112a1 --- /dev/null +++ b/students/23K9006/23K9006-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p28 + двадцать восьмое задание + diff --git a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java new file mode 100644 index 000000000..4997b6738 --- /dev/null +++ b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s0000001; + +import java.util.HashSet; +import java.util.TreeSet; + +abstract class SetConversionDemo { + public static void main(String[] args) { + HashSet hashSet = new HashSet<>(); + hashSet.add(25); + hashSet.add(10); + hashSet.add(5); + hashSet.add(20); + hashSet.add(15); + + System.out.println("Original HashSet:"); + System.out.println(hashSet); + + TreeSet treeSet = new TreeSet<>(hashSet); + + System.out.println("\nConverted TreeSet:"); + System.out.println(treeSet); + } +} diff --git a/students/23K9006/23K9006-p29/pom.xml b/students/23K9006/23K9006-p29/pom.xml new file mode 100644 index 000000000..52969f901 --- /dev/null +++ b/students/23K9006/23K9006-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p29 + двадцать девятое задание + diff --git a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java new file mode 100644 index 000000000..be6368738 --- /dev/null +++ b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +abstract class CityRoads { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + int n = scanner.nextInt(); + + int[][] matrix = new int[n][n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + matrix[i][j] = scanner.nextInt(); + } + } + + int roadCount = 0; + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (matrix[i][j] == 1) { + roadCount++; + } + } + } + + System.out.println(roadCount); + } + } +} diff --git a/students/23K9006/23K9006-p30/pom.xml b/students/23K9006/23K9006-p30/pom.xml new file mode 100644 index 000000000..98ac62968 --- /dev/null +++ b/students/23K9006/23K9006-p30/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p30 + тридцатое задание + diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java new file mode 100644 index 000000000..820cf86b8 --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java @@ -0,0 +1,97 @@ +package ru.mirea.practice.s0000001; + +public class BinaryTree { + static class Node { + int value; + Node left; + Node right; + + Node(int value) { + this.value = value; + this.left = null; + this.right = null; + } + } + + private Node root; + + public void add(int value) { + root = addRecursive(root, value); + } + + private Node addRecursive(Node current, int value) { + if (current == null) { + return new Node(value); + } + if (value < current.value) { + current.left = addRecursive(current.left, value); + } else if (value > current.value) { + current.right = addRecursive(current.right, value); + } + return current; + } + + public boolean contains(int value) { + return containsRecursive(root, value); + } + + private boolean containsRecursive(Node current, int value) { + if (current == null) { + return false; + } + if (value == current.value) { + return true; + } + return value < current.value + ? containsRecursive(current.left, value) + : containsRecursive(current.right, value); + } + + public void delete(int value) { + root = deleteRecursive(root, value); + } + + private Node deleteRecursive(Node current, int value) { + if (current == null) { + return null; + } + if (value == current.value) { + if (current.left == null && current.right == null) { + return null; + } + if (current.right == null) { + return current.left; + } + if (current.left == null) { + return current.right; + } + int smallestValue = findSmallestValue(current.right); + current.value = smallestValue; + current.right = deleteRecursive(current.right, smallestValue); + return current; + } + if (value < current.value) { + current.left = deleteRecursive(current.left, value); + return current; + } + current.right = deleteRecursive(current.right, value); + return current; + } + + private int findSmallestValue(Node root) { + return root.left == null ? root.value : findSmallestValue(root.left); + } + + public void traverseInOrder() { + traverseInOrderRecursive(root); + System.out.println(); + } + + private void traverseInOrderRecursive(Node node) { + if (node != null) { + traverseInOrderRecursive(node.left); + System.out.print(node.value + " "); + traverseInOrderRecursive(node.right); + } + } +} diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java new file mode 100644 index 000000000..72f67d78e --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class BinaryTreeDemo { + public static void main(String[] args) { + BinaryTree tree = new BinaryTree(); + tree.add(50); + tree.add(30); + tree.add(70); + tree.add(20); + tree.add(40); + tree.add(60); + tree.add(80); + + System.out.println("In-order traversal:"); + tree.traverseInOrder(); + + System.out.println("Tree contains 40: " + tree.contains(40)); + System.out.println("Tree contains 90: " + tree.contains(90)); + + System.out.println("Deleting 40..."); + tree.delete(40); + System.out.println("In-order traversal after deletion:"); + tree.traverseInOrder(); + } +} diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index ad2e2d532..f0920b757 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -30,5 +30,15 @@ 23K9006-p17 23K9006-p19 23K9006-p20 + 23K9006-p21 + 23K9006-p22 + 23K9006-p23 + 23K9006-p24 + 23K9006-p25 + 23K9006-p26 + 23K9006-p27 + 23K9006-p28 + 23K9006-p29 + 23K9006-p30 From 05b143d7f50b7900f5566d4d361d6bdbf9b831e4 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Sun, 15 Dec 2024 23:38:12 +0300 Subject: [PATCH 12/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=9621-30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p21/pom.xml | 13 --- .../practice/s0000001/1/GenericArray.java | 29 ------ .../ru/mirea/practice/s0000001/1/Main1.java | 21 ---- .../ru/mirea/practice/s0000001/1/Main2.java | 21 ---- students/23K9006/23K9006-p22/pom.xml | 13 --- .../ru/mirea/practice/s0000001/1/Main1.java | 9 -- .../practice/s0000001/1/RPnCalculator.java | 44 --------- students/23K9006/23K9006-p23/pom.xml | 13 --- .../mirea/practice/s0000001/1/ArrayQueue.java | 60 ------------ .../practice/s0000001/1/ArrayQueueAdt.java | 60 ------------ .../practice/s0000001/1/ArrayQueueModule.java | 60 ------------ .../ru/mirea/practice/s0000001/1/Main.java | 25 ----- students/23K9006/23K9006-p24/pom.xml | 13 --- .../ru/mirea/practice/s0000001/1/Complex.java | 24 ----- .../s0000001/1/ComplexAbstractFactory.java | 8 -- .../practice/s0000001/1/ConcreteFactory.java | 13 --- .../ru/mirea/practice/s0000001/1/Main.java | 13 --- students/23K9006/23K9006-p25/pom.xml | 13 --- .../s0000001/1/StringManipulator.java | 39 -------- students/23K9006/23K9006-p26/pom.xml | 13 --- .../practice/s0000001/1/ArrayInverter.java | 28 ------ students/23K9006/23K9006-p27/pom.xml | 13 --- .../mirea/practice/s0000001/1/HashTable.java | 73 -------------- .../practice/s0000001/1/HashTableDemo.java | 34 ------- .../practice/s0000001/1/HashTableTest.java | 35 ------- students/23K9006/23K9006-p28/pom.xml | 13 --- .../s0000001/1/SetConversionDemo.java | 23 ----- students/23K9006/23K9006-p29/pom.xml | 13 --- .../mirea/practice/s0000001/1/CityRoads.java | 29 ------ students/23K9006/23K9006-p30/pom.xml | 13 --- .../mirea/practice/s0000001/1/BinaryTree.java | 97 ------------------- .../practice/s0000001/1/BinaryTreeDemo.java | 25 ----- students/23K9006/pom.xml | 10 +- 33 files changed, 1 insertion(+), 909 deletions(-) delete mode 100644 students/23K9006/23K9006-p21/pom.xml delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java delete mode 100644 students/23K9006/23K9006-p22/pom.xml delete mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java delete mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java delete mode 100644 students/23K9006/23K9006-p23/pom.xml delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java delete mode 100644 students/23K9006/23K9006-p24/pom.xml delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java delete mode 100644 students/23K9006/23K9006-p25/pom.xml delete mode 100644 students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java delete mode 100644 students/23K9006/23K9006-p26/pom.xml delete mode 100644 students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java delete mode 100644 students/23K9006/23K9006-p27/pom.xml delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java delete mode 100644 students/23K9006/23K9006-p28/pom.xml delete mode 100644 students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java delete mode 100644 students/23K9006/23K9006-p29/pom.xml delete mode 100644 students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java delete mode 100644 students/23K9006/23K9006-p30/pom.xml delete mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java delete mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java diff --git a/students/23K9006/23K9006-p21/pom.xml b/students/23K9006/23K9006-p21/pom.xml deleted file mode 100644 index 35ff78ba0..000000000 --- a/students/23K9006/23K9006-p21/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p21 - двадцать первое задание - diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java deleted file mode 100644 index 8f223bde6..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.mirea.practice.s0000001; - -//второй main - -public class GenericArray { - private T[] array; - - public GenericArray(T[] array) { - this.array = array; - } - - public T get(int index) { - if (index < 0 || index >= array.length) { - throw new IndexOutOfBoundsException("Invalid index: " + index); - } - return array[index]; - } - - public void set(int index, T value) { - if (index < 0 || index >= array.length) { - throw new IndexOutOfBoundsException("Invalid index: " + index); - } - array[index] = value; - } - - public int size() { - return array.length; - } -} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java deleted file mode 100644 index bd78f1429..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Arrays; -import java.util.List; - -abstract class Main1 { - public static List convertArrayToList(T[] array) { - return Arrays.asList(array); - } - - public static void main(String[] args) { - String[] stringArray = {"one", "two", "three"}; - Integer[] intArray = {1, 2, 3}; - - List stringList = convertArrayToList(stringArray); - List intList = convertArrayToList(intArray); - - System.out.println(stringList); - System.out.println(intList); - } -} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java deleted file mode 100644 index 5355b2d0a..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main2 { - public static void main(String[] args) { - Integer[] intArray = {1, 2, 3, 4, 5}; - GenericArray genericIntArray = new GenericArray<>(intArray); - - System.out.println("Элемент по индексу 2: " + genericIntArray.get(2)); - genericIntArray.set(2, 10); - System.out.println("Обновленный элемент по индексу 2: " + genericIntArray.get(2)); - System.out.println("Размер массива: " + genericIntArray.size()); - - String[] stringArray = {"A", "B", "C"}; - GenericArray genericStringArray = new GenericArray<>(stringArray); - - System.out.println("Элемент по индексу 0: " + genericStringArray.get(0)); - genericStringArray.set(0, "Z"); - System.out.println("Обновленный элемент по индексу 0: " + genericStringArray.get(0)); - System.out.println("Размер массива: " + genericStringArray.size()); - } -} diff --git a/students/23K9006/23K9006-p22/pom.xml b/students/23K9006/23K9006-p22/pom.xml deleted file mode 100644 index d7e0bf479..000000000 --- a/students/23K9006/23K9006-p22/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p22 - двадцать второе задание - diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java deleted file mode 100644 index e1d394dbb..000000000 --- a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main1 { - public static void main(String[] args) { - String rpnExpression = "3 4 + 2 * 7 /"; - double result = RPnCalculator.calculate(rpnExpression); - System.out.println("Результат: " + result); - } -} diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java deleted file mode 100644 index ab93aa9f2..000000000 --- a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Stack; - -abstract class RPnCalculator { - public static double calculate(String expression) { - Stack stack = new Stack<>(); - String[] tokens = expression.split("\\s+"); - - for (String token : tokens) { - if (isOperator(token)) { - double b = stack.pop(); - double a = stack.pop(); - stack.push(applyOperation(a, b, token)); - } else { - stack.push(Double.parseDouble(token)); - } - } - - return stack.pop(); - } - - private static boolean isOperator(String token) { - return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token); - } - - private static double applyOperation(double a, double b, String operator) { - switch (operator) { - case "+": - return a + b; - case "-": - return a - b; - case "*": - return a * b; - case "/": - if (b == 0) { - throw new ArithmeticException("Деление на ноль"); - } - return a / b; - default: - throw new IllegalArgumentException("Недопустимый оператор: " + operator); - } - } -} diff --git a/students/23K9006/23K9006-p23/pom.xml b/students/23K9006/23K9006-p23/pom.xml deleted file mode 100644 index 4bba3a87b..000000000 --- a/students/23K9006/23K9006-p23/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p23 - двадцать третье задание - diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java deleted file mode 100644 index 027dfa4c3..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ArrayQueue { - private Object[] elements = new Object[10]; - private int head = 0; - private int tail = 0; - private int size = 0; - - public void enqueue(Object element) { - ensureCapacity(size + 1); - elements[tail] = element; - tail = (tail + 1) % elements.length; - size++; - } - - public Object element() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return elements[head]; - } - - public Object dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = elements[head]; - elements[head] = null; - head = (head + 1) % elements.length; - size--; - return result; - } - - public int size() { - return size; - } - - public boolean isEmpty() { - return size == 0; - } - - public void clear() { - elements = new Object[10]; - head = 0; - tail = 0; - size = 0; - } - - private void ensureCapacity(int capacity) { - if (capacity > elements.length) { - Object[] newArray = new Object[2 * elements.length]; - for (int i = 0; i < size; i++) { - newArray[i] = elements[(head + i) % elements.length]; - } - elements = newArray; - head = 0; - tail = size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java deleted file mode 100644 index 70237c8d5..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ArrayQueueAdt { - private Object[] elements = new Object[10]; - private int head = 0; - private int tail = 0; - private int size = 0; - - public static void enqueue(ArrayQueueAdt queue, Object element) { - ensureCapacity(queue, queue.size + 1); - queue.elements[queue.tail] = element; - queue.tail = (queue.tail + 1) % queue.elements.length; - queue.size++; - } - - public static Object element(ArrayQueueAdt queue) { - if (isEmpty(queue)) { - throw new IllegalStateException("Queue is empty"); - } - return queue.elements[queue.head]; - } - - public static Object dequeue(ArrayQueueAdt queue) { - if (isEmpty(queue)) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = queue.elements[queue.head]; - queue.elements[queue.head] = null; - queue.head = (queue.head + 1) % queue.elements.length; - queue.size--; - return result; - } - - public static int size(ArrayQueueAdt queue) { - return queue.size; - } - - public static boolean isEmpty(ArrayQueueAdt queue) { - return queue.size == 0; - } - - public static void clear(ArrayQueueAdt queue) { - queue.elements = new Object[10]; - queue.head = 0; - queue.tail = 0; - queue.size = 0; - } - - private static void ensureCapacity(ArrayQueueAdt queue, int capacity) { - if (capacity > queue.elements.length) { - Object[] newArray = new Object[2 * queue.elements.length]; - for (int i = 0; i < queue.size; i++) { - newArray[i] = queue.elements[(queue.head + i) % queue.elements.length]; - } - queue.elements = newArray; - queue.head = 0; - queue.tail = queue.size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java deleted file mode 100644 index 5c84fd3bf..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class ArrayQueueModule { - private static Object[] elements = new Object[10]; - private static int head = 0; - private static int tail = 0; - private static int size = 0; - - public static void enqueue(Object element) { - ensureCapacity(size + 1); - elements[tail] = element; - tail = (tail + 1) % elements.length; - size++; - } - - public static Object element() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return elements[head]; - } - - public static Object dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = elements[head]; - elements[head] = null; - head = (head + 1) % elements.length; - size--; - return result; - } - - public static int size() { - return size; - } - - public static boolean isEmpty() { - return size == 0; - } - - public static void clear() { - elements = new Object[10]; - head = 0; - tail = 0; - size = 0; - } - - private static void ensureCapacity(int capacity) { - if (capacity > elements.length) { - Object[] newArray = new Object[2 * elements.length]; - for (int i = 0; i < size; i++) { - newArray[i] = elements[(head + i) % elements.length]; - } - elements = newArray; - head = 0; - tail = size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java deleted file mode 100644 index 4bb6f9d33..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main { - public static void main(String[] args) { - // ArrayQueueModule - ArrayQueueModule.enqueue(10); - ArrayQueueModule.enqueue(20); - System.out.println(ArrayQueueModule.dequeue()); - System.out.println(ArrayQueueModule.size()); - - // ArrayQueueADT - ArrayQueueAdt adtQueue = new ArrayQueueAdt(); - ArrayQueueAdt.enqueue(adtQueue, 10); - ArrayQueueAdt.enqueue(adtQueue, 20); - System.out.println(ArrayQueueAdt.dequeue(adtQueue)); - System.out.println(ArrayQueueAdt.size(adtQueue)); - - // ArrayQueue - ArrayQueue queue = new ArrayQueue(); - queue.enqueue(10); - queue.enqueue(20); - System.out.println(queue.dequeue()); - System.out.println(queue.size()); - } -} diff --git a/students/23K9006/23K9006-p24/pom.xml b/students/23K9006/23K9006-p24/pom.xml deleted file mode 100644 index cdb26a8f2..000000000 --- a/students/23K9006/23K9006-p24/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p24 - двадцать четвертое задание - diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java deleted file mode 100644 index c5445accd..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java +++ /dev/null @@ -1,24 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class Complex { - private final int real; - private final int image; - - public Complex(int real, int image) { - this.real = real; - this.image = image; - } - - public int getReal() { - return real; - } - - public int getImage() { - return image; - } - - @Override - public String toString() { - return real + " + " + image + "i"; - } -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java deleted file mode 100644 index 8f81f98cc..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.mirea.practice.s0000001; - -public interface ComplexAbstractFactory { - - Complex createComplex(); - - Complex createComplex(int real, int image); -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java deleted file mode 100644 index ac9eb721e..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ConcreteFactory implements ComplexAbstractFactory { - @Override - public Complex createComplex() { - return new Complex(0, 0); - } - - @Override - public Complex createComplex(int real, int image) { - return new Complex(real, image); - } -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java deleted file mode 100644 index 3de59d94f..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main { - public static void main(String[] args) { - ComplexAbstractFactory factory = new ConcreteFactory(); - - Complex defaultComplex = factory.createComplex(); - System.out.println("Default complex number: " + defaultComplex); - - Complex customComplex = factory.createComplex(5, 10); - System.out.println("Custom complex number: " + customComplex); - } -} diff --git a/students/23K9006/23K9006-p25/pom.xml b/students/23K9006/23K9006-p25/pom.xml deleted file mode 100644 index d8abc7357..000000000 --- a/students/23K9006/23K9006-p25/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p25 - двадцать пятое задание - diff --git a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java deleted file mode 100644 index 6a78208e6..000000000 --- a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Scanner; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -abstract class StringManipulator { - public static void main(String[] args) { - try (Scanner scanner = new Scanner(System.in)) { - System.out.println("Введите строку для манипуляции:"); - String input = scanner.nextLine(); - - System.out.println("Введите регулярное выражение для разбиения строки:"); - String regex = scanner.nextLine(); - - System.out.println("Результаты разбиения строки:"); - String[] splitResult = input.split(regex); - for (int i = 0; i < splitResult.length; i++) { - System.out.println((i + 1) + ": " + splitResult[i]); - } - - System.out.println("\nВведите регулярное выражение для поиска в строке:"); - regex = scanner.nextLine(); - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(input); - - System.out.println("Результаты поиска в строке:"); - boolean found = false; - while (matcher.find()) { - System.out.println("Найдено: " + matcher.group() + " (начало: " + matcher.start() + ", конец: " + matcher.end() + ")"); - found = true; - } - - if (!found) { - System.out.println("Совпадений не найдено."); - } - } - } -} diff --git a/students/23K9006/23K9006-p26/pom.xml b/students/23K9006/23K9006-p26/pom.xml deleted file mode 100644 index 6ebf7dfbc..000000000 --- a/students/23K9006/23K9006-p26/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p26 - двадцать шестое задание - diff --git a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java deleted file mode 100644 index f4c0da3a3..000000000 --- a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Stack; - -abstract class ArrayInverter { - public static void invertArray(int[] array) { - Stack stack = new Stack<>(); - for (int num : array) { - stack.push(num); - } - for (int i = 0; i < array.length; i++) { - array[i] = stack.pop(); - } - } - - public static void main(String[] args) { - int[] array = {1, 2, 3, 4, 5}; - System.out.println("Исходный массив:"); - for (int num : array) { - System.out.print(num + " "); - } - invertArray(array); - System.out.println("\nИнвертированный массив:"); - for (int num : array) { - System.out.print(num + " "); - } - } -} diff --git a/students/23K9006/23K9006-p27/pom.xml b/students/23K9006/23K9006-p27/pom.xml deleted file mode 100644 index daad6b28c..000000000 --- a/students/23K9006/23K9006-p27/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p27 - двадцать седьмое задание - diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java deleted file mode 100644 index 3ec4dcc80..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.LinkedList; - -public class HashTable { - private static final int TABLE_SIZE = 256; - private final LinkedList[] table; - - public HashTable() { - table = new LinkedList[TABLE_SIZE]; - hashtabInit(); - } - - private static class Entry { - final String key; - final String value; - - Entry(String key, String value) { - this.key = key; - this.value = value; - } - } - - private int hashtabHash(String key) { - int hash = 0; - for (char c : key.toCharArray()) { - hash = (hash * 31 + c) % TABLE_SIZE; - } - return hash; - } - - private void hashtabInit() { - for (int i = 0; i < TABLE_SIZE; i++) { - table[i] = new LinkedList<>(); - } - } - - public void hashtabAdd(String key, String value) { - int hash = hashtabHash(key); - for (Entry entry : table[hash]) { - if (entry.key.equals(key)) { - throw new IllegalArgumentException("Key already exists: " + key); - } - } - table[hash].add(new Entry(key, value)); - } - - public String hashtabLookup(String key) { - int hash = hashtabHash(key); - for (Entry entry : table[hash]) { - if (entry.key.equals(key)) { - return entry.value; - } - } - return null; - } - - public void hashtabDelete(String key) { - int hash = hashtabHash(key); - table[hash].removeIf(entry -> entry.key.equals(key)); - } - - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - - System.out.println("Lookup 'two': " + hashtable.hashtabLookup("two")); - hashtable.hashtabDelete("two"); - System.out.println("Lookup 'two' after deletion: " + hashtable.hashtabLookup("two")); - } -} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java deleted file mode 100644 index 5e944032c..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class HashTableDemo { - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - hashtable.hashtabAdd("four", "4"); - hashtable.hashtabAdd("five", "5"); - - System.out.println("Initial dictionary:"); - for (String key : new String[]{"one", "two", "three", "four", "five"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - System.out.println("\nSearch for the key 'three':"); - String value = hashtable.hashtabLookup("three"); - if (value != null) { - System.out.println("'three' found with value: " + value); - } else { - System.out.println("'three' not found."); - } - - System.out.println("\nDeleting the key 'three'..."); - hashtable.hashtabDelete("three"); - - System.out.println("\nDictionary after deleting 'three':"); - for (String key : new String[]{"one", "two", "three", "four", "five"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - } -} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java deleted file mode 100644 index f81f731f7..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class HashTableTest { - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - hashtable.hashtabAdd("four", "4"); - hashtable.hashtabAdd("five", "5"); - hashtable.hashtabAdd("six", "6"); - hashtable.hashtabAdd("seven", "7"); - hashtable.hashtabAdd("eight", "8"); - hashtable.hashtabAdd("nine", "9"); - hashtable.hashtabAdd("ten", "10"); - - System.out.println("Initial dictionary:"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - hashtable.hashtabDelete("five"); - System.out.println("\nDictionary after deleting 'five':"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - hashtable.hashtabAdd("five", "15"); - System.out.println("\nDictionary after adding 'five' with new value:"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - } -} diff --git a/students/23K9006/23K9006-p28/pom.xml b/students/23K9006/23K9006-p28/pom.xml deleted file mode 100644 index ff15112a1..000000000 --- a/students/23K9006/23K9006-p28/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p28 - двадцать восьмое задание - diff --git a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java deleted file mode 100644 index 4997b6738..000000000 --- a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.HashSet; -import java.util.TreeSet; - -abstract class SetConversionDemo { - public static void main(String[] args) { - HashSet hashSet = new HashSet<>(); - hashSet.add(25); - hashSet.add(10); - hashSet.add(5); - hashSet.add(20); - hashSet.add(15); - - System.out.println("Original HashSet:"); - System.out.println(hashSet); - - TreeSet treeSet = new TreeSet<>(hashSet); - - System.out.println("\nConverted TreeSet:"); - System.out.println(treeSet); - } -} diff --git a/students/23K9006/23K9006-p29/pom.xml b/students/23K9006/23K9006-p29/pom.xml deleted file mode 100644 index 52969f901..000000000 --- a/students/23K9006/23K9006-p29/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p29 - двадцать девятое задание - diff --git a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java deleted file mode 100644 index be6368738..000000000 --- a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Scanner; - -abstract class CityRoads { - public static void main(String[] args) { - try (Scanner scanner = new Scanner(System.in)) { - int n = scanner.nextInt(); - - int[][] matrix = new int[n][n]; - for (int i = 0; i < n; i++) { - for (int j = 0; j < n; j++) { - matrix[i][j] = scanner.nextInt(); - } - } - - int roadCount = 0; - for (int i = 0; i < n; i++) { - for (int j = i + 1; j < n; j++) { - if (matrix[i][j] == 1) { - roadCount++; - } - } - } - - System.out.println(roadCount); - } - } -} diff --git a/students/23K9006/23K9006-p30/pom.xml b/students/23K9006/23K9006-p30/pom.xml deleted file mode 100644 index 98ac62968..000000000 --- a/students/23K9006/23K9006-p30/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p30 - тридцатое задание - diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java deleted file mode 100644 index 820cf86b8..000000000 --- a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java +++ /dev/null @@ -1,97 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class BinaryTree { - static class Node { - int value; - Node left; - Node right; - - Node(int value) { - this.value = value; - this.left = null; - this.right = null; - } - } - - private Node root; - - public void add(int value) { - root = addRecursive(root, value); - } - - private Node addRecursive(Node current, int value) { - if (current == null) { - return new Node(value); - } - if (value < current.value) { - current.left = addRecursive(current.left, value); - } else if (value > current.value) { - current.right = addRecursive(current.right, value); - } - return current; - } - - public boolean contains(int value) { - return containsRecursive(root, value); - } - - private boolean containsRecursive(Node current, int value) { - if (current == null) { - return false; - } - if (value == current.value) { - return true; - } - return value < current.value - ? containsRecursive(current.left, value) - : containsRecursive(current.right, value); - } - - public void delete(int value) { - root = deleteRecursive(root, value); - } - - private Node deleteRecursive(Node current, int value) { - if (current == null) { - return null; - } - if (value == current.value) { - if (current.left == null && current.right == null) { - return null; - } - if (current.right == null) { - return current.left; - } - if (current.left == null) { - return current.right; - } - int smallestValue = findSmallestValue(current.right); - current.value = smallestValue; - current.right = deleteRecursive(current.right, smallestValue); - return current; - } - if (value < current.value) { - current.left = deleteRecursive(current.left, value); - return current; - } - current.right = deleteRecursive(current.right, value); - return current; - } - - private int findSmallestValue(Node root) { - return root.left == null ? root.value : findSmallestValue(root.left); - } - - public void traverseInOrder() { - traverseInOrderRecursive(root); - System.out.println(); - } - - private void traverseInOrderRecursive(Node node) { - if (node != null) { - traverseInOrderRecursive(node.left); - System.out.print(node.value + " "); - traverseInOrderRecursive(node.right); - } - } -} diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java deleted file mode 100644 index 72f67d78e..000000000 --- a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class BinaryTreeDemo { - public static void main(String[] args) { - BinaryTree tree = new BinaryTree(); - tree.add(50); - tree.add(30); - tree.add(70); - tree.add(20); - tree.add(40); - tree.add(60); - tree.add(80); - - System.out.println("In-order traversal:"); - tree.traverseInOrder(); - - System.out.println("Tree contains 40: " + tree.contains(40)); - System.out.println("Tree contains 90: " + tree.contains(90)); - - System.out.println("Deleting 40..."); - tree.delete(40); - System.out.println("In-order traversal after deletion:"); - tree.traverseInOrder(); - } -} diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index f0920b757..390586540 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -31,14 +31,6 @@ 23K9006-p19 23K9006-p20 23K9006-p21 - 23K9006-p22 - 23K9006-p23 - 23K9006-p24 - 23K9006-p25 - 23K9006-p26 - 23K9006-p27 - 23K9006-p28 - 23K9006-p29 - 23K9006-p30 + From 8c33466c328cb0428ff9205b1e74862ceaf1c8bf Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Sun, 15 Dec 2024 23:40:47 +0300 Subject: [PATCH 13/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=9621-30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p21/pom.xml | 13 +++ .../practice/s0000001/1/GenericArray.java | 29 ++++++ .../ru/mirea/practice/s0000001/1/Main1.java | 21 ++++ .../ru/mirea/practice/s0000001/1/Main2.java | 21 ++++ students/23K9006/23K9006-p22/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Main1.java | 9 ++ .../practice/s0000001/1/RPnCalculator.java | 44 +++++++++ students/23K9006/23K9006-p23/pom.xml | 13 +++ .../mirea/practice/s0000001/1/ArrayQueue.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueAdt.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueModule.java | 60 ++++++++++++ .../ru/mirea/practice/s0000001/1/Main.java | 25 +++++ students/23K9006/23K9006-p24/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Complex.java | 24 +++++ .../s0000001/1/ComplexAbstractFactory.java | 8 ++ .../practice/s0000001/1/ConcreteFactory.java | 13 +++ .../ru/mirea/practice/s0000001/1/Main.java | 13 +++ students/23K9006/23K9006-p25/pom.xml | 13 +++ .../s0000001/1/StringManipulator.java | 39 ++++++++ students/23K9006/23K9006-p26/pom.xml | 13 +++ .../practice/s0000001/1/ArrayInverter.java | 28 ++++++ students/23K9006/23K9006-p27/pom.xml | 13 +++ .../mirea/practice/s0000001/1/HashTable.java | 73 ++++++++++++++ .../practice/s0000001/1/HashTableDemo.java | 34 +++++++ .../practice/s0000001/1/HashTableTest.java | 35 +++++++ students/23K9006/23K9006-p28/pom.xml | 13 +++ .../s0000001/1/SetConversionDemo.java | 23 +++++ students/23K9006/23K9006-p29/pom.xml | 13 +++ .../mirea/practice/s0000001/1/CityRoads.java | 29 ++++++ students/23K9006/23K9006-p30/pom.xml | 13 +++ .../mirea/practice/s0000001/1/BinaryTree.java | 97 +++++++++++++++++++ .../practice/s0000001/1/BinaryTreeDemo.java | 25 +++++ students/23K9006/pom.xml | 9 ++ 33 files changed, 909 insertions(+) create mode 100644 students/23K9006/23K9006-p21/pom.xml create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java create mode 100644 students/23K9006/23K9006-p22/pom.xml create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java create mode 100644 students/23K9006/23K9006-p23/pom.xml create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p24/pom.xml create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p25/pom.xml create mode 100644 students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java create mode 100644 students/23K9006/23K9006-p26/pom.xml create mode 100644 students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java create mode 100644 students/23K9006/23K9006-p27/pom.xml create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java create mode 100644 students/23K9006/23K9006-p28/pom.xml create mode 100644 students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java create mode 100644 students/23K9006/23K9006-p29/pom.xml create mode 100644 students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java create mode 100644 students/23K9006/23K9006-p30/pom.xml create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java diff --git a/students/23K9006/23K9006-p21/pom.xml b/students/23K9006/23K9006-p21/pom.xml new file mode 100644 index 000000000..35ff78ba0 --- /dev/null +++ b/students/23K9006/23K9006-p21/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p21 + двадцать первое задание + diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java new file mode 100644 index 000000000..8f223bde6 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +//второй main + +public class GenericArray { + private T[] array; + + public GenericArray(T[] array) { + this.array = array; + } + + public T get(int index) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + return array[index]; + } + + public void set(int index, T value) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + array[index] = value; + } + + public int size() { + return array.length; + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..bd78f1429 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; +import java.util.List; + +abstract class Main1 { + public static List convertArrayToList(T[] array) { + return Arrays.asList(array); + } + + public static void main(String[] args) { + String[] stringArray = {"one", "two", "three"}; + Integer[] intArray = {1, 2, 3}; + + List stringList = convertArrayToList(stringArray); + List intList = convertArrayToList(intArray); + + System.out.println(stringList); + System.out.println(intList); + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java new file mode 100644 index 000000000..5355b2d0a --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +abstract class Main2 { + public static void main(String[] args) { + Integer[] intArray = {1, 2, 3, 4, 5}; + GenericArray genericIntArray = new GenericArray<>(intArray); + + System.out.println("Элемент по индексу 2: " + genericIntArray.get(2)); + genericIntArray.set(2, 10); + System.out.println("Обновленный элемент по индексу 2: " + genericIntArray.get(2)); + System.out.println("Размер массива: " + genericIntArray.size()); + + String[] stringArray = {"A", "B", "C"}; + GenericArray genericStringArray = new GenericArray<>(stringArray); + + System.out.println("Элемент по индексу 0: " + genericStringArray.get(0)); + genericStringArray.set(0, "Z"); + System.out.println("Обновленный элемент по индексу 0: " + genericStringArray.get(0)); + System.out.println("Размер массива: " + genericStringArray.size()); + } +} diff --git a/students/23K9006/23K9006-p22/pom.xml b/students/23K9006/23K9006-p22/pom.xml new file mode 100644 index 000000000..d7e0bf479 --- /dev/null +++ b/students/23K9006/23K9006-p22/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p22 + двадцать второе задание + diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..e1d394dbb --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s0000001; + +abstract class Main1 { + public static void main(String[] args) { + String rpnExpression = "3 4 + 2 * 7 /"; + double result = RPnCalculator.calculate(rpnExpression); + System.out.println("Результат: " + result); + } +} diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java new file mode 100644 index 000000000..ab93aa9f2 --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class RPnCalculator { + public static double calculate(String expression) { + Stack stack = new Stack<>(); + String[] tokens = expression.split("\\s+"); + + for (String token : tokens) { + if (isOperator(token)) { + double b = stack.pop(); + double a = stack.pop(); + stack.push(applyOperation(a, b, token)); + } else { + stack.push(Double.parseDouble(token)); + } + } + + return stack.pop(); + } + + private static boolean isOperator(String token) { + return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token); + } + + private static double applyOperation(double a, double b, String operator) { + switch (operator) { + case "+": + return a + b; + case "-": + return a - b; + case "*": + return a * b; + case "/": + if (b == 0) { + throw new ArithmeticException("Деление на ноль"); + } + return a / b; + default: + throw new IllegalArgumentException("Недопустимый оператор: " + operator); + } + } +} diff --git a/students/23K9006/23K9006-p23/pom.xml b/students/23K9006/23K9006-p23/pom.xml new file mode 100644 index 000000000..4bba3a87b --- /dev/null +++ b/students/23K9006/23K9006-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p23 + двадцать третье задание + diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java new file mode 100644 index 000000000..027dfa4c3 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueue { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public int size() { + return size; + } + + public boolean isEmpty() { + return size == 0; + } + + public void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java new file mode 100644 index 000000000..70237c8d5 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueueAdt { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public static void enqueue(ArrayQueueAdt queue, Object element) { + ensureCapacity(queue, queue.size + 1); + queue.elements[queue.tail] = element; + queue.tail = (queue.tail + 1) % queue.elements.length; + queue.size++; + } + + public static Object element(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + return queue.elements[queue.head]; + } + + public static Object dequeue(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = queue.elements[queue.head]; + queue.elements[queue.head] = null; + queue.head = (queue.head + 1) % queue.elements.length; + queue.size--; + return result; + } + + public static int size(ArrayQueueAdt queue) { + return queue.size; + } + + public static boolean isEmpty(ArrayQueueAdt queue) { + return queue.size == 0; + } + + public static void clear(ArrayQueueAdt queue) { + queue.elements = new Object[10]; + queue.head = 0; + queue.tail = 0; + queue.size = 0; + } + + private static void ensureCapacity(ArrayQueueAdt queue, int capacity) { + if (capacity > queue.elements.length) { + Object[] newArray = new Object[2 * queue.elements.length]; + for (int i = 0; i < queue.size; i++) { + newArray[i] = queue.elements[(queue.head + i) % queue.elements.length]; + } + queue.elements = newArray; + queue.head = 0; + queue.tail = queue.size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java new file mode 100644 index 000000000..5c84fd3bf --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +abstract class ArrayQueueModule { + private static Object[] elements = new Object[10]; + private static int head = 0; + private static int tail = 0; + private static int size = 0; + + public static void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public static Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public static Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public static int size() { + return size; + } + + public static boolean isEmpty() { + return size == 0; + } + + public static void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private static void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..4bb6f9d33 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + // ArrayQueueModule + ArrayQueueModule.enqueue(10); + ArrayQueueModule.enqueue(20); + System.out.println(ArrayQueueModule.dequeue()); + System.out.println(ArrayQueueModule.size()); + + // ArrayQueueADT + ArrayQueueAdt adtQueue = new ArrayQueueAdt(); + ArrayQueueAdt.enqueue(adtQueue, 10); + ArrayQueueAdt.enqueue(adtQueue, 20); + System.out.println(ArrayQueueAdt.dequeue(adtQueue)); + System.out.println(ArrayQueueAdt.size(adtQueue)); + + // ArrayQueue + ArrayQueue queue = new ArrayQueue(); + queue.enqueue(10); + queue.enqueue(20); + System.out.println(queue.dequeue()); + System.out.println(queue.size()); + } +} diff --git a/students/23K9006/23K9006-p24/pom.xml b/students/23K9006/23K9006-p24/pom.xml new file mode 100644 index 000000000..cdb26a8f2 --- /dev/null +++ b/students/23K9006/23K9006-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p24 + двадцать четвертое задание + diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java new file mode 100644 index 000000000..c5445accd --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +public class Complex { + private final int real; + private final int image; + + public Complex(int real, int image) { + this.real = real; + this.image = image; + } + + public int getReal() { + return real; + } + + public int getImage() { + return image; + } + + @Override + public String toString() { + return real + " + " + image + "i"; + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java new file mode 100644 index 000000000..8f81f98cc --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s0000001; + +public interface ComplexAbstractFactory { + + Complex createComplex(); + + Complex createComplex(int real, int image); +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java new file mode 100644 index 000000000..ac9eb721e --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +public class ConcreteFactory implements ComplexAbstractFactory { + @Override + public Complex createComplex() { + return new Complex(0, 0); + } + + @Override + public Complex createComplex(int real, int image) { + return new Complex(real, image); + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..3de59d94f --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + ComplexAbstractFactory factory = new ConcreteFactory(); + + Complex defaultComplex = factory.createComplex(); + System.out.println("Default complex number: " + defaultComplex); + + Complex customComplex = factory.createComplex(5, 10); + System.out.println("Custom complex number: " + customComplex); + } +} diff --git a/students/23K9006/23K9006-p25/pom.xml b/students/23K9006/23K9006-p25/pom.xml new file mode 100644 index 000000000..d8abc7357 --- /dev/null +++ b/students/23K9006/23K9006-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p25 + двадцать пятое задание + diff --git a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java new file mode 100644 index 000000000..6a78208e6 --- /dev/null +++ b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +abstract class StringManipulator { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите строку для манипуляции:"); + String input = scanner.nextLine(); + + System.out.println("Введите регулярное выражение для разбиения строки:"); + String regex = scanner.nextLine(); + + System.out.println("Результаты разбиения строки:"); + String[] splitResult = input.split(regex); + for (int i = 0; i < splitResult.length; i++) { + System.out.println((i + 1) + ": " + splitResult[i]); + } + + System.out.println("\nВведите регулярное выражение для поиска в строке:"); + regex = scanner.nextLine(); + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(input); + + System.out.println("Результаты поиска в строке:"); + boolean found = false; + while (matcher.find()) { + System.out.println("Найдено: " + matcher.group() + " (начало: " + matcher.start() + ", конец: " + matcher.end() + ")"); + found = true; + } + + if (!found) { + System.out.println("Совпадений не найдено."); + } + } + } +} diff --git a/students/23K9006/23K9006-p26/pom.xml b/students/23K9006/23K9006-p26/pom.xml new file mode 100644 index 000000000..6ebf7dfbc --- /dev/null +++ b/students/23K9006/23K9006-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p26 + двадцать шестое задание + diff --git a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java new file mode 100644 index 000000000..f4c0da3a3 --- /dev/null +++ b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class ArrayInverter { + public static void invertArray(int[] array) { + Stack stack = new Stack<>(); + for (int num : array) { + stack.push(num); + } + for (int i = 0; i < array.length; i++) { + array[i] = stack.pop(); + } + } + + public static void main(String[] args) { + int[] array = {1, 2, 3, 4, 5}; + System.out.println("Исходный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + invertArray(array); + System.out.println("\nИнвертированный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + } +} diff --git a/students/23K9006/23K9006-p27/pom.xml b/students/23K9006/23K9006-p27/pom.xml new file mode 100644 index 000000000..daad6b28c --- /dev/null +++ b/students/23K9006/23K9006-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p27 + двадцать седьмое задание + diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java new file mode 100644 index 000000000..3ec4dcc80 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java @@ -0,0 +1,73 @@ +package ru.mirea.practice.s0000001; + +import java.util.LinkedList; + +public class HashTable { + private static final int TABLE_SIZE = 256; + private final LinkedList[] table; + + public HashTable() { + table = new LinkedList[TABLE_SIZE]; + hashtabInit(); + } + + private static class Entry { + final String key; + final String value; + + Entry(String key, String value) { + this.key = key; + this.value = value; + } + } + + private int hashtabHash(String key) { + int hash = 0; + for (char c : key.toCharArray()) { + hash = (hash * 31 + c) % TABLE_SIZE; + } + return hash; + } + + private void hashtabInit() { + for (int i = 0; i < TABLE_SIZE; i++) { + table[i] = new LinkedList<>(); + } + } + + public void hashtabAdd(String key, String value) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + throw new IllegalArgumentException("Key already exists: " + key); + } + } + table[hash].add(new Entry(key, value)); + } + + public String hashtabLookup(String key) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + return entry.value; + } + } + return null; + } + + public void hashtabDelete(String key) { + int hash = hashtabHash(key); + table[hash].removeIf(entry -> entry.key.equals(key)); + } + + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + + System.out.println("Lookup 'two': " + hashtable.hashtabLookup("two")); + hashtable.hashtabDelete("two"); + System.out.println("Lookup 'two' after deletion: " + hashtable.hashtabLookup("two")); + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java new file mode 100644 index 000000000..5e944032c --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableDemo { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + System.out.println("\nSearch for the key 'three':"); + String value = hashtable.hashtabLookup("three"); + if (value != null) { + System.out.println("'three' found with value: " + value); + } else { + System.out.println("'three' not found."); + } + + System.out.println("\nDeleting the key 'three'..."); + hashtable.hashtabDelete("three"); + + System.out.println("\nDictionary after deleting 'three':"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java new file mode 100644 index 000000000..f81f731f7 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableTest { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + hashtable.hashtabAdd("six", "6"); + hashtable.hashtabAdd("seven", "7"); + hashtable.hashtabAdd("eight", "8"); + hashtable.hashtabAdd("nine", "9"); + hashtable.hashtabAdd("ten", "10"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabDelete("five"); + System.out.println("\nDictionary after deleting 'five':"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabAdd("five", "15"); + System.out.println("\nDictionary after adding 'five' with new value:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p28/pom.xml b/students/23K9006/23K9006-p28/pom.xml new file mode 100644 index 000000000..ff15112a1 --- /dev/null +++ b/students/23K9006/23K9006-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p28 + двадцать восьмое задание + diff --git a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java new file mode 100644 index 000000000..4997b6738 --- /dev/null +++ b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s0000001; + +import java.util.HashSet; +import java.util.TreeSet; + +abstract class SetConversionDemo { + public static void main(String[] args) { + HashSet hashSet = new HashSet<>(); + hashSet.add(25); + hashSet.add(10); + hashSet.add(5); + hashSet.add(20); + hashSet.add(15); + + System.out.println("Original HashSet:"); + System.out.println(hashSet); + + TreeSet treeSet = new TreeSet<>(hashSet); + + System.out.println("\nConverted TreeSet:"); + System.out.println(treeSet); + } +} diff --git a/students/23K9006/23K9006-p29/pom.xml b/students/23K9006/23K9006-p29/pom.xml new file mode 100644 index 000000000..52969f901 --- /dev/null +++ b/students/23K9006/23K9006-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p29 + двадцать девятое задание + diff --git a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java new file mode 100644 index 000000000..be6368738 --- /dev/null +++ b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +abstract class CityRoads { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + int n = scanner.nextInt(); + + int[][] matrix = new int[n][n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + matrix[i][j] = scanner.nextInt(); + } + } + + int roadCount = 0; + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (matrix[i][j] == 1) { + roadCount++; + } + } + } + + System.out.println(roadCount); + } + } +} diff --git a/students/23K9006/23K9006-p30/pom.xml b/students/23K9006/23K9006-p30/pom.xml new file mode 100644 index 000000000..98ac62968 --- /dev/null +++ b/students/23K9006/23K9006-p30/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p30 + тридцатое задание + diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java new file mode 100644 index 000000000..820cf86b8 --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java @@ -0,0 +1,97 @@ +package ru.mirea.practice.s0000001; + +public class BinaryTree { + static class Node { + int value; + Node left; + Node right; + + Node(int value) { + this.value = value; + this.left = null; + this.right = null; + } + } + + private Node root; + + public void add(int value) { + root = addRecursive(root, value); + } + + private Node addRecursive(Node current, int value) { + if (current == null) { + return new Node(value); + } + if (value < current.value) { + current.left = addRecursive(current.left, value); + } else if (value > current.value) { + current.right = addRecursive(current.right, value); + } + return current; + } + + public boolean contains(int value) { + return containsRecursive(root, value); + } + + private boolean containsRecursive(Node current, int value) { + if (current == null) { + return false; + } + if (value == current.value) { + return true; + } + return value < current.value + ? containsRecursive(current.left, value) + : containsRecursive(current.right, value); + } + + public void delete(int value) { + root = deleteRecursive(root, value); + } + + private Node deleteRecursive(Node current, int value) { + if (current == null) { + return null; + } + if (value == current.value) { + if (current.left == null && current.right == null) { + return null; + } + if (current.right == null) { + return current.left; + } + if (current.left == null) { + return current.right; + } + int smallestValue = findSmallestValue(current.right); + current.value = smallestValue; + current.right = deleteRecursive(current.right, smallestValue); + return current; + } + if (value < current.value) { + current.left = deleteRecursive(current.left, value); + return current; + } + current.right = deleteRecursive(current.right, value); + return current; + } + + private int findSmallestValue(Node root) { + return root.left == null ? root.value : findSmallestValue(root.left); + } + + public void traverseInOrder() { + traverseInOrderRecursive(root); + System.out.println(); + } + + private void traverseInOrderRecursive(Node node) { + if (node != null) { + traverseInOrderRecursive(node.left); + System.out.print(node.value + " "); + traverseInOrderRecursive(node.right); + } + } +} diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java new file mode 100644 index 000000000..72f67d78e --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class BinaryTreeDemo { + public static void main(String[] args) { + BinaryTree tree = new BinaryTree(); + tree.add(50); + tree.add(30); + tree.add(70); + tree.add(20); + tree.add(40); + tree.add(60); + tree.add(80); + + System.out.println("In-order traversal:"); + tree.traverseInOrder(); + + System.out.println("Tree contains 40: " + tree.contains(40)); + System.out.println("Tree contains 90: " + tree.contains(90)); + + System.out.println("Deleting 40..."); + tree.delete(40); + System.out.println("In-order traversal after deletion:"); + tree.traverseInOrder(); + } +} diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml index 390586540..3922f694e 100644 --- a/students/23K9006/pom.xml +++ b/students/23K9006/pom.xml @@ -31,6 +31,15 @@ 23K9006-p19 23K9006-p20 23K9006-p21 + 23K9006-p22 + 23K9006-p23 + 23K9006-p24 + 23K9006-p25 + 23K9006-p26 + 23K9006-p27 + 23K9006-p28 + 23K9006-p29 + 23K9006-p30 From 8b4c066b07f70daeb8497dd22703fed8eb368d44 Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Sun, 15 Dec 2024 23:46:24 +0300 Subject: [PATCH 14/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=9621-30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p21/pom.xml | 13 --- .../practice/s0000001/1/GenericArray.java | 29 ------ .../ru/mirea/practice/s0000001/1/Main1.java | 21 ---- .../ru/mirea/practice/s0000001/1/Main2.java | 21 ---- students/23K9006/23K9006-p22/pom.xml | 13 --- .../ru/mirea/practice/s0000001/1/Main1.java | 9 -- .../practice/s0000001/1/RPnCalculator.java | 44 --------- students/23K9006/23K9006-p23/pom.xml | 13 --- .../mirea/practice/s0000001/1/ArrayQueue.java | 60 ------------ .../practice/s0000001/1/ArrayQueueAdt.java | 60 ------------ .../practice/s0000001/1/ArrayQueueModule.java | 60 ------------ .../ru/mirea/practice/s0000001/1/Main.java | 25 ----- students/23K9006/23K9006-p24/pom.xml | 13 --- .../ru/mirea/practice/s0000001/1/Complex.java | 24 ----- .../s0000001/1/ComplexAbstractFactory.java | 8 -- .../practice/s0000001/1/ConcreteFactory.java | 13 --- .../ru/mirea/practice/s0000001/1/Main.java | 13 --- students/23K9006/23K9006-p25/pom.xml | 13 --- .../s0000001/1/StringManipulator.java | 39 -------- students/23K9006/23K9006-p26/pom.xml | 13 --- .../practice/s0000001/1/ArrayInverter.java | 28 ------ students/23K9006/23K9006-p27/pom.xml | 13 --- .../mirea/practice/s0000001/1/HashTable.java | 73 -------------- .../practice/s0000001/1/HashTableDemo.java | 34 ------- .../practice/s0000001/1/HashTableTest.java | 35 ------- students/23K9006/23K9006-p28/pom.xml | 13 --- .../s0000001/1/SetConversionDemo.java | 23 ----- students/23K9006/23K9006-p29/pom.xml | 13 --- .../mirea/practice/s0000001/1/CityRoads.java | 29 ------ students/23K9006/23K9006-p30/pom.xml | 13 --- .../mirea/practice/s0000001/1/BinaryTree.java | 97 ------------------- .../practice/s0000001/1/BinaryTreeDemo.java | 25 ----- 32 files changed, 900 deletions(-) delete mode 100644 students/23K9006/23K9006-p21/pom.xml delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java delete mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java delete mode 100644 students/23K9006/23K9006-p22/pom.xml delete mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java delete mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java delete mode 100644 students/23K9006/23K9006-p23/pom.xml delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java delete mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java delete mode 100644 students/23K9006/23K9006-p24/pom.xml delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java delete mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java delete mode 100644 students/23K9006/23K9006-p25/pom.xml delete mode 100644 students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java delete mode 100644 students/23K9006/23K9006-p26/pom.xml delete mode 100644 students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java delete mode 100644 students/23K9006/23K9006-p27/pom.xml delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java delete mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java delete mode 100644 students/23K9006/23K9006-p28/pom.xml delete mode 100644 students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java delete mode 100644 students/23K9006/23K9006-p29/pom.xml delete mode 100644 students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java delete mode 100644 students/23K9006/23K9006-p30/pom.xml delete mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java delete mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java diff --git a/students/23K9006/23K9006-p21/pom.xml b/students/23K9006/23K9006-p21/pom.xml deleted file mode 100644 index 35ff78ba0..000000000 --- a/students/23K9006/23K9006-p21/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p21 - двадцать первое задание - diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java deleted file mode 100644 index 8f223bde6..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.mirea.practice.s0000001; - -//второй main - -public class GenericArray { - private T[] array; - - public GenericArray(T[] array) { - this.array = array; - } - - public T get(int index) { - if (index < 0 || index >= array.length) { - throw new IndexOutOfBoundsException("Invalid index: " + index); - } - return array[index]; - } - - public void set(int index, T value) { - if (index < 0 || index >= array.length) { - throw new IndexOutOfBoundsException("Invalid index: " + index); - } - array[index] = value; - } - - public int size() { - return array.length; - } -} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java deleted file mode 100644 index bd78f1429..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Arrays; -import java.util.List; - -abstract class Main1 { - public static List convertArrayToList(T[] array) { - return Arrays.asList(array); - } - - public static void main(String[] args) { - String[] stringArray = {"one", "two", "three"}; - Integer[] intArray = {1, 2, 3}; - - List stringList = convertArrayToList(stringArray); - List intList = convertArrayToList(intArray); - - System.out.println(stringList); - System.out.println(intList); - } -} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java deleted file mode 100644 index 5355b2d0a..000000000 --- a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main2 { - public static void main(String[] args) { - Integer[] intArray = {1, 2, 3, 4, 5}; - GenericArray genericIntArray = new GenericArray<>(intArray); - - System.out.println("Элемент по индексу 2: " + genericIntArray.get(2)); - genericIntArray.set(2, 10); - System.out.println("Обновленный элемент по индексу 2: " + genericIntArray.get(2)); - System.out.println("Размер массива: " + genericIntArray.size()); - - String[] stringArray = {"A", "B", "C"}; - GenericArray genericStringArray = new GenericArray<>(stringArray); - - System.out.println("Элемент по индексу 0: " + genericStringArray.get(0)); - genericStringArray.set(0, "Z"); - System.out.println("Обновленный элемент по индексу 0: " + genericStringArray.get(0)); - System.out.println("Размер массива: " + genericStringArray.size()); - } -} diff --git a/students/23K9006/23K9006-p22/pom.xml b/students/23K9006/23K9006-p22/pom.xml deleted file mode 100644 index d7e0bf479..000000000 --- a/students/23K9006/23K9006-p22/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p22 - двадцать второе задание - diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java deleted file mode 100644 index e1d394dbb..000000000 --- a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main1 { - public static void main(String[] args) { - String rpnExpression = "3 4 + 2 * 7 /"; - double result = RPnCalculator.calculate(rpnExpression); - System.out.println("Результат: " + result); - } -} diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java deleted file mode 100644 index ab93aa9f2..000000000 --- a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Stack; - -abstract class RPnCalculator { - public static double calculate(String expression) { - Stack stack = new Stack<>(); - String[] tokens = expression.split("\\s+"); - - for (String token : tokens) { - if (isOperator(token)) { - double b = stack.pop(); - double a = stack.pop(); - stack.push(applyOperation(a, b, token)); - } else { - stack.push(Double.parseDouble(token)); - } - } - - return stack.pop(); - } - - private static boolean isOperator(String token) { - return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token); - } - - private static double applyOperation(double a, double b, String operator) { - switch (operator) { - case "+": - return a + b; - case "-": - return a - b; - case "*": - return a * b; - case "/": - if (b == 0) { - throw new ArithmeticException("Деление на ноль"); - } - return a / b; - default: - throw new IllegalArgumentException("Недопустимый оператор: " + operator); - } - } -} diff --git a/students/23K9006/23K9006-p23/pom.xml b/students/23K9006/23K9006-p23/pom.xml deleted file mode 100644 index 4bba3a87b..000000000 --- a/students/23K9006/23K9006-p23/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p23 - двадцать третье задание - diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java deleted file mode 100644 index 027dfa4c3..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ArrayQueue { - private Object[] elements = new Object[10]; - private int head = 0; - private int tail = 0; - private int size = 0; - - public void enqueue(Object element) { - ensureCapacity(size + 1); - elements[tail] = element; - tail = (tail + 1) % elements.length; - size++; - } - - public Object element() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return elements[head]; - } - - public Object dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = elements[head]; - elements[head] = null; - head = (head + 1) % elements.length; - size--; - return result; - } - - public int size() { - return size; - } - - public boolean isEmpty() { - return size == 0; - } - - public void clear() { - elements = new Object[10]; - head = 0; - tail = 0; - size = 0; - } - - private void ensureCapacity(int capacity) { - if (capacity > elements.length) { - Object[] newArray = new Object[2 * elements.length]; - for (int i = 0; i < size; i++) { - newArray[i] = elements[(head + i) % elements.length]; - } - elements = newArray; - head = 0; - tail = size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java deleted file mode 100644 index 70237c8d5..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ArrayQueueAdt { - private Object[] elements = new Object[10]; - private int head = 0; - private int tail = 0; - private int size = 0; - - public static void enqueue(ArrayQueueAdt queue, Object element) { - ensureCapacity(queue, queue.size + 1); - queue.elements[queue.tail] = element; - queue.tail = (queue.tail + 1) % queue.elements.length; - queue.size++; - } - - public static Object element(ArrayQueueAdt queue) { - if (isEmpty(queue)) { - throw new IllegalStateException("Queue is empty"); - } - return queue.elements[queue.head]; - } - - public static Object dequeue(ArrayQueueAdt queue) { - if (isEmpty(queue)) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = queue.elements[queue.head]; - queue.elements[queue.head] = null; - queue.head = (queue.head + 1) % queue.elements.length; - queue.size--; - return result; - } - - public static int size(ArrayQueueAdt queue) { - return queue.size; - } - - public static boolean isEmpty(ArrayQueueAdt queue) { - return queue.size == 0; - } - - public static void clear(ArrayQueueAdt queue) { - queue.elements = new Object[10]; - queue.head = 0; - queue.tail = 0; - queue.size = 0; - } - - private static void ensureCapacity(ArrayQueueAdt queue, int capacity) { - if (capacity > queue.elements.length) { - Object[] newArray = new Object[2 * queue.elements.length]; - for (int i = 0; i < queue.size; i++) { - newArray[i] = queue.elements[(queue.head + i) % queue.elements.length]; - } - queue.elements = newArray; - queue.head = 0; - queue.tail = queue.size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java deleted file mode 100644 index 5c84fd3bf..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class ArrayQueueModule { - private static Object[] elements = new Object[10]; - private static int head = 0; - private static int tail = 0; - private static int size = 0; - - public static void enqueue(Object element) { - ensureCapacity(size + 1); - elements[tail] = element; - tail = (tail + 1) % elements.length; - size++; - } - - public static Object element() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return elements[head]; - } - - public static Object dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - final Object result = elements[head]; - elements[head] = null; - head = (head + 1) % elements.length; - size--; - return result; - } - - public static int size() { - return size; - } - - public static boolean isEmpty() { - return size == 0; - } - - public static void clear() { - elements = new Object[10]; - head = 0; - tail = 0; - size = 0; - } - - private static void ensureCapacity(int capacity) { - if (capacity > elements.length) { - Object[] newArray = new Object[2 * elements.length]; - for (int i = 0; i < size; i++) { - newArray[i] = elements[(head + i) % elements.length]; - } - elements = newArray; - head = 0; - tail = size; - } - } -} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java deleted file mode 100644 index 4bb6f9d33..000000000 --- a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main { - public static void main(String[] args) { - // ArrayQueueModule - ArrayQueueModule.enqueue(10); - ArrayQueueModule.enqueue(20); - System.out.println(ArrayQueueModule.dequeue()); - System.out.println(ArrayQueueModule.size()); - - // ArrayQueueADT - ArrayQueueAdt adtQueue = new ArrayQueueAdt(); - ArrayQueueAdt.enqueue(adtQueue, 10); - ArrayQueueAdt.enqueue(adtQueue, 20); - System.out.println(ArrayQueueAdt.dequeue(adtQueue)); - System.out.println(ArrayQueueAdt.size(adtQueue)); - - // ArrayQueue - ArrayQueue queue = new ArrayQueue(); - queue.enqueue(10); - queue.enqueue(20); - System.out.println(queue.dequeue()); - System.out.println(queue.size()); - } -} diff --git a/students/23K9006/23K9006-p24/pom.xml b/students/23K9006/23K9006-p24/pom.xml deleted file mode 100644 index cdb26a8f2..000000000 --- a/students/23K9006/23K9006-p24/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p24 - двадцать четвертое задание - diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java deleted file mode 100644 index c5445accd..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java +++ /dev/null @@ -1,24 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class Complex { - private final int real; - private final int image; - - public Complex(int real, int image) { - this.real = real; - this.image = image; - } - - public int getReal() { - return real; - } - - public int getImage() { - return image; - } - - @Override - public String toString() { - return real + " + " + image + "i"; - } -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java deleted file mode 100644 index 8f81f98cc..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.mirea.practice.s0000001; - -public interface ComplexAbstractFactory { - - Complex createComplex(); - - Complex createComplex(int real, int image); -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java deleted file mode 100644 index ac9eb721e..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class ConcreteFactory implements ComplexAbstractFactory { - @Override - public Complex createComplex() { - return new Complex(0, 0); - } - - @Override - public Complex createComplex(int real, int image) { - return new Complex(real, image); - } -} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java deleted file mode 100644 index 3de59d94f..000000000 --- a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class Main { - public static void main(String[] args) { - ComplexAbstractFactory factory = new ConcreteFactory(); - - Complex defaultComplex = factory.createComplex(); - System.out.println("Default complex number: " + defaultComplex); - - Complex customComplex = factory.createComplex(5, 10); - System.out.println("Custom complex number: " + customComplex); - } -} diff --git a/students/23K9006/23K9006-p25/pom.xml b/students/23K9006/23K9006-p25/pom.xml deleted file mode 100644 index d8abc7357..000000000 --- a/students/23K9006/23K9006-p25/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p25 - двадцать пятое задание - diff --git a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java deleted file mode 100644 index 6a78208e6..000000000 --- a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Scanner; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -abstract class StringManipulator { - public static void main(String[] args) { - try (Scanner scanner = new Scanner(System.in)) { - System.out.println("Введите строку для манипуляции:"); - String input = scanner.nextLine(); - - System.out.println("Введите регулярное выражение для разбиения строки:"); - String regex = scanner.nextLine(); - - System.out.println("Результаты разбиения строки:"); - String[] splitResult = input.split(regex); - for (int i = 0; i < splitResult.length; i++) { - System.out.println((i + 1) + ": " + splitResult[i]); - } - - System.out.println("\nВведите регулярное выражение для поиска в строке:"); - regex = scanner.nextLine(); - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(input); - - System.out.println("Результаты поиска в строке:"); - boolean found = false; - while (matcher.find()) { - System.out.println("Найдено: " + matcher.group() + " (начало: " + matcher.start() + ", конец: " + matcher.end() + ")"); - found = true; - } - - if (!found) { - System.out.println("Совпадений не найдено."); - } - } - } -} diff --git a/students/23K9006/23K9006-p26/pom.xml b/students/23K9006/23K9006-p26/pom.xml deleted file mode 100644 index 6ebf7dfbc..000000000 --- a/students/23K9006/23K9006-p26/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p26 - двадцать шестое задание - diff --git a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java deleted file mode 100644 index f4c0da3a3..000000000 --- a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Stack; - -abstract class ArrayInverter { - public static void invertArray(int[] array) { - Stack stack = new Stack<>(); - for (int num : array) { - stack.push(num); - } - for (int i = 0; i < array.length; i++) { - array[i] = stack.pop(); - } - } - - public static void main(String[] args) { - int[] array = {1, 2, 3, 4, 5}; - System.out.println("Исходный массив:"); - for (int num : array) { - System.out.print(num + " "); - } - invertArray(array); - System.out.println("\nИнвертированный массив:"); - for (int num : array) { - System.out.print(num + " "); - } - } -} diff --git a/students/23K9006/23K9006-p27/pom.xml b/students/23K9006/23K9006-p27/pom.xml deleted file mode 100644 index daad6b28c..000000000 --- a/students/23K9006/23K9006-p27/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p27 - двадцать седьмое задание - diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java deleted file mode 100644 index 3ec4dcc80..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.LinkedList; - -public class HashTable { - private static final int TABLE_SIZE = 256; - private final LinkedList[] table; - - public HashTable() { - table = new LinkedList[TABLE_SIZE]; - hashtabInit(); - } - - private static class Entry { - final String key; - final String value; - - Entry(String key, String value) { - this.key = key; - this.value = value; - } - } - - private int hashtabHash(String key) { - int hash = 0; - for (char c : key.toCharArray()) { - hash = (hash * 31 + c) % TABLE_SIZE; - } - return hash; - } - - private void hashtabInit() { - for (int i = 0; i < TABLE_SIZE; i++) { - table[i] = new LinkedList<>(); - } - } - - public void hashtabAdd(String key, String value) { - int hash = hashtabHash(key); - for (Entry entry : table[hash]) { - if (entry.key.equals(key)) { - throw new IllegalArgumentException("Key already exists: " + key); - } - } - table[hash].add(new Entry(key, value)); - } - - public String hashtabLookup(String key) { - int hash = hashtabHash(key); - for (Entry entry : table[hash]) { - if (entry.key.equals(key)) { - return entry.value; - } - } - return null; - } - - public void hashtabDelete(String key) { - int hash = hashtabHash(key); - table[hash].removeIf(entry -> entry.key.equals(key)); - } - - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - - System.out.println("Lookup 'two': " + hashtable.hashtabLookup("two")); - hashtable.hashtabDelete("two"); - System.out.println("Lookup 'two' after deletion: " + hashtable.hashtabLookup("two")); - } -} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java deleted file mode 100644 index 5e944032c..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class HashTableDemo { - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - hashtable.hashtabAdd("four", "4"); - hashtable.hashtabAdd("five", "5"); - - System.out.println("Initial dictionary:"); - for (String key : new String[]{"one", "two", "three", "four", "five"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - System.out.println("\nSearch for the key 'three':"); - String value = hashtable.hashtabLookup("three"); - if (value != null) { - System.out.println("'three' found with value: " + value); - } else { - System.out.println("'three' not found."); - } - - System.out.println("\nDeleting the key 'three'..."); - hashtable.hashtabDelete("three"); - - System.out.println("\nDictionary after deleting 'three':"); - for (String key : new String[]{"one", "two", "three", "four", "five"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - } -} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java deleted file mode 100644 index f81f731f7..000000000 --- a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class HashTableTest { - public static void main(String[] args) { - HashTable hashtable = new HashTable(); - - hashtable.hashtabAdd("one", "1"); - hashtable.hashtabAdd("two", "2"); - hashtable.hashtabAdd("three", "3"); - hashtable.hashtabAdd("four", "4"); - hashtable.hashtabAdd("five", "5"); - hashtable.hashtabAdd("six", "6"); - hashtable.hashtabAdd("seven", "7"); - hashtable.hashtabAdd("eight", "8"); - hashtable.hashtabAdd("nine", "9"); - hashtable.hashtabAdd("ten", "10"); - - System.out.println("Initial dictionary:"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - hashtable.hashtabDelete("five"); - System.out.println("\nDictionary after deleting 'five':"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - - hashtable.hashtabAdd("five", "15"); - System.out.println("\nDictionary after adding 'five' with new value:"); - for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { - System.out.println(key + ": " + hashtable.hashtabLookup(key)); - } - } -} diff --git a/students/23K9006/23K9006-p28/pom.xml b/students/23K9006/23K9006-p28/pom.xml deleted file mode 100644 index ff15112a1..000000000 --- a/students/23K9006/23K9006-p28/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p28 - двадцать восьмое задание - diff --git a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java deleted file mode 100644 index 4997b6738..000000000 --- a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.HashSet; -import java.util.TreeSet; - -abstract class SetConversionDemo { - public static void main(String[] args) { - HashSet hashSet = new HashSet<>(); - hashSet.add(25); - hashSet.add(10); - hashSet.add(5); - hashSet.add(20); - hashSet.add(15); - - System.out.println("Original HashSet:"); - System.out.println(hashSet); - - TreeSet treeSet = new TreeSet<>(hashSet); - - System.out.println("\nConverted TreeSet:"); - System.out.println(treeSet); - } -} diff --git a/students/23K9006/23K9006-p29/pom.xml b/students/23K9006/23K9006-p29/pom.xml deleted file mode 100644 index 52969f901..000000000 --- a/students/23K9006/23K9006-p29/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p29 - двадцать девятое задание - diff --git a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java deleted file mode 100644 index be6368738..000000000 --- a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.mirea.practice.s0000001; - -import java.util.Scanner; - -abstract class CityRoads { - public static void main(String[] args) { - try (Scanner scanner = new Scanner(System.in)) { - int n = scanner.nextInt(); - - int[][] matrix = new int[n][n]; - for (int i = 0; i < n; i++) { - for (int j = 0; j < n; j++) { - matrix[i][j] = scanner.nextInt(); - } - } - - int roadCount = 0; - for (int i = 0; i < n; i++) { - for (int j = i + 1; j < n; j++) { - if (matrix[i][j] == 1) { - roadCount++; - } - } - } - - System.out.println(roadCount); - } - } -} diff --git a/students/23K9006/23K9006-p30/pom.xml b/students/23K9006/23K9006-p30/pom.xml deleted file mode 100644 index 98ac62968..000000000 --- a/students/23K9006/23K9006-p30/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 4.0.0 - - 23K9006 - ru.mirea.practice - 2024.1 - ../pom.xml - - 23K9006-p30 - тридцатое задание - diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java deleted file mode 100644 index 820cf86b8..000000000 --- a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java +++ /dev/null @@ -1,97 +0,0 @@ -package ru.mirea.practice.s0000001; - -public class BinaryTree { - static class Node { - int value; - Node left; - Node right; - - Node(int value) { - this.value = value; - this.left = null; - this.right = null; - } - } - - private Node root; - - public void add(int value) { - root = addRecursive(root, value); - } - - private Node addRecursive(Node current, int value) { - if (current == null) { - return new Node(value); - } - if (value < current.value) { - current.left = addRecursive(current.left, value); - } else if (value > current.value) { - current.right = addRecursive(current.right, value); - } - return current; - } - - public boolean contains(int value) { - return containsRecursive(root, value); - } - - private boolean containsRecursive(Node current, int value) { - if (current == null) { - return false; - } - if (value == current.value) { - return true; - } - return value < current.value - ? containsRecursive(current.left, value) - : containsRecursive(current.right, value); - } - - public void delete(int value) { - root = deleteRecursive(root, value); - } - - private Node deleteRecursive(Node current, int value) { - if (current == null) { - return null; - } - if (value == current.value) { - if (current.left == null && current.right == null) { - return null; - } - if (current.right == null) { - return current.left; - } - if (current.left == null) { - return current.right; - } - int smallestValue = findSmallestValue(current.right); - current.value = smallestValue; - current.right = deleteRecursive(current.right, smallestValue); - return current; - } - if (value < current.value) { - current.left = deleteRecursive(current.left, value); - return current; - } - current.right = deleteRecursive(current.right, value); - return current; - } - - private int findSmallestValue(Node root) { - return root.left == null ? root.value : findSmallestValue(root.left); - } - - public void traverseInOrder() { - traverseInOrderRecursive(root); - System.out.println(); - } - - private void traverseInOrderRecursive(Node node) { - if (node != null) { - traverseInOrderRecursive(node.left); - System.out.print(node.value + " "); - traverseInOrderRecursive(node.right); - } - } -} diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java deleted file mode 100644 index 72f67d78e..000000000 --- a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mirea.practice.s0000001; - -abstract class BinaryTreeDemo { - public static void main(String[] args) { - BinaryTree tree = new BinaryTree(); - tree.add(50); - tree.add(30); - tree.add(70); - tree.add(20); - tree.add(40); - tree.add(60); - tree.add(80); - - System.out.println("In-order traversal:"); - tree.traverseInOrder(); - - System.out.println("Tree contains 40: " + tree.contains(40)); - System.out.println("Tree contains 90: " + tree.contains(90)); - - System.out.println("Deleting 40..."); - tree.delete(40); - System.out.println("In-order traversal after deletion:"); - tree.traverseInOrder(); - } -} From d80827960daed324cec39da52910568168d346ad Mon Sep 17 00:00:00 2001 From: busindor2018 Date: Sun, 15 Dec 2024 23:47:22 +0300 Subject: [PATCH 15/15] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=E2=84=9621-30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K9006/23K9006-p21/pom.xml | 13 +++ .../practice/s0000001/1/GenericArray.java | 29 ++++++ .../ru/mirea/practice/s0000001/1/Main1.java | 21 ++++ .../ru/mirea/practice/s0000001/1/Main2.java | 21 ++++ students/23K9006/23K9006-p22/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Main1.java | 9 ++ .../practice/s0000001/1/RPnCalculator.java | 44 +++++++++ students/23K9006/23K9006-p23/pom.xml | 13 +++ .../mirea/practice/s0000001/1/ArrayQueue.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueAdt.java | 60 ++++++++++++ .../practice/s0000001/1/ArrayQueueModule.java | 60 ++++++++++++ .../ru/mirea/practice/s0000001/1/Main.java | 25 +++++ students/23K9006/23K9006-p24/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/1/Complex.java | 24 +++++ .../s0000001/1/ComplexAbstractFactory.java | 8 ++ .../practice/s0000001/1/ConcreteFactory.java | 13 +++ .../ru/mirea/practice/s0000001/1/Main.java | 13 +++ students/23K9006/23K9006-p25/pom.xml | 13 +++ .../s0000001/1/StringManipulator.java | 39 ++++++++ students/23K9006/23K9006-p26/pom.xml | 13 +++ .../practice/s0000001/1/ArrayInverter.java | 28 ++++++ students/23K9006/23K9006-p27/pom.xml | 13 +++ .../mirea/practice/s0000001/1/HashTable.java | 73 ++++++++++++++ .../practice/s0000001/1/HashTableDemo.java | 34 +++++++ .../practice/s0000001/1/HashTableTest.java | 35 +++++++ students/23K9006/23K9006-p28/pom.xml | 13 +++ .../s0000001/1/SetConversionDemo.java | 23 +++++ students/23K9006/23K9006-p29/pom.xml | 13 +++ .../mirea/practice/s0000001/1/CityRoads.java | 29 ++++++ students/23K9006/23K9006-p30/pom.xml | 13 +++ .../mirea/practice/s0000001/1/BinaryTree.java | 97 +++++++++++++++++++ .../practice/s0000001/1/BinaryTreeDemo.java | 25 +++++ 32 files changed, 900 insertions(+) create mode 100644 students/23K9006/23K9006-p21/pom.xml create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java create mode 100644 students/23K9006/23K9006-p22/pom.xml create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java create mode 100644 students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java create mode 100644 students/23K9006/23K9006-p23/pom.xml create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java create mode 100644 students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p24/pom.xml create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java create mode 100644 students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java create mode 100644 students/23K9006/23K9006-p25/pom.xml create mode 100644 students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java create mode 100644 students/23K9006/23K9006-p26/pom.xml create mode 100644 students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java create mode 100644 students/23K9006/23K9006-p27/pom.xml create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java create mode 100644 students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java create mode 100644 students/23K9006/23K9006-p28/pom.xml create mode 100644 students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java create mode 100644 students/23K9006/23K9006-p29/pom.xml create mode 100644 students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java create mode 100644 students/23K9006/23K9006-p30/pom.xml create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java create mode 100644 students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java diff --git a/students/23K9006/23K9006-p21/pom.xml b/students/23K9006/23K9006-p21/pom.xml new file mode 100644 index 000000000..35ff78ba0 --- /dev/null +++ b/students/23K9006/23K9006-p21/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p21 + двадцать первое задание + diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java new file mode 100644 index 000000000..8f223bde6 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/GenericArray.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +//второй main + +public class GenericArray { + private T[] array; + + public GenericArray(T[] array) { + this.array = array; + } + + public T get(int index) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + return array[index]; + } + + public void set(int index, T value) { + if (index < 0 || index >= array.length) { + throw new IndexOutOfBoundsException("Invalid index: " + index); + } + array[index] = value; + } + + public int size() { + return array.length; + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..bd78f1429 --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; +import java.util.List; + +abstract class Main1 { + public static List convertArrayToList(T[] array) { + return Arrays.asList(array); + } + + public static void main(String[] args) { + String[] stringArray = {"one", "two", "three"}; + Integer[] intArray = {1, 2, 3}; + + List stringList = convertArrayToList(stringArray); + List intList = convertArrayToList(intArray); + + System.out.println(stringList); + System.out.println(intList); + } +} diff --git a/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java new file mode 100644 index 000000000..5355b2d0a --- /dev/null +++ b/students/23K9006/23K9006-p21/src/main/java/ru/mirea/practice/s0000001/1/Main2.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s0000001; + +abstract class Main2 { + public static void main(String[] args) { + Integer[] intArray = {1, 2, 3, 4, 5}; + GenericArray genericIntArray = new GenericArray<>(intArray); + + System.out.println("Элемент по индексу 2: " + genericIntArray.get(2)); + genericIntArray.set(2, 10); + System.out.println("Обновленный элемент по индексу 2: " + genericIntArray.get(2)); + System.out.println("Размер массива: " + genericIntArray.size()); + + String[] stringArray = {"A", "B", "C"}; + GenericArray genericStringArray = new GenericArray<>(stringArray); + + System.out.println("Элемент по индексу 0: " + genericStringArray.get(0)); + genericStringArray.set(0, "Z"); + System.out.println("Обновленный элемент по индексу 0: " + genericStringArray.get(0)); + System.out.println("Размер массива: " + genericStringArray.size()); + } +} diff --git a/students/23K9006/23K9006-p22/pom.xml b/students/23K9006/23K9006-p22/pom.xml new file mode 100644 index 000000000..d7e0bf479 --- /dev/null +++ b/students/23K9006/23K9006-p22/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p22 + двадцать второе задание + diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java new file mode 100644 index 000000000..e1d394dbb --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/Main1.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s0000001; + +abstract class Main1 { + public static void main(String[] args) { + String rpnExpression = "3 4 + 2 * 7 /"; + double result = RPnCalculator.calculate(rpnExpression); + System.out.println("Результат: " + result); + } +} diff --git a/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java new file mode 100644 index 000000000..ab93aa9f2 --- /dev/null +++ b/students/23K9006/23K9006-p22/src/main/java/ru/mirea/practice/s0000001/1/RPnCalculator.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class RPnCalculator { + public static double calculate(String expression) { + Stack stack = new Stack<>(); + String[] tokens = expression.split("\\s+"); + + for (String token : tokens) { + if (isOperator(token)) { + double b = stack.pop(); + double a = stack.pop(); + stack.push(applyOperation(a, b, token)); + } else { + stack.push(Double.parseDouble(token)); + } + } + + return stack.pop(); + } + + private static boolean isOperator(String token) { + return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token); + } + + private static double applyOperation(double a, double b, String operator) { + switch (operator) { + case "+": + return a + b; + case "-": + return a - b; + case "*": + return a * b; + case "/": + if (b == 0) { + throw new ArithmeticException("Деление на ноль"); + } + return a / b; + default: + throw new IllegalArgumentException("Недопустимый оператор: " + operator); + } + } +} diff --git a/students/23K9006/23K9006-p23/pom.xml b/students/23K9006/23K9006-p23/pom.xml new file mode 100644 index 000000000..4bba3a87b --- /dev/null +++ b/students/23K9006/23K9006-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p23 + двадцать третье задание + diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java new file mode 100644 index 000000000..027dfa4c3 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueue.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueue { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public int size() { + return size; + } + + public boolean isEmpty() { + return size == 0; + } + + public void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java new file mode 100644 index 000000000..70237c8d5 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueAdt.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +public class ArrayQueueAdt { + private Object[] elements = new Object[10]; + private int head = 0; + private int tail = 0; + private int size = 0; + + public static void enqueue(ArrayQueueAdt queue, Object element) { + ensureCapacity(queue, queue.size + 1); + queue.elements[queue.tail] = element; + queue.tail = (queue.tail + 1) % queue.elements.length; + queue.size++; + } + + public static Object element(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + return queue.elements[queue.head]; + } + + public static Object dequeue(ArrayQueueAdt queue) { + if (isEmpty(queue)) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = queue.elements[queue.head]; + queue.elements[queue.head] = null; + queue.head = (queue.head + 1) % queue.elements.length; + queue.size--; + return result; + } + + public static int size(ArrayQueueAdt queue) { + return queue.size; + } + + public static boolean isEmpty(ArrayQueueAdt queue) { + return queue.size == 0; + } + + public static void clear(ArrayQueueAdt queue) { + queue.elements = new Object[10]; + queue.head = 0; + queue.tail = 0; + queue.size = 0; + } + + private static void ensureCapacity(ArrayQueueAdt queue, int capacity) { + if (capacity > queue.elements.length) { + Object[] newArray = new Object[2 * queue.elements.length]; + for (int i = 0; i < queue.size; i++) { + newArray[i] = queue.elements[(queue.head + i) % queue.elements.length]; + } + queue.elements = newArray; + queue.head = 0; + queue.tail = queue.size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java new file mode 100644 index 000000000..5c84fd3bf --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/ArrayQueueModule.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s0000001; + +abstract class ArrayQueueModule { + private static Object[] elements = new Object[10]; + private static int head = 0; + private static int tail = 0; + private static int size = 0; + + public static void enqueue(Object element) { + ensureCapacity(size + 1); + elements[tail] = element; + tail = (tail + 1) % elements.length; + size++; + } + + public static Object element() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + return elements[head]; + } + + public static Object dequeue() { + if (isEmpty()) { + throw new IllegalStateException("Queue is empty"); + } + final Object result = elements[head]; + elements[head] = null; + head = (head + 1) % elements.length; + size--; + return result; + } + + public static int size() { + return size; + } + + public static boolean isEmpty() { + return size == 0; + } + + public static void clear() { + elements = new Object[10]; + head = 0; + tail = 0; + size = 0; + } + + private static void ensureCapacity(int capacity) { + if (capacity > elements.length) { + Object[] newArray = new Object[2 * elements.length]; + for (int i = 0; i < size; i++) { + newArray[i] = elements[(head + i) % elements.length]; + } + elements = newArray; + head = 0; + tail = size; + } + } +} diff --git a/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..4bb6f9d33 --- /dev/null +++ b/students/23K9006/23K9006-p23/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + // ArrayQueueModule + ArrayQueueModule.enqueue(10); + ArrayQueueModule.enqueue(20); + System.out.println(ArrayQueueModule.dequeue()); + System.out.println(ArrayQueueModule.size()); + + // ArrayQueueADT + ArrayQueueAdt adtQueue = new ArrayQueueAdt(); + ArrayQueueAdt.enqueue(adtQueue, 10); + ArrayQueueAdt.enqueue(adtQueue, 20); + System.out.println(ArrayQueueAdt.dequeue(adtQueue)); + System.out.println(ArrayQueueAdt.size(adtQueue)); + + // ArrayQueue + ArrayQueue queue = new ArrayQueue(); + queue.enqueue(10); + queue.enqueue(20); + System.out.println(queue.dequeue()); + System.out.println(queue.size()); + } +} diff --git a/students/23K9006/23K9006-p24/pom.xml b/students/23K9006/23K9006-p24/pom.xml new file mode 100644 index 000000000..cdb26a8f2 --- /dev/null +++ b/students/23K9006/23K9006-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p24 + двадцать четвертое задание + diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java new file mode 100644 index 000000000..c5445accd --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Complex.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001; + +public class Complex { + private final int real; + private final int image; + + public Complex(int real, int image) { + this.real = real; + this.image = image; + } + + public int getReal() { + return real; + } + + public int getImage() { + return image; + } + + @Override + public String toString() { + return real + " + " + image + "i"; + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java new file mode 100644 index 000000000..8f81f98cc --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ComplexAbstractFactory.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s0000001; + +public interface ComplexAbstractFactory { + + Complex createComplex(); + + Complex createComplex(int real, int image); +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java new file mode 100644 index 000000000..ac9eb721e --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/ConcreteFactory.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +public class ConcreteFactory implements ComplexAbstractFactory { + @Override + public Complex createComplex() { + return new Complex(0, 0); + } + + @Override + public Complex createComplex(int real, int image) { + return new Complex(real, image); + } +} diff --git a/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java new file mode 100644 index 000000000..3de59d94f --- /dev/null +++ b/students/23K9006/23K9006-p24/src/main/java/ru/mirea/practice/s0000001/1/Main.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001; + +abstract class Main { + public static void main(String[] args) { + ComplexAbstractFactory factory = new ConcreteFactory(); + + Complex defaultComplex = factory.createComplex(); + System.out.println("Default complex number: " + defaultComplex); + + Complex customComplex = factory.createComplex(5, 10); + System.out.println("Custom complex number: " + customComplex); + } +} diff --git a/students/23K9006/23K9006-p25/pom.xml b/students/23K9006/23K9006-p25/pom.xml new file mode 100644 index 000000000..d8abc7357 --- /dev/null +++ b/students/23K9006/23K9006-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p25 + двадцать пятое задание + diff --git a/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java new file mode 100644 index 000000000..6a78208e6 --- /dev/null +++ b/students/23K9006/23K9006-p25/src/main/java/ru/mirea/practice/s0000001/1/StringManipulator.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +abstract class StringManipulator { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Введите строку для манипуляции:"); + String input = scanner.nextLine(); + + System.out.println("Введите регулярное выражение для разбиения строки:"); + String regex = scanner.nextLine(); + + System.out.println("Результаты разбиения строки:"); + String[] splitResult = input.split(regex); + for (int i = 0; i < splitResult.length; i++) { + System.out.println((i + 1) + ": " + splitResult[i]); + } + + System.out.println("\nВведите регулярное выражение для поиска в строке:"); + regex = scanner.nextLine(); + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(input); + + System.out.println("Результаты поиска в строке:"); + boolean found = false; + while (matcher.find()) { + System.out.println("Найдено: " + matcher.group() + " (начало: " + matcher.start() + ", конец: " + matcher.end() + ")"); + found = true; + } + + if (!found) { + System.out.println("Совпадений не найдено."); + } + } + } +} diff --git a/students/23K9006/23K9006-p26/pom.xml b/students/23K9006/23K9006-p26/pom.xml new file mode 100644 index 000000000..6ebf7dfbc --- /dev/null +++ b/students/23K9006/23K9006-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p26 + двадцать шестое задание + diff --git a/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java new file mode 100644 index 000000000..f4c0da3a3 --- /dev/null +++ b/students/23K9006/23K9006-p26/src/main/java/ru/mirea/practice/s0000001/1/ArrayInverter.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001; + +import java.util.Stack; + +abstract class ArrayInverter { + public static void invertArray(int[] array) { + Stack stack = new Stack<>(); + for (int num : array) { + stack.push(num); + } + for (int i = 0; i < array.length; i++) { + array[i] = stack.pop(); + } + } + + public static void main(String[] args) { + int[] array = {1, 2, 3, 4, 5}; + System.out.println("Исходный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + invertArray(array); + System.out.println("\nИнвертированный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + } +} diff --git a/students/23K9006/23K9006-p27/pom.xml b/students/23K9006/23K9006-p27/pom.xml new file mode 100644 index 000000000..daad6b28c --- /dev/null +++ b/students/23K9006/23K9006-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p27 + двадцать седьмое задание + diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java new file mode 100644 index 000000000..3ec4dcc80 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTable.java @@ -0,0 +1,73 @@ +package ru.mirea.practice.s0000001; + +import java.util.LinkedList; + +public class HashTable { + private static final int TABLE_SIZE = 256; + private final LinkedList[] table; + + public HashTable() { + table = new LinkedList[TABLE_SIZE]; + hashtabInit(); + } + + private static class Entry { + final String key; + final String value; + + Entry(String key, String value) { + this.key = key; + this.value = value; + } + } + + private int hashtabHash(String key) { + int hash = 0; + for (char c : key.toCharArray()) { + hash = (hash * 31 + c) % TABLE_SIZE; + } + return hash; + } + + private void hashtabInit() { + for (int i = 0; i < TABLE_SIZE; i++) { + table[i] = new LinkedList<>(); + } + } + + public void hashtabAdd(String key, String value) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + throw new IllegalArgumentException("Key already exists: " + key); + } + } + table[hash].add(new Entry(key, value)); + } + + public String hashtabLookup(String key) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + return entry.value; + } + } + return null; + } + + public void hashtabDelete(String key) { + int hash = hashtabHash(key); + table[hash].removeIf(entry -> entry.key.equals(key)); + } + + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + + System.out.println("Lookup 'two': " + hashtable.hashtabLookup("two")); + hashtable.hashtabDelete("two"); + System.out.println("Lookup 'two' after deletion: " + hashtable.hashtabLookup("two")); + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java new file mode 100644 index 000000000..5e944032c --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableDemo.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableDemo { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + System.out.println("\nSearch for the key 'three':"); + String value = hashtable.hashtabLookup("three"); + if (value != null) { + System.out.println("'three' found with value: " + value); + } else { + System.out.println("'three' not found."); + } + + System.out.println("\nDeleting the key 'three'..."); + hashtable.hashtabDelete("three"); + + System.out.println("\nDictionary after deleting 'three':"); + for (String key : new String[]{"one", "two", "three", "four", "five"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java new file mode 100644 index 000000000..f81f731f7 --- /dev/null +++ b/students/23K9006/23K9006-p27/src/main/java/ru/mirea/practice/s0000001/1/HashTableTest.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s0000001; + +abstract class HashTableTest { + public static void main(String[] args) { + HashTable hashtable = new HashTable(); + + hashtable.hashtabAdd("one", "1"); + hashtable.hashtabAdd("two", "2"); + hashtable.hashtabAdd("three", "3"); + hashtable.hashtabAdd("four", "4"); + hashtable.hashtabAdd("five", "5"); + hashtable.hashtabAdd("six", "6"); + hashtable.hashtabAdd("seven", "7"); + hashtable.hashtabAdd("eight", "8"); + hashtable.hashtabAdd("nine", "9"); + hashtable.hashtabAdd("ten", "10"); + + System.out.println("Initial dictionary:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabDelete("five"); + System.out.println("\nDictionary after deleting 'five':"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + + hashtable.hashtabAdd("five", "15"); + System.out.println("\nDictionary after adding 'five' with new value:"); + for (String key : new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}) { + System.out.println(key + ": " + hashtable.hashtabLookup(key)); + } + } +} diff --git a/students/23K9006/23K9006-p28/pom.xml b/students/23K9006/23K9006-p28/pom.xml new file mode 100644 index 000000000..ff15112a1 --- /dev/null +++ b/students/23K9006/23K9006-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p28 + двадцать восьмое задание + diff --git a/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java new file mode 100644 index 000000000..4997b6738 --- /dev/null +++ b/students/23K9006/23K9006-p28/src/main/java/ru/mirea/practice/s0000001/1/SetConversionDemo.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s0000001; + +import java.util.HashSet; +import java.util.TreeSet; + +abstract class SetConversionDemo { + public static void main(String[] args) { + HashSet hashSet = new HashSet<>(); + hashSet.add(25); + hashSet.add(10); + hashSet.add(5); + hashSet.add(20); + hashSet.add(15); + + System.out.println("Original HashSet:"); + System.out.println(hashSet); + + TreeSet treeSet = new TreeSet<>(hashSet); + + System.out.println("\nConverted TreeSet:"); + System.out.println(treeSet); + } +} diff --git a/students/23K9006/23K9006-p29/pom.xml b/students/23K9006/23K9006-p29/pom.xml new file mode 100644 index 000000000..52969f901 --- /dev/null +++ b/students/23K9006/23K9006-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p29 + двадцать девятое задание + diff --git a/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java new file mode 100644 index 000000000..be6368738 --- /dev/null +++ b/students/23K9006/23K9006-p29/src/main/java/ru/mirea/practice/s0000001/1/CityRoads.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; + +abstract class CityRoads { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + int n = scanner.nextInt(); + + int[][] matrix = new int[n][n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + matrix[i][j] = scanner.nextInt(); + } + } + + int roadCount = 0; + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (matrix[i][j] == 1) { + roadCount++; + } + } + } + + System.out.println(roadCount); + } + } +} diff --git a/students/23K9006/23K9006-p30/pom.xml b/students/23K9006/23K9006-p30/pom.xml new file mode 100644 index 000000000..98ac62968 --- /dev/null +++ b/students/23K9006/23K9006-p30/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K9006 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K9006-p30 + тридцатое задание + diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java new file mode 100644 index 000000000..820cf86b8 --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTree.java @@ -0,0 +1,97 @@ +package ru.mirea.practice.s0000001; + +public class BinaryTree { + static class Node { + int value; + Node left; + Node right; + + Node(int value) { + this.value = value; + this.left = null; + this.right = null; + } + } + + private Node root; + + public void add(int value) { + root = addRecursive(root, value); + } + + private Node addRecursive(Node current, int value) { + if (current == null) { + return new Node(value); + } + if (value < current.value) { + current.left = addRecursive(current.left, value); + } else if (value > current.value) { + current.right = addRecursive(current.right, value); + } + return current; + } + + public boolean contains(int value) { + return containsRecursive(root, value); + } + + private boolean containsRecursive(Node current, int value) { + if (current == null) { + return false; + } + if (value == current.value) { + return true; + } + return value < current.value + ? containsRecursive(current.left, value) + : containsRecursive(current.right, value); + } + + public void delete(int value) { + root = deleteRecursive(root, value); + } + + private Node deleteRecursive(Node current, int value) { + if (current == null) { + return null; + } + if (value == current.value) { + if (current.left == null && current.right == null) { + return null; + } + if (current.right == null) { + return current.left; + } + if (current.left == null) { + return current.right; + } + int smallestValue = findSmallestValue(current.right); + current.value = smallestValue; + current.right = deleteRecursive(current.right, smallestValue); + return current; + } + if (value < current.value) { + current.left = deleteRecursive(current.left, value); + return current; + } + current.right = deleteRecursive(current.right, value); + return current; + } + + private int findSmallestValue(Node root) { + return root.left == null ? root.value : findSmallestValue(root.left); + } + + public void traverseInOrder() { + traverseInOrderRecursive(root); + System.out.println(); + } + + private void traverseInOrderRecursive(Node node) { + if (node != null) { + traverseInOrderRecursive(node.left); + System.out.print(node.value + " "); + traverseInOrderRecursive(node.right); + } + } +} diff --git a/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java new file mode 100644 index 000000000..72f67d78e --- /dev/null +++ b/students/23K9006/23K9006-p30/src/main/java/ru/mirea/practice/s0000001/1/BinaryTreeDemo.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001; + +abstract class BinaryTreeDemo { + public static void main(String[] args) { + BinaryTree tree = new BinaryTree(); + tree.add(50); + tree.add(30); + tree.add(70); + tree.add(20); + tree.add(40); + tree.add(60); + tree.add(80); + + System.out.println("In-order traversal:"); + tree.traverseInOrder(); + + System.out.println("Tree contains 40: " + tree.contains(40)); + System.out.println("Tree contains 90: " + tree.contains(90)); + + System.out.println("Deleting 40..."); + tree.delete(40); + System.out.println("In-order traversal after deletion:"); + tree.traverseInOrder(); + } +}