diff --git a/pom.xml b/pom.xml
index 3abccea2f..cb1ad7028 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,7 @@
students/23K0135
students/23K0623
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/First.java b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java
new file mode 100644
index 000000000..2d5edfb89
--- /dev/null
+++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/First.java
@@ -0,0 +1,15 @@
+package ru.mirea.practice.s0000001;
+
+public abstract class First {
+ public static void main(String[] args) {
+ int[] numbers = {1, 2, 3, 4, 5};
+ int sum = 0;
+ 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
new file mode 100644
index 000000000..7f342941a
--- /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 abstract class Four {
+ public static void main(String[] args) {
+ 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();
+ }
+
+ 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++;
+ }
+
+ System.out.println("Сумма элементов массива: " + sum);
+ System.out.println("Максимальный элемент: " + max);
+ System.out.println("Минимальный элемент: " + min);
+ }
+ }
+}
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..01d0bb3ef
--- /dev/null
+++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Second.java
@@ -0,0 +1,23 @@
+package ru.mirea.practice.s0000001;
+
+import java.util.Scanner;
+
+public abstract class Second {
+ public static void main(String[] args) {
+ int num;
+
+ 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 + " ");
+ }
+ }
+ }
+}
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..6d002da15
--- /dev/null
+++ b/students/23K9006/23K9006-p01/src/main/java/ru/mirea/practice/s0000001/Third.java
@@ -0,0 +1,19 @@
+package ru.mirea.practice.s0000001;
+
+public abstract class Third {
+ public static void main(String[] args) {
+ int[] numbers = {1, 2, 3, 4, 5};
+
+ int sum = 0;
+ for (int number : numbers) {
+ sum += number;
+ }
+
+
+ double average = (double) sum / numbers.length;
+
+ System.out.println("Сумма элементов массива: " + sum);
+ System.out.println("Среднее арифметическое: " + average);
+ }
+}
+
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-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..f0398c898
--- /dev/null
+++ b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/Author.java
@@ -0,0 +1,34 @@
+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/TestAuthor.java b/students/23K9006/23K9006-p02/src/main/java/ru/mirea/practice/s0000001/1/TestAuthor.java
new file mode 100644
index 000000000..9dc0953cf
--- /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 abstract 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-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..4000e4b84
--- /dev/null
+++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/First.java
@@ -0,0 +1,40 @@
+package ru.mirea.practice.s0000001;
+
+import java.util.Arrays;
+import java.util.Random;
+
+public abstract 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..629addb54
--- /dev/null
+++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Four.java
@@ -0,0 +1,36 @@
+package ru.mirea.practice.s0000001;
+
+public abstract 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..b98735aba
--- /dev/null
+++ b/students/23K9006/23K9006-p03/src/main/java/ru/mirea/practice/s0000001/Third.java
@@ -0,0 +1,35 @@
+package ru.mirea.practice.s0000001;
+
+import java.util.Random;
+
+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);
+ }
+
+ 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..55de259ca
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Atelier.java
@@ -0,0 +1,35 @@
+package ru.mirea.practice.s0000001;
+
+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..484f97daa
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Clothes.java
@@ -0,0 +1,25 @@
+package ru.mirea.practice.s0000001;
+
+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..fefc70774
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Main.java
@@ -0,0 +1,38 @@
+package ru.mirea.practice.s0000001;
+
+public abstract 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("Неизвестное время года");
+ 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
new file mode 100644
index 000000000..aac375993
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/MenClothing.java
@@ -0,0 +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
new file mode 100644
index 000000000..7b07d741e
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Pants.java
@@ -0,0 +1,17 @@
+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);
+ }
+
+ @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..54605a11e
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Season.java
@@ -0,0 +1,27 @@
+package ru.mirea.practice.s0000001;
+
+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..23ea574ca
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Size.java
@@ -0,0 +1,28 @@
+package ru.mirea.practice.s0000001;
+
+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..ef9e168e0
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Skirt.java
@@ -0,0 +1,12 @@
+package ru.mirea.practice.s0000001;
+
+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..d4b93458f
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/TShirt.java
@@ -0,0 +1,17 @@
+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);
+ }
+
+ @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/Tie.java b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java
new file mode 100644
index 000000000..c1c4a91e9
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/Tie.java
@@ -0,0 +1,12 @@
+package ru.mirea.practice.s0000001;
+
+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..7d5829871
--- /dev/null
+++ b/students/23K9006/23K9006-p04/src/main/java/ru/mirea/practice/s0000001/WomenClothing.java
@@ -0,0 +1,5 @@
+package ru.mirea.practice.s0000001;
+
+public interface WomenClothing {
+ void dressWomen();
+}
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-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/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-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/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-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/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-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/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-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/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
+ Десятое задание
+
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/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/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/README.adoc b/students/23K9006/README.adoc
new file mode 100644
index 000000000..cc3fdff45
--- /dev/null
+++ b/students/23K9006/README.adoc
@@ -0,0 +1,2 @@
+Плешаков Илья
+КАБО-01-23
diff --git a/students/23K9006/pom.xml b/students/23K9006/pom.xml
new file mode 100644
index 000000000..3922f694e
--- /dev/null
+++ b/students/23K9006/pom.xml
@@ -0,0 +1,45 @@
+
+
+ 4.0.0
+
+ algorithms-and-data-structures
+ ru.mirea.practice
+ 2024.1
+ ../../pom.xml
+
+ 23K9006
+ pom
+ Практическая работа Ильи
+
+
+ 23K9006-p01
+ 23K9006-p02
+ 23K9006-p03
+ 23K9006-p04
+ 23K9006-p05
+ 23K9006-p06
+ 23K9006-p07
+ 23K9006-p08
+ 23K9006-p09
+ 23K9006-p10
+ 23K9006-p11
+ 23K9006-p13
+ 23K9006-p14
+ 23K9006-p16
+ 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
+
+
+