From c893021b478d84c52e253b04bdc331338183e993 Mon Sep 17 00:00:00 2001 From: I_like_Space Date: Fri, 29 Nov 2024 19:16:57 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=9623?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K0120/23K0120-p23/pom.xml | 13 +++ .../java/ru/mirea/practice/s23k0120/Main.java | 12 ++ .../practice/s23k0120/task1/ArrayQueue.java | 107 ++++++++++++++++++ .../s23k0120/task1/ArrayQueueAdt.java | 17 +++ .../s23k0120/task1/ArrayQueueTest.java | 27 +++++ .../s23k0120/task2/AbstractQueue.java | 29 +++++ .../practice/s23k0120/task2/LinkedQueue.java | 49 ++++++++ .../mirea/practice/s23k0120/task2/Queue.java | 13 +++ students/23K0120/pom.xml | 1 + 9 files changed, 268 insertions(+) create mode 100644 students/23K0120/23K0120-p23/pom.xml create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/Main.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueue.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueAdt.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueTest.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractQueue.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/LinkedQueue.java create mode 100644 students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/Queue.java diff --git a/students/23K0120/23K0120-p23/pom.xml b/students/23K0120/23K0120-p23/pom.xml new file mode 100644 index 000000000..b5671cb1c --- /dev/null +++ b/students/23K0120/23K0120-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p23 + Очередь + diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..b81d5a3b0 --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Двадцать третья практическая работа!"); + } +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueue.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueue.java new file mode 100644 index 000000000..5216a220a --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueue.java @@ -0,0 +1,107 @@ +package ru.mirea.practice.s23k0120.task1; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public class ArrayQueue implements ArrayQueueAdt { + private final int size; + private final List array; + private int indexFront; + private int indexRear; + + ArrayQueue(Collection collection) { + array = new ArrayList<>(collection); + this.size = collection.size(); + indexFront = 0; + indexRear = this.size - 1; + } + + ArrayQueue(int size) { + array = new ArrayList<>(); + for (int i = 0; i < size; i++) { + array.add(i, null); + } + indexFront = 0; + indexRear = -1; + this.size = size; + } + + @Override + public void enqueue(T element) { + indexRear += 1; + if (indexRear == size) { + indexRear = 0; + } + array.set(indexRear, element); + } + + @Override + public T dequeue() { + T element; + if (isEmpty()) { + element = null; + } else { + element = array.get(indexFront); + if (indexRear == indexFront) { + indexRear -= 1; + } + if (indexRear == -1) { + indexRear = size - 1; + } + indexFront += 1; + if (indexFront == size) { + indexFront = 0; + } + } + return element; + } + + @Override + public int size() { + return size; + } + + @Override + public boolean isEmpty() { + return indexRear == -1; + } + + @Override + public void clear() { + array.clear(); + } + + @Override + public T front() { + return array.get(0); + } + + @Override + public T rear() { + return array.get(indexRear); + } + + @Override + public String toString() { + ArrayList tempList = new ArrayList<>(size); + if (indexRear == -1) { + return "[]"; + } else if (indexFront < indexRear) { + for (int i = indexFront; i < indexRear + 1; i++) { + tempList.add(array.get(i)); + } + } else { + for (int i = indexFront; i < size; i++) { + tempList.add(array.get(i)); + } + for (int i = 0; i < indexRear + 1; i++) { + if (i == indexFront) { + break; + } + tempList.add(array.get(i)); + } + } + return tempList.toString(); + } +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueAdt.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueAdt.java new file mode 100644 index 000000000..9bfc1fd0d --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueAdt.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23k0120.task1; + +public interface ArrayQueueAdt { + void enqueue(T element); + + T dequeue(); + + int size(); + + boolean isEmpty(); + + void clear(); + + T front(); + + T rear(); +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueTest.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueTest.java new file mode 100644 index 000000000..3a5b36821 --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task1/ArrayQueueTest.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23k0120.task1; + +public abstract class ArrayQueueTest { + public static void main(String[] args) { + ArrayQueue queue = new ArrayQueue<>(5); + queue.enqueue(1); + queue.enqueue(2); + queue.enqueue(3); + queue.enqueue(4); + queue.enqueue(5); + System.out.println(queue); + queue.enqueue(8); + System.out.println(queue); + queue.dequeue(); + queue.dequeue(); + queue.dequeue(); + System.out.println(queue); + queue.enqueue(3); + System.out.println(queue); + queue.enqueue(2); + System.out.println(queue); + queue.enqueue(1); + System.out.println(queue); + queue.dequeue(); + System.out.println(queue); + } +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractQueue.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractQueue.java new file mode 100644 index 000000000..be41415f4 --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractQueue.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23k0120.task2; + +import java.util.AbstractList; + +public abstract class AbstractQueue implements Queue { + private int size; + private AbstractList list; + + @Override + public abstract void enqueue(T element); + + @Override + public abstract T dequeue(); + + @Override + public int size() { + return size; + } + + @Override + public boolean isEmpty() { + return list.isEmpty(); + } + + @Override + public void clear() { + list.clear(); + } +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/LinkedQueue.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/LinkedQueue.java new file mode 100644 index 000000000..d708087e4 --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/LinkedQueue.java @@ -0,0 +1,49 @@ +package ru.mirea.practice.s23k0120.task2; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +public class LinkedQueue implements Queue { + private final List linkedList; + private int size; + + LinkedQueue(Collection collection) { + linkedList = new LinkedList<>(collection); + this.size = collection.size(); + } + + LinkedQueue() { + linkedList = new LinkedList<>(); + this.size = 0; + } + + @Override + public void enqueue(T element) { + linkedList.add(size - 1, element); + size += 1; + } + + @Override + public T dequeue() { + T element = linkedList.get(0); + linkedList.remove(0); + size -= 1; + return element; + } + + @Override + public int size() { + return size; + } + + @Override + public boolean isEmpty() { + return linkedList.isEmpty(); + } + + @Override + public void clear() { + linkedList.clear(); + } +} diff --git a/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/Queue.java b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/Queue.java new file mode 100644 index 000000000..876533c9a --- /dev/null +++ b/students/23K0120/23K0120-p23/src/main/java/ru/mirea/practice/s23k0120/task2/Queue.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23k0120.task2; + +public interface Queue { + void enqueue(T element); + + T dequeue(); + + int size(); + + boolean isEmpty(); + + void clear(); +} diff --git a/students/23K0120/pom.xml b/students/23K0120/pom.xml index 71c87f518..a5ae6098e 100644 --- a/students/23K0120/pom.xml +++ b/students/23K0120/pom.xml @@ -36,5 +36,6 @@ 23K0120-p20 23K0120-p21 23K0120-p22 + 23K0120-p23 From ba3aefe79f155f0cd428e9d64e348c9103fdcfb2 Mon Sep 17 00:00:00 2001 From: I_like_Space Date: Sat, 30 Nov 2024 13:54:16 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=9624?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K0120/23K0120-p24/pom.xml | 13 ++++++ .../java/ru/mirea/practice/s23k0120/Main.java | 12 +++++ .../practice/s23k0120/task1/Complex.java | 44 +++++++++++++++++++ .../task1/ComplexAbstractFactory.java | 7 +++ .../s23k0120/task1/ComplexFactory.java | 13 ++++++ .../s23k0120/task2/AbstractChairFactory.java | 9 ++++ .../mirea/practice/s23k0120/task2/Chair.java | 5 +++ .../practice/s23k0120/task2/ChairFactory.java | 19 ++++++++ .../mirea/practice/s23k0120/task2/Client.java | 13 ++++++ .../s23k0120/task2/FunctionalChair.java | 8 ++++ .../practice/s23k0120/task2/MagicChair.java | 8 ++++ .../s23k0120/task2/VictorianChair.java | 13 ++++++ students/23K0120/pom.xml | 1 + 13 files changed, 165 insertions(+) create mode 100644 students/23K0120/23K0120-p24/pom.xml create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/Main.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/Complex.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexAbstractFactory.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexFactory.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractChairFactory.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Chair.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/ChairFactory.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Client.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/FunctionalChair.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/MagicChair.java create mode 100644 students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/VictorianChair.java diff --git a/students/23K0120/23K0120-p24/pom.xml b/students/23K0120/23K0120-p24/pom.xml new file mode 100644 index 000000000..b3cf8351a --- /dev/null +++ b/students/23K0120/23K0120-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p24 + Порождающие паттерны + diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..0396ae4fc --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Двадцать четвёртая практическая работа!"); + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/Complex.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/Complex.java new file mode 100644 index 000000000..5f871ac26 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/Complex.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s23k0120.task1; + + +public class Complex { + private double real; + private double imag; + + public Complex(double real, double imag) { + this.real = real; + this.imag = imag; + } + + public Complex() { + this.real = 0; + this.imag = 0; + } + + public double getReal() { + return real; + } + + public void setReal(double real) { + this.real = real; + } + + public double getImag() { + return imag; + } + + public void setImag(double imag) { + this.imag = imag; + } + + @Override + public String toString() { + String complexString; + if (imag >= 0) { + complexString = String.format("%f + %fi", real, imag); + } else { + complexString = String.format("%f - %fi", real, Math.abs(imag)); + } + return complexString; + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexAbstractFactory.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexAbstractFactory.java new file mode 100644 index 000000000..6e651ccae --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexAbstractFactory.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s23k0120.task1; + +public interface ComplexAbstractFactory { + Complex createComplex(); + + Complex createComplex(int real, int imag); +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexFactory.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexFactory.java new file mode 100644 index 000000000..286858a79 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task1/ComplexFactory.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23k0120.task1; + +public class ComplexFactory implements ComplexAbstractFactory { + @Override + public Complex createComplex() { + return new Complex(); + } + + @Override + public Complex createComplex(int real, int imag) { + return new Complex(real, imag); + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractChairFactory.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractChairFactory.java new file mode 100644 index 000000000..40a7fc96d --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/AbstractChairFactory.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s23k0120.task2; + +public abstract class AbstractChairFactory { + abstract VictorianChair createVictorianChair(int age); + + abstract MagicChair createMagicChair(); + + abstract FunctionalChair createFunctionalChair(); +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Chair.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Chair.java new file mode 100644 index 000000000..3df81b72a --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Chair.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23k0120.task2; + +public interface Chair { + +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/ChairFactory.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/ChairFactory.java new file mode 100644 index 000000000..120c05bd6 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/ChairFactory.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23k0120.task2; + +public class ChairFactory extends AbstractChairFactory { + + @Override + VictorianChair createVictorianChair(int age) { + return new VictorianChair(age); + } + + @Override + MagicChair createMagicChair() { + return new MagicChair(); + } + + @Override + FunctionalChair createFunctionalChair() { + return new FunctionalChair(); + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Client.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Client.java new file mode 100644 index 000000000..922a00b38 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/Client.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23k0120.task2; + +public class Client { + private Chair chair; + + public void sit() { + System.out.printf("The client sat on a %s", chair); + } + + public void setChair(Chair chair) { + this.chair = chair; + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/FunctionalChair.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/FunctionalChair.java new file mode 100644 index 000000000..fb0576d44 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/FunctionalChair.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s23k0120.task2; + +public class FunctionalChair { + + public int sum(int a, int b) { + return a + b; + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/MagicChair.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/MagicChair.java new file mode 100644 index 000000000..530792974 --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/MagicChair.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s23k0120.task2; + +public class MagicChair { + + void doMagic() { + System.out.println("Abracadabra!"); + } +} diff --git a/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/VictorianChair.java b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/VictorianChair.java new file mode 100644 index 000000000..198d1501a --- /dev/null +++ b/students/23K0120/23K0120-p24/src/main/java/ru/mirea/practice/s23k0120/task2/VictorianChair.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23k0120.task2; + +public class VictorianChair implements Chair { + private final int age; + + public VictorianChair(int age) { + this.age = age; + } + + public int getAge() { + return age; + } +} diff --git a/students/23K0120/pom.xml b/students/23K0120/pom.xml index a5ae6098e..49eec601d 100644 --- a/students/23K0120/pom.xml +++ b/students/23K0120/pom.xml @@ -37,5 +37,6 @@ 23K0120-p21 23K0120-p22 23K0120-p23 + 23K0120-p24 From d87670cda345bc4a603233141dea3252eac64972 Mon Sep 17 00:00:00 2001 From: I_like_Space Date: Sat, 30 Nov 2024 17:15:15 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=9625?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K0120/23K0120-p25/pom.xml | 13 ++++++++++ .../java/ru/mirea/practice/s23k0120/Main.java | 12 +++++++++ .../mirea/practice/s23k0120/task4/Main.java | 17 +++++++++++++ .../mirea/practice/s23k0120/task5/Main.java | 25 +++++++++++++++++++ students/23K0120/pom.xml | 1 + 5 files changed, 68 insertions(+) create mode 100644 students/23K0120/23K0120-p25/pom.xml create mode 100644 students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/Main.java create mode 100644 students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java create mode 100644 students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task5/Main.java diff --git a/students/23K0120/23K0120-p25/pom.xml b/students/23K0120/23K0120-p25/pom.xml new file mode 100644 index 000000000..1a9dc0ee0 --- /dev/null +++ b/students/23K0120/23K0120-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p25 + Regex + diff --git a/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..fd5a3ebbb --- /dev/null +++ b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Двадцать пятая практическая работа!"); + } +} diff --git a/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java new file mode 100644 index 000000000..6130909eb --- /dev/null +++ b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23k0120.task4; + +import java.util.Scanner; +import java.util.regex.Pattern; + +public abstract class Main { + public static void main(String[] args) { + Pattern pattern = Pattern.compile("([a-zA-Z.\\d])+@(([a-z]+\\.[a-z]+)|[a-z]+)"); + String input; + try (Scanner scanner = new Scanner(System.in)) { + input = scanner.nextLine(); + } + if (pattern.matcher(input).matches()) { + System.out.println("Input string is a valid email address"); + } + } +} diff --git a/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task5/Main.java b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task5/Main.java new file mode 100644 index 000000000..33484d8d3 --- /dev/null +++ b/students/23K0120/23K0120-p25/src/main/java/ru/mirea/practice/s23k0120/task5/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23k0120.task5; + +import java.util.Scanner; +import java.util.regex.Pattern; + +public abstract class Main { + public static void main(String[] args) { + Pattern patternAll = Pattern.compile("[a-zA-Z\\d_]+"); + Pattern patternDigit = Pattern.compile("\\d"); + Pattern patternUpper = Pattern.compile("[A-Z]"); + Pattern patternLower = Pattern.compile("[a-z]"); + String input; + try (Scanner scanner = new Scanner(System.in)) { + input = scanner.nextLine(); + } + if (!patternAll.matcher(input).matches() + || !patternDigit.matcher(input).find() + || !patternUpper.matcher(input).find() + || !patternLower.matcher(input).find()) { + System.out.println("Input string is not a secure password"); + } else { + System.out.println("Input string is a secure password"); + } + } +} diff --git a/students/23K0120/pom.xml b/students/23K0120/pom.xml index 49eec601d..381fda9d0 100644 --- a/students/23K0120/pom.xml +++ b/students/23K0120/pom.xml @@ -38,5 +38,6 @@ 23K0120-p22 23K0120-p23 23K0120-p24 + 23K0120-p25 From 5287b4915b205d399619162b6458da9e32ea4b52 Mon Sep 17 00:00:00 2001 From: I_like_Space Date: Sat, 30 Nov 2024 18:47:43 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=9626?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K0120/23K0120-p26/pom.xml | 13 +++++++ .../java/ru/mirea/practice/s23k0120/Main.java | 12 ++++++ .../mirea/practice/s23k0120/task1/Main.java | 27 +++++++++++++ .../s23k0120/task2and3/CustomIterator.java | 20 ++++++++++ .../s23k0120/task2and3/CustomList.java | 39 +++++++++++++++++++ .../practice/s23k0120/task2and3/Node.java | 32 +++++++++++++++ students/23K0120/pom.xml | 1 + 7 files changed, 144 insertions(+) create mode 100644 students/23K0120/23K0120-p26/pom.xml create mode 100644 students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/Main.java create mode 100644 students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task1/Main.java create mode 100644 students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomIterator.java create mode 100644 students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomList.java create mode 100644 students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/Node.java diff --git a/students/23K0120/23K0120-p26/pom.xml b/students/23K0120/23K0120-p26/pom.xml new file mode 100644 index 000000000..9449962f7 --- /dev/null +++ b/students/23K0120/23K0120-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p26 + Collections + diff --git a/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..1b6976156 --- /dev/null +++ b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Двадцать шестая практическая работа!"); + } +} diff --git a/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task1/Main.java b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task1/Main.java new file mode 100644 index 000000000..d0971f25d --- /dev/null +++ b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task1/Main.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23k0120.task1; + +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +public abstract class Main { + public static List reverse(List list) { + Stack stack = new Stack<>(); + int i = 0; + while (i < list.size() / 2) { + stack.push(list.get(i)); + stack.push(list.get(list.size() - i - 1)); + list.set(i, stack.pop()); + list.set(list.size() - i - 1, stack.pop()); + i++; + } + return list; + } + + public static void main(String[] args) { + ArrayList integers = new ArrayList<>(List.of(new Integer[]{1, 2, 3, 4, 5, 6})); + System.out.println(integers); + reverse(integers); + System.out.println(integers); + } +} diff --git a/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomIterator.java b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomIterator.java new file mode 100644 index 000000000..0c9092919 --- /dev/null +++ b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomIterator.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s23k0120.task2and3; + +import java.util.Iterator; + +public class CustomIterator implements Iterator { + Node cursor; + + CustomIterator(CustomList list) { + cursor = list.getFirst(); + } + + public boolean hasNext() { + return cursor.getNext() != null; + } + + public T next() { + cursor = cursor.getNext(); + return cursor.getData(); + } +} diff --git a/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomList.java b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomList.java new file mode 100644 index 000000000..23feded57 --- /dev/null +++ b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/CustomList.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s23k0120.task2and3; + +import java.util.Iterator; + +public class CustomList implements Iterable { + private Node first; + private final int size; + + public CustomList() { + first = null; + size = 0; + } + + public int getSize() { + return size; + } + + public Node getFirst() { + return first; + } + + public void add(T elem) { + Node node = new Node<>(elem); + if (first == null) { + first = node; + } else { + Node curr = first; + while (curr.getNext() != null) { + curr = curr.getNext(); + } + curr.setNext(node); + } + } + + @Override + public Iterator iterator() { + return new CustomIterator<>(this); + } +} diff --git a/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/Node.java b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/Node.java new file mode 100644 index 000000000..db0fea6a3 --- /dev/null +++ b/students/23K0120/23K0120-p26/src/main/java/ru/mirea/practice/s23k0120/task2and3/Node.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23k0120.task2and3; + +public class Node { + private T data; + private Node next; + + public Node(T data) { + this.data = data; + next = null; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public Node getNext() { + return next; + } + + public void setNext(Node next) { + this.next = next; + } + + @Override + public String toString() { + return data.toString(); + } +} diff --git a/students/23K0120/pom.xml b/students/23K0120/pom.xml index 381fda9d0..cac4109dd 100644 --- a/students/23K0120/pom.xml +++ b/students/23K0120/pom.xml @@ -39,5 +39,6 @@ 23K0120-p23 23K0120-p24 23K0120-p25 + 23K0120-p26