From b11e988bda728afd3b608512c923b1b63e243166 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 13 Dec 2024 13:17:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=B0=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=E2=84=9621-32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- students/23K0365/23K0365-p21/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../ru/mirea/practice/s0000001/Solution.java | 42 +++++ .../ru/mirea/practice/s0000001/TaskFour.java | 26 +++ .../ru/mirea/practice/s0000001/TaskOne.java | 26 +++ .../ru/mirea/practice/s0000001/TaskThree.java | 22 +++ .../ru/mirea/practice/s0000001/TaskTwo.java | 28 ++++ students/23K0365/23K0365-p22/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../java/ru/mirea/practice/s0000001/Pln.java | 69 ++++++++ students/23K0365/23K0365-p23/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../practice/s0000001/task1/ArrayQueu.java | 102 ++++++++++++ .../s0000001/task1/ArrayQueueAdt.java | 80 +++++++++ .../s0000001/task1/ArrayQueueModule.java | 78 +++++++++ .../s0000001/task2/AbstractQueue.java | 33 ++++ .../practice/s0000001/task2/LinkedQueue.java | 82 +++++++++ .../mirea/practice/s0000001/task2/Nodes.java | 11 ++ .../mirea/practice/s0000001/task2/Queue.java | 15 ++ .../mirea/practice/s0000001/task3/Binary.java | 81 +++++++++ .../mirea/practice/s0000001/task3/Main.java | 28 ++++ .../s0000001/task3/Operationable.java | 5 + students/23K0365/23K0365-p24/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../practice/s0000001/task1/Complex.java | 43 +++++ .../task1/ComplexAbstractFactory.java | 7 + .../s0000001/task1/ConcreteFactory.java | 22 +++ .../s0000001/task2/AbstractChairFactory.java | 15 ++ .../mirea/practice/s0000001/task2/Chair.java | 5 + .../mirea/practice/s0000001/task2/Client.java | 31 ++++ .../s0000001/task2/MultiFuncChair.java | 12 ++ .../practice/s0000001/task2/VagicChair.java | 12 ++ .../s0000001/task2/VictorinaChair.java | 18 ++ students/23K0365/23K0365-p25/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../practice/s0000001/task1/ContainsOf.java | 25 +++ .../practice/s0000001/task2/ExactSame.java | 24 +++ .../practice/s0000001/task3/PriceList.java | 25 +++ .../s0000001/task4/NumsBeforePlus.java | 28 ++++ .../mirea/practice/s0000001/task5/Years.java | 37 +++++ .../s0000001/task6/EmailDtermine.java | 29 ++++ .../s0000001/task7/PasswordCheck.java | 24 +++ students/23K0365/23K0365-p26/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../s0000001/task1/IteratingStack.java | 22 +++ .../practice/s0000001/task2and3/List.java | 11 ++ .../s0000001/task2and3/MyListIterating.java | 42 +++++ .../s0000001/task2and3/MyTypeList.java | 40 +++++ students/23K0365/23K0365-p27/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../s0000001/tasksfrom1to3/Contentt.java | 17 ++ .../s0000001/tasksfrom1to3/HasgTab.java | 100 +++++++++++ students/23K0365/23K0365-p28/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../mirea/practice/s0000001/task1/HsToTs.java | 17 ++ .../practice/s0000001/task2/Mapping.java | 53 ++++++ .../practice/s0000001/task3/IntKeys.java | 20 +++ students/23K0365/23K0365-p29/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../mirea/practice/s0000001/NeptunesRoad.java | 45 +++++ students/23K0365/23K0365-p30/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../mirea/practice/s0000001/part1/Node.java | 13 ++ .../s0000001/part1/TreeOperations.java | 129 +++++++++++++++ .../mirea/practice/s0000001/part2/Node.java | 13 ++ .../s0000001/part2/TreeOperations.java | 155 ++++++++++++++++++ students/23K0365/23K0365-p32/pom.xml | 13 ++ .../java/ru/mirea/practice/s0000001/Main.java | 12 ++ .../ru/mirea/practice/s0000001/Swapper.java | 46 ++++++ students/23K0365/pom.xml | 11 ++ 70 files changed, 2094 insertions(+) create mode 100644 students/23K0365/23K0365-p21/pom.xml create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Solution.java create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskFour.java create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskOne.java create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskThree.java create mode 100644 students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskTwo.java create mode 100644 students/23K0365/23K0365-p22/pom.xml create mode 100644 students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Pln.java create mode 100644 students/23K0365/23K0365-p23/pom.xml create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueu.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueAdt.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueModule.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/AbstractQueue.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/LinkedQueue.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Nodes.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Queue.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Binary.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Main.java create mode 100644 students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Operationable.java create mode 100644 students/23K0365/23K0365-p24/pom.xml create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/Complex.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ComplexAbstractFactory.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ConcreteFactory.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/AbstractChairFactory.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Chair.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Client.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/MultiFuncChair.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VagicChair.java create mode 100644 students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VictorinaChair.java create mode 100644 students/23K0365/23K0365-p25/pom.xml create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task1/ContainsOf.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task2/ExactSame.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task3/PriceList.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task4/NumsBeforePlus.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task5/Years.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task6/EmailDtermine.java create mode 100644 students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task7/PasswordCheck.java create mode 100644 students/23K0365/23K0365-p26/pom.xml create mode 100644 students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task1/IteratingStack.java create mode 100644 students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/List.java create mode 100644 students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyListIterating.java create mode 100644 students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyTypeList.java create mode 100644 students/23K0365/23K0365-p27/pom.xml create mode 100644 students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/Contentt.java create mode 100644 students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/HasgTab.java create mode 100644 students/23K0365/23K0365-p28/pom.xml create mode 100644 students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task1/HsToTs.java create mode 100644 students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task2/Mapping.java create mode 100644 students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task3/IntKeys.java create mode 100644 students/23K0365/23K0365-p29/pom.xml create mode 100644 students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/NeptunesRoad.java create mode 100644 students/23K0365/23K0365-p30/pom.xml create mode 100644 students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/Node.java create mode 100644 students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/TreeOperations.java create mode 100644 students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/Node.java create mode 100644 students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/TreeOperations.java create mode 100644 students/23K0365/23K0365-p32/pom.xml create mode 100644 students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Main.java create mode 100644 students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Swapper.java diff --git a/students/23K0365/23K0365-p21/pom.xml b/students/23K0365/23K0365-p21/pom.xml new file mode 100644 index 000000000..81455b5e2 --- /dev/null +++ b/students/23K0365/23K0365-p21/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p21 + Массивы + diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Solution.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Solution.java new file mode 100644 index 000000000..9784dbce8 --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/Solution.java @@ -0,0 +1,42 @@ +package ru.mirea.practice.s0000001; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.Map; +import java.util.HashMap; +import java.util.HashSet; + +public class Solution { // Integer, String, Boolean + public List newList(T... elements) { + return new ArrayList<>(java.util.Arrays.asList(elements)); + } + + public Set newHS(T... elements) { + return new HashSet<>(java.util.Arrays.asList(elements)); + } + + public Map newHM(K[] keys, V[] values) { + if (keys.length != values.length) { + System.exit(0); + } + Map a = new HashMap<>(); + for (int i = 0; i < keys.length; i++) { + a.put(keys[i], values[i]); + } + return a; + } + + public static void main(String[] args) { + Solution me = new Solution<>(); + String[] k = {"0", "wow", "yeah", "etc"}; + Boolean[] v = {true, false, true, true}; + List myLst = me.newList(12, 15, 523, 235); + Set urSet = me.newHS(12, 15, 523, 235); + Map ourMap = me.newHM(k, v); + System.out.println(urSet.contains(124)); + System.out.println(myLst.get(0)); + System.out.println(ourMap.get("wow")); + } +} + diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskFour.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskFour.java new file mode 100644 index 000000000..87c4fd325 --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskFour.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +public class TaskFour { + List myLst = new LinkedList<>(); + + public void saveCatalog(T... args) { + myLst.addAll(Arrays.asList(args)); + } + + public void getFive() { + for (int i = 0; i < 5; i++) { + System.out.print(myLst.get(i) + " "); + } + } + + public static void main(String[] args) { + TaskFour a = new TaskFour<>(); + a.saveCatalog(true,false,true,true,true,false, + true,true,false,true,true,true,false,true); + a.getFive(); + } +} diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskOne.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskOne.java new file mode 100644 index 000000000..c73c6993c --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskOne.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +public class TaskOne { + private final T[] arr; + + public TaskOne(T[] arr) { + this.arr = arr; + } + + public List getUrList() { + return new LinkedList<>(Arrays.asList(arr)); + } + + public static void main(String[] args) { + String[] strs = {"q","qw","qwe","qwer"}; + Integer[] ints = {1,2,3,4,5}; + TaskOne a = new TaskOne(strs); + System.out.println(a.getUrList().get(0)); + TaskOne b = new TaskOne(ints); + System.out.println(b.getUrList().get(0)); + } +} diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskThree.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskThree.java new file mode 100644 index 000000000..1a66621f6 --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskThree.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s0000001; + +public class TaskThree { + private T[] anotherArr; + + public TaskThree(T[] anotherArr) { + this.anotherArr = anotherArr; + } + + public T getEl(int index) { + return anotherArr[index]; + } + + public static void main(String[] args) { + Boolean[] bools = {true,false,true}; + Short[] shortPeople = {-32760,-32761,-32762}; + TaskThree a = new TaskThree(bools); + TaskThree b = new TaskThree(shortPeople); + System.out.println(a.getEl(2)); + System.out.println(b.getEl(2)); + } +} diff --git a/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskTwo.java b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskTwo.java new file mode 100644 index 000000000..579cd89f0 --- /dev/null +++ b/students/23K0365/23K0365-p21/src/main/java/ru/mirea/practice/s0000001/TaskTwo.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001; + +public class TaskTwo { + private T[] urArr; + + public TaskTwo(T[] urArr) { + this.urArr = urArr; + } + + public void knowType() { + System.out.println(urArr.getClass().getName()); + } + + public static void main(String[] args) { + String[] strs = {"q","qw","qwe","qwer"}; + Integer[] ints = {1,2,3,4,5}; + Boolean[] bools = {true,false,true}; + Short[] shortPeople = {-32760,-32761,-32762}; + TaskTwo a = new TaskTwo(strs); + TaskTwo b = new TaskTwo(ints); + TaskTwo c = new TaskTwo(bools); + final TaskTwo d = new TaskTwo(shortPeople); + a.knowType(); + b.knowType(); + c.knowType(); + d.knowType(); + } +} diff --git a/students/23K0365/23K0365-p22/pom.xml b/students/23K0365/23K0365-p22/pom.xml new file mode 100644 index 000000000..f0f0b4820 --- /dev/null +++ b/students/23K0365/23K0365-p22/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p22 + Массивы + diff --git a/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Pln.java b/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Pln.java new file mode 100644 index 000000000..902ce7e89 --- /dev/null +++ b/students/23K0365/23K0365-p22/src/main/java/ru/mirea/practice/s0000001/Pln.java @@ -0,0 +1,69 @@ +package ru.mirea.practice.s0000001; + +import java.util.ArrayDeque; +import java.util.Deque; + +public abstract class Pln { + private static boolean isOperate(String token) { + return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token) || "^".equals(token); + } + + private static double operationChoose(double a, double b, String op) { + switch (op) { + case "+": return a + b; + case "-": return a - b; + case "*": return a * b; + case "/": + if (b == 0) { + throw new ArithmeticException("INFINITY"); + } + return a / b; + default: return Double.NaN; + } + } + + public static double calculateSmth(String... args) { + Deque st = new ArrayDeque<>(); + for (String one : args) { + try { + double temp = Double.parseDouble(one); + st.push(temp); + } catch (NumberFormatException e) { + if (isOperate(one)) { + if (st.size() < 2) { + System.err.println("too litle amount of opearnds: " + one); + return Double.NaN; + } + double x = st.pop(); + double y = st.pop(); + try { + st.push(operationChoose(y, x, one)); + } catch (ArithmeticException ae) { + System.err.println("error: "); + return Double.NaN; + } + } else { + System.err.println("uncorrect symbol: " + one); + return Double.NaN; + } + } catch (Exception e) { + System.err.println("incorrect symbols"); + return Double.NaN; + } + } + + if (st.size() != 1) { + System.err.println("error"); + return Double.NaN; + } + return st.pop(); + } + + public static void main(String[] args) { + String[] a = {"2", "3", "*", "4", "5", "*", "+"}; + String[] b = {"2", "3", "4", "5", "6", "*", "+", "-", "/"}; + System.out.println(calculateSmth(a)); + System.out.println(calculateSmth(b)); + } +} + diff --git a/students/23K0365/23K0365-p23/pom.xml b/students/23K0365/23K0365-p23/pom.xml new file mode 100644 index 000000000..d3cefddf1 --- /dev/null +++ b/students/23K0365/23K0365-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p23 + Массивы + diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueu.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueu.java new file mode 100644 index 000000000..54c666c41 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueu.java @@ -0,0 +1,102 @@ +package ru.mirea.practice.s0000001.task1; + +import java.util.Arrays; +// Инвариант: +//Индекс начала очереди всегда меньше или равен +//индексу конца очереди, при этом оба индекса находятся в +//пределах допустимого диапазона массива (от 0 до [макс. значения - 1] ). +//Разница между индексом конца и индексом начала, взятая по модулю +//размера массива, равна текущему количеству элементов в очереди + +//Предусловие: +//Очередь не должна быть полной - должно быть достаточно места для добавления нового элемента. +//Очередь не должна быть пустой - должен существовать хотя бы один элемент для удаления и +//чтобы вернуть его. + +//Постусловие: +//После добавления элемента, новый элемент находится в конце очереди, количество элементов в +//очереди увеличилось на один, и очередь остается в корректном состоянии. + +//После удаления элемента, первый элемент удален, количество элементов +//в очереди уменьшилось на один, и очередь остается в корректном +//состоянии, а функция возвращает удаленный элемент. + +//Функция возвращает первый элемент очереди, не изменяя +//состояние очереди (количество элементов и их порядок). Очередь +//остается в корректном состоянии. +public class ArrayQueu { + private Object[] consists; + private int head; + private int tail; + private int size; + private final int leng; + + public ArrayQueu(int one) { + this.leng = one; + consists = new Object[leng]; + head = 0; + tail = 0; + size = 0; + } + + public boolean isEmpty() { + return size == 0; + } + + private boolean isFull() { + return size == leng; + } + + public int size() { + return size; + } + + public void clear() { + Arrays.fill(consists, null); + head = 0; + tail = 0; + size = 0; + } + + public void enqueue(Object one) { + if (isFull()) { + System.out.println("FULL"); + return; + } + consists[tail] = one; + tail = (tail + 1) % consists.length; + size++; + } + + public Object element() { + if (isEmpty()) { + return null; + } + return consists[head]; + } + + public Object dequeue() { + if (isEmpty()) { + return null; + } + Object temp = consists[head]; + head = (head + 1) % consists.length; + size--; + return temp; + } + + public static void main(String[] args) { + ArrayQueu tester = new ArrayQueu(6); + tester.enqueue(12); + tester.enqueue("1"); + tester.enqueue(true); + System.out.println(tester.isEmpty()); + System.out.println(tester.element()); + System.out.println(tester.dequeue()); + System.out.println(tester.dequeue()); + System.out.println(tester.dequeue()); + tester.clear(); + System.out.println(tester.element()); + + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueAdt.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueAdt.java new file mode 100644 index 000000000..04104e401 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueAdt.java @@ -0,0 +1,80 @@ +package ru.mirea.practice.s0000001.task1; + +public class ArrayQueueAdt { + private Object[] consists; + private int head; + private int tail; + private int size; + private int leng; + + public ArrayQueueAdt(int one) { + leng = one; + consists = new Object[leng]; + head = 0; + tail = 0; + size = 0; + } + + + public boolean isEmpty(ArrayQueueAdt tester) { + return tester.size == 0; + } + + private boolean isFull(ArrayQueueAdt tester) { + return tester.size == tester.leng; + } + + public int size(ArrayQueueAdt tester) { + return tester.size; + } + + public void clear(ArrayQueueAdt tester) { + tester.consists = new Object[tester.consists.length]; + tester.head = 0; + tester.tail = 0; + tester.size = 0; + } + + public void enqueue(ArrayQueueAdt tester, Object one) { + if (isFull(tester)) { + System.out.println("FULL"); + return; + } + tester.consists[tester.tail] = one; + tester.tail = (tester.tail + 1) % tester.consists.length; + tester.size++; + } + + public Object elment(ArrayQueueAdt tester) { + if (isEmpty(tester)) { + return null; + } + return tester.consists[tester.head]; + } + + public Object dequeue(ArrayQueueAdt tester) { + if (isEmpty(tester)) { + return null; + } + Object temp = tester.consists[tester.head]; + tester.head = (tester.head + 1) % tester.consists.length; + tester.size--; + return temp; + } + + public static void main(String[] args) { + ArrayQueueAdt tester = new ArrayQueueAdt(6); + tester.enqueue(tester, 12); + tester.enqueue(tester, "1"); + tester.enqueue(tester, true); + System.out.println(tester.isEmpty(tester)); + System.out.println(tester.size(tester)); + System.out.println(tester.dequeue(tester)); + System.out.println(tester.elment(tester)); + System.out.println(tester.dequeue(tester)); + System.out.println(tester.dequeue(tester)); + System.out.println(tester.isEmpty(tester)); + tester.clear(tester); + System.out.println(tester.elment(tester)); + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueModule.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueModule.java new file mode 100644 index 000000000..6b230b659 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task1/ArrayQueueModule.java @@ -0,0 +1,78 @@ +package ru.mirea.practice.s0000001.task1; + +import java.util.Arrays; + +public class ArrayQueueModule { + private Object[] consists; + private int head; + private int tail; + private int size; + private final int leng; + + public ArrayQueueModule(int one) { + this.leng = one; + consists = new Object[leng]; + head = 0; + tail = 0; + size = 0; + } + + public boolean isEmpty() { + return size == 0; + } + + private boolean isFull() { + return size == leng; + } + + public int size() { + return size; + } + + public void clear() { + Arrays.fill(consists, null); + head = 0; + tail = 0; + size = 0; + } + + public void enqueue(Object item) { + if (isFull()) { + System.out.println("FULL"); + return; + } + consists[tail] = item; + tail = (tail + 1) % leng; + size++; + } + + public Object element() { + if (isEmpty()) { + return null; + } + return consists[head]; + } + + public Object dequeue() { + if (isEmpty()) { + return null; + } + Object item = consists[head]; + head = (head + 1) % leng; + size--; + return item; + } + + public static void main(String[] args) { + ArrayQueueModule queue = new ArrayQueueModule(3); + queue.enqueue(12); + queue.enqueue("1"); + queue.enqueue(true); + System.out.println(queue.size()); + System.out.println(queue.element()); + System.out.println(queue.dequeue()); + System.out.println(queue.size()); + queue.clear(); + System.out.println(queue.isEmpty()); + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/AbstractQueue.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/AbstractQueue.java new file mode 100644 index 000000000..6e2144966 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/AbstractQueue.java @@ -0,0 +1,33 @@ +package ru.mirea.practice.s0000001.task2; + +public abstract class AbstractQueue implements Queue { + protected int size; + + public AbstractQueue(int size) { + this.size = size; + } + + @Override + public int size() { + return size; + } + + @Override + public void clear() { + size = 0; + } + + @Override + public abstract void enqueue(Object element); + + @Override + public abstract Object dequeue(); + + @Override + public abstract Object element(); + + @Override + public boolean isEmpty() { + return size == 0; + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/LinkedQueue.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/LinkedQueue.java new file mode 100644 index 000000000..36e4959d3 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/LinkedQueue.java @@ -0,0 +1,82 @@ +package ru.mirea.practice.s0000001.task2; + +public class LinkedQueue implements Queue { + private Nodes head; + private Nodes tail; + + public LinkedQueue() { + head = null; + tail = null; + } + + @Override + public int size() { + int count = 0; + Nodes current = head; + while (current != null) { + count++; + current = current.next; + } + return count; + } + + @Override + public void clear() { + head = tail = null; + } + + @Override + public void enqueue(Object a) { + Nodes newNode = new Nodes(a); + if (tail == null) { + head = tail = newNode; + } else { + tail.next = newNode; + tail = newNode; + } + } + + @Override + public Object dequeue() { + if (isEmpty()) { + return null; + } + Object data = head.cons; + head = head.next; + if (head == null) { + tail = null; + } + return data; + } + + @Override + public Object element() { + if (isEmpty()) { + return null; + } + return head.cons; + } + + @Override + public boolean isEmpty() { + return head == null; + } + + + public static void main(String[] args) { + LinkedQueue queue = new LinkedQueue(); + queue.enqueue("a"); + queue.enqueue(1); + queue.enqueue(true); + System.out.println(queue.dequeue()); + System.out.println(queue.element()); + System.out.println(queue.dequeue()); + queue.enqueue("a"); + queue.enqueue(1); + queue.enqueue(true); + System.out.println(queue.size()); + queue.clear(); + System.out.println(queue.size()); + System.out.println(queue.isEmpty()); + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Nodes.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Nodes.java new file mode 100644 index 000000000..10aaafdb2 --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Nodes.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s0000001.task2; + +public class Nodes { + Object cons; + Nodes next; + + public Nodes(Object one) { + this.cons = one; + this.next = null; + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Queue.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Queue.java new file mode 100644 index 000000000..a7453446e --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task2/Queue.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s0000001.task2; + +public interface Queue { + void enqueue(Object a); + + Object element(); + + Object dequeue(); + + int size(); + + boolean isEmpty(); + + void clear(); +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Binary.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Binary.java new file mode 100644 index 000000000..2fb14a29a --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Binary.java @@ -0,0 +1,81 @@ +package ru.mirea.practice.s0000001.task3; + +public abstract class Binary implements Operationable { + protected Operationable first; + protected Operationable second; + + public Binary(Operationable first, Operationable second) { + this.first = first; + this.second = second; + } + + public static class Const implements Operationable { + private double constanta; + + public Const(double constanta) { + this.constanta = constanta; + } + + @Override + public double evaluate(double x) { + return constanta; + } + } + + public static class Variables implements Operationable { + private String var; + + public Variables(String var) { + this.var = var; + } + + @Override + public double evaluate(double x) { + return x; + } + } + + public static class Add extends Binary { + public Add(Operationable first, Operationable second) { + super(first, second); + } + + @Override + public double evaluate(double x) { + return first.evaluate(x) + second.evaluate(x); + } + } + + public static class Substracrt extends Binary { + public Substracrt(Operationable first, Operationable second) { + super(first, second); + } + + @Override + public double evaluate(double x) { + return first.evaluate(x) - second.evaluate(x); + } + } + + public static class Multiply extends Binary { + public Multiply(Operationable first, Operationable second) { + super(first, second); + } + + @Override + public double evaluate(double x) { + return first.evaluate(x) * second.evaluate(x); + } + } + + public class Divide extends Binary { + public Divide(Operationable first, Operationable second) { + super(first, second); + } + + @Override + public double evaluate(double x) { + return (second.evaluate(x) == .0) ? null : first.evaluate(x) - second.evaluate(x); + } + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Main.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Main.java new file mode 100644 index 000000000..5bf6228ec --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Main.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001.task3; + +public abstract class Main { + public static void main(String[] args) { + try { + if (args[0] != null) { + try { + Operationable test = new Binary.Substracrt(new Binary.Multiply(new Binary.Const(2), + new Binary.Variables("x")), new Binary.Const(3)); + System.out.println(test.evaluate(Double.parseDouble(args[0])) == 7.);//из примера, ответ должен быть 7 + } catch (NumberFormatException e) { + System.out.println("bad input"); + } + } + } catch (ArrayIndexOutOfBoundsException o) { + System.out.println("bad input"); + } + + Operationable test = new Binary.Substracrt(new Binary.Multiply(new Binary.Const(2), + new Binary.Variables("x")), new Binary.Const(3)); + System.out.println(test.evaluate(3) == 7.);//из примера, ответ должен быть 7 + + Operationable scndTest = new Binary.Add(new Binary.Substracrt(new Binary.Multiply(new Binary.Variables("x"), + new Binary.Variables("x")), new Binary.Multiply(new Binary.Const(2), new Binary.Variables("x"))), + new Binary.Const(1)); // x^2 − 2x + 1, x = 33 => answ.:4 + System.out.print(4. == scndTest.evaluate(3)); + } +} diff --git a/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Operationable.java b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Operationable.java new file mode 100644 index 000000000..0ee2e9a9e --- /dev/null +++ b/students/23K0365/23K0365-p23/src/main/java/ru/mirea/practice/s0000001/task3/Operationable.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s0000001.task3; + +public interface Operationable { + double evaluate(double x); +} diff --git a/students/23K0365/23K0365-p24/pom.xml b/students/23K0365/23K0365-p24/pom.xml new file mode 100644 index 000000000..b354778d6 --- /dev/null +++ b/students/23K0365/23K0365-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p24 + Массивы + diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/Complex.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/Complex.java new file mode 100644 index 000000000..c6bc0ed1e --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/Complex.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s0000001.task1; + +public class Complex { + private int imaginary; + private int real; + + public Complex(int imaginary, int real) { + this.imaginary = imaginary; + this.real = real; + } + + public Complex() { + //Default + } + + public int getImaginary() { + return imaginary; + } + + public void setImaginary(int imaginary) { + this.imaginary = imaginary; + } + + public int getReal() { + return real; + } + + public void setReal(int real) { + this.real = real; + } + + @Override + public String toString() { + if (imaginary == 0 && real != 0) { + return "Complex: " + real; + } else if (imaginary == 0 && real == 0) { + return "0"; + } else { + return "Complex: " + real + " + i*(" + imaginary + ")"; + } + } +} + diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ComplexAbstractFactory.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ComplexAbstractFactory.java new file mode 100644 index 000000000..27d5b831c --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ComplexAbstractFactory.java @@ -0,0 +1,7 @@ +package ru.mirea.practice.s0000001.task1; + +public interface ComplexAbstractFactory { + Complex createComplex(); + + Complex creatingComplex(int r, int i); +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ConcreteFactory.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ConcreteFactory.java new file mode 100644 index 000000000..87710bfb4 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task1/ConcreteFactory.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s0000001.task1; + +public class ConcreteFactory implements ComplexAbstractFactory { + //вместо CreateComplex - creatingComplex. Не допустимое названиe( + @Override + public Complex creatingComplex(int r, int i) { + return new Complex(i,r); + } + + @Override + public Complex createComplex() { + return new Complex(); + } + + public static void main(String[] args) { + ComplexAbstractFactory a = new ConcreteFactory(); + Complex temp = a.creatingComplex(3,0); + Complex scTemp = a.createComplex(); + Complex thTemp = a.creatingComplex(5,-7); + System.out.println(temp + "\n" + scTemp + "\n" + thTemp); + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/AbstractChairFactory.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/AbstractChairFactory.java new file mode 100644 index 000000000..791152afe --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/AbstractChairFactory.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s0000001.task2; + +public class AbstractChairFactory { + public Chair createMagicChair() { + return new VagicChair(); + } + + public Chair createFunctionalChair() { + return new MultiFuncChair(); + } + + public Chair createVictorianChair(int age) { + return new VictorinaChair(age); + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Chair.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Chair.java new file mode 100644 index 000000000..32e4beb17 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Chair.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s0000001.task2; + +public interface Chair { + void sitinOn(); +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Client.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Client.java new file mode 100644 index 000000000..360a74069 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/Client.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s0000001.task2; + +public class Client { + private Chair c; + + public Client(Chair c) { + this.c = c; + } + + public void setChair(Chair c) { + this.c = c; + } + + public void toSit() { + this.c.sitinOn(); + } + + public static void main(String[] args) { + AbstractChairFactory creation = new AbstractChairFactory(); + Chair a = creation.createMagicChair(); + Client one = new Client(a); + Chair b = creation.createVictorianChair(1234); + Chair c = creation.createFunctionalChair(); + one.toSit(); + one.setChair(b); + one.toSit(); + one.setChair(c); + one.toSit(); + + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/MultiFuncChair.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/MultiFuncChair.java new file mode 100644 index 000000000..06c767d42 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/MultiFuncChair.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001.task2; + +public class MultiFuncChair implements Chair { + public int sum(int a, int b) { + return a + b; + } + + @Override + public void sitinOn() { + System.out.println("u siting on MultiFuncChair"); + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VagicChair.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VagicChair.java new file mode 100644 index 000000000..7c2929f73 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VagicChair.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001.task2; + +public class VagicChair implements Chair { + public void doMagic() { + System.exit(1); + } + + @Override + public void sitinOn() { + System.out.println("u siting on MagicChair"); + } +} diff --git a/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VictorinaChair.java b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VictorinaChair.java new file mode 100644 index 000000000..e8becb904 --- /dev/null +++ b/students/23K0365/23K0365-p24/src/main/java/ru/mirea/practice/s0000001/task2/VictorinaChair.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001.task2; + +public class VictorinaChair implements Chair { + private int age; + + public VictorinaChair(int age) { + this.age = age; + } + + public int getAge() { + return age; + } + + @Override + public void sitinOn() { + System.out.println("u siting on VictorinaChair"); + } +} diff --git a/students/23K0365/23K0365-p25/pom.xml b/students/23K0365/23K0365-p25/pom.xml new file mode 100644 index 000000000..1ab8654cc --- /dev/null +++ b/students/23K0365/23K0365-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p25 + Массивы + diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task1/ContainsOf.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task1/ContainsOf.java new file mode 100644 index 000000000..88fe0d5f7 --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task1/ContainsOf.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001.task1; + +import java.util.Arrays; + +public abstract class ContainsOf { + public static void main(String[] args) { + String[] texts = { + "qwer qwer qwer", + "12 qw 5rr12 grkn;vbklrn", + "i love my family", + "bless you"}; + //или: + //try (Scanner sc = new Scanner(System.in)) { + //int cnt = sc.nextInt(); + //String[] text = new String[cnt]; + //for (int i = 0; i < cnt; i++) { + //text[i] = sc.nextLine(); + //} + //} + String regex = "\\s+"; + for (String x : texts) { + System.out.println(Arrays.toString(x.split(regex))); + } + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task2/ExactSame.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task2/ExactSame.java new file mode 100644 index 000000000..5f06b0bd3 --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task2/ExactSame.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001.task2; + +import java.util.regex.Pattern; + +public abstract class ExactSame { + public static void main(String[] args) { + String[] texts = { + "abcdefghijklmnopqrstuv18340", + "abcdefghijklmnopqrstqwrfuv18340", + "abcdefg8340", + "abcdefghijklmnopqrstuv18340abcdefghijklmnopqrstuv18340"}; + String regex = "abcdefghijklmnopqrstuv18340{1}"; + String corect = ""; + String wrong = ""; + for (String x : texts) { + if (Pattern.matches(regex, x)) { + corect += x + "\t"; + } else { + wrong += x + "\t"; + } + } + System.out.println(corect + "\n\n" + wrong); + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task3/PriceList.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task3/PriceList.java new file mode 100644 index 000000000..28950b8bd --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task3/PriceList.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001.task3; + +import java.util.regex.Pattern; + +public abstract class PriceList { + public static void main(String[] args) { + String regex = "(\\d*(\\.{1}\\d{0,2}){0,1})\\s(USD|RUВ|EU)"; + String[] prices = { + "25.98 USD", + "44 ERR", + "44345 EU", + "22.22.22 RUB", + "34.12 RUВ", + "25.98 USD", + "26.98 EU", + "25.000 USD", + "25.00 USD" + }; + for (String x : prices) { + if (Pattern.matches(regex, x)) { + System.out.println(x + "\n"); + } + } + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task4/NumsBeforePlus.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task4/NumsBeforePlus.java new file mode 100644 index 000000000..2dc370aef --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task4/NumsBeforePlus.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s0000001.task4; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public abstract class NumsBeforePlus { + public static void main(String[] args) { + String regex = "\\d+\\s\\+"; + String[] opera = { + "2 + 7", + "(2 + 7) / (98 * 15)", + "6 / 5 – 2 * 9", + "1 +", + "1 + 2 / 3", + "+ 1" + }; + Pattern p1 = Pattern.compile(regex); + Matcher m1; + for (String x : opera) { + m1 = p1.matcher(x); + if (m1.find()) { + System.out.println(x + "\t: в тексте ЕСТЬ такие цифры после которых стоит знак +"); + } else { + System.out.println(x + "\t: в тексте НЕТ таких цифр после которых стоит знак +"); + } + } + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task5/Years.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task5/Years.java new file mode 100644 index 000000000..a97c2c45f --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task5/Years.java @@ -0,0 +1,37 @@ +package ru.mirea.practice.s0000001.task5; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public abstract class Years { + public static void main(String[] args) { + String[] years = { + "29/01/2005", + "29.01.2005", + "29{01*2005", + "29/02/2005", + "29/02/2000", + "33/14/2005", + "29012005", + "29-01-2005", + "28/02/2005", + "24/14/2005" + }; + Pattern p1 = Pattern.compile("(\\d){2}/(\\d){2}/(\\d){4}"); + Matcher m1; + for (String x : years) { + m1 = p1.matcher(x); + if (m1.find()) { + int[] a = new int[3]; + for (int i = 0; i < 3; i++) { + a[i] = Integer.parseInt(x.split("/")[i]); + } + if (a[2] >= 1900 && a[2] <= 9999 && a[0] <= 31 && a[1] <= 12 + && !(a[2] % 400 != 0 && a[0] > 28 && a[1] == 2)) { + System.out.println(x); + } + } + } + } +} + diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task6/EmailDtermine.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task6/EmailDtermine.java new file mode 100644 index 000000000..17bd35973 --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task6/EmailDtermine.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s0000001.task6; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public abstract class EmailDtermine { + public static void main(String[] args) { + String[] emails = { + "user@example.com", + "user@exa_mple.com", + "root@localhost", + "root@localhost..ru", + "@example.com", + "root@@@localhost", + "us@er@exam@ple.com", + "QERTt@EXAMpLE.ru", + "user@example.comuser@example.comuser@example.com", + }; + Pattern p1 = Pattern.compile("(\\w+)@{1}(\\w+)\\.(\\w+)"); + Matcher m1; + for (String x : emails) { + m1 = p1.matcher(x); + if (m1.find() && x.lastIndexOf("@") == x.indexOf("@") + && x.lastIndexOf(".") == x.indexOf(".")) { + System.out.println(x); + } + } + } +} diff --git a/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task7/PasswordCheck.java b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task7/PasswordCheck.java new file mode 100644 index 000000000..3d0a94a8e --- /dev/null +++ b/students/23K0365/23K0365-p25/src/main/java/ru/mirea/practice/s0000001/task7/PasswordCheck.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001.task7; + +import java.util.regex.Pattern; + +public abstract class PasswordCheck { + public static void main(String[] args) { + String[] paswords = { + "A007", + "F032_Password", + "TrySpy11", + "aA9aaaaaaaaa", + "Bb9BBBBBBB", + "9CcCCCCCcccc", + "9dDdddddDDD" + }; + String regex = "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).+$"; + for (String x : paswords) { + if (Pattern.matches(regex, x) && x.length() >= 8) { + System.out.println(x); + } + } + } +} + diff --git a/students/23K0365/23K0365-p26/pom.xml b/students/23K0365/23K0365-p26/pom.xml new file mode 100644 index 000000000..02db820bf --- /dev/null +++ b/students/23K0365/23K0365-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p26 + Массивы + diff --git a/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task1/IteratingStack.java b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task1/IteratingStack.java new file mode 100644 index 000000000..c126cef05 --- /dev/null +++ b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task1/IteratingStack.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s0000001.task1; + + +import java.util.Arrays; +import java.util.Stack; + +public abstract class IteratingStack { + public static void main(String[] args) { + int[] a = new int[13]; + for (int i = 0; i < 13; i++) { + a[i] = i; + } + System.out.println(Arrays.toString(a)); + Stack stk = new Stack<>(); + for (int q = 0; q < a.length / 2; q++) { + stk.add(a[q]); + a[q] = a[a.length - (q + 1)]; + a[a.length - (q + 1)] = stk.pop(); + } + System.out.println(Arrays.toString(a)); + } +} diff --git a/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/List.java b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/List.java new file mode 100644 index 000000000..d0c3745df --- /dev/null +++ b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/List.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s0000001.task2and3; + +public interface List { + void add(T a); + + int size(); + + T get(int index); + + boolean isEmpty(); +} diff --git a/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyListIterating.java b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyListIterating.java new file mode 100644 index 000000000..6968bbd3a --- /dev/null +++ b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyListIterating.java @@ -0,0 +1,42 @@ +package ru.mirea.practice.s0000001.task2and3; + +import java.util.Iterator; +import java.util.function.Consumer; + +public class MyListIterating implements Iterator { + private MyTypeList one; + private int indeks; + + public MyListIterating(MyTypeList one) { + this.one = one; + this.indeks = 0; + } + + @Override + public T next() { + return one.get(indeks++); + } + + @Override + public boolean hasNext() { + return indeks < one.size(); + } + + @Override + public void forEachRemaining(Consumer action) { + Iterator.super.forEachRemaining(action); + } + + public static void main(String[] args) { + MyTypeList glhf = new MyTypeList<>(); + for (int i = 0; i < 19; i++) { + glhf.add(i); + System.out.print(i + " "); + } + System.out.println(); + MyListIterating gg = new MyListIterating<>(glhf); + while (gg.hasNext()) { + System.out.println(gg.next()); + } + } +} diff --git a/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyTypeList.java b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyTypeList.java new file mode 100644 index 000000000..150a4b5cc --- /dev/null +++ b/students/23K0365/23K0365-p26/src/main/java/ru/mirea/practice/s0000001/task2and3/MyTypeList.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s0000001.task2and3; + +public class MyTypeList implements List { + private T[] ar; + private int size; + private int maxSize = 16; + + public MyTypeList() { + ar = (T[]) new Object[maxSize]; + size = 0; + } + + @Override + public void add(T a) { + if (size >= maxSize) { + T[] temp = (T[]) new Object[maxSize * 2]; + System.arraycopy(ar, 0, temp, 0, maxSize); + ar = temp; + maxSize *= 2; + } else { + ar[size] = a; + size++; + } + } + + @Override + public int size() { + return size; + } + + @Override + public T get(int ask) { + return ask <= size ? ar[ask] : null; + } + + @Override + public boolean isEmpty() { + return size == 0; + } +} diff --git a/students/23K0365/23K0365-p27/pom.xml b/students/23K0365/23K0365-p27/pom.xml new file mode 100644 index 000000000..78f00d784 --- /dev/null +++ b/students/23K0365/23K0365-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p27 + Массивы + diff --git a/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/Contentt.java b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/Contentt.java new file mode 100644 index 000000000..628b15b22 --- /dev/null +++ b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/Contentt.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s0000001.tasksfrom1to3; + +public class Contentt { + String key; + Object val; + + public Contentt(String key, Object val) { + this.key = key; + this.val = val; + } + + @Override + public String toString() { + return "key = " + key + "; value - " + val; + } + +} diff --git a/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/HasgTab.java b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/HasgTab.java new file mode 100644 index 000000000..e8f1a7001 --- /dev/null +++ b/students/23K0365/23K0365-p27/src/main/java/ru/mirea/practice/s0000001/tasksfrom1to3/HasgTab.java @@ -0,0 +1,100 @@ +package ru.mirea.practice.s0000001.tasksfrom1to3; + +import java.util.Iterator; +import java.util.LinkedList; + +public class HasgTab { + private LinkedList[] lst; + + public void hashTabInit() { + lst = new LinkedList[100]; //макс. хэш-код = 100, в общем случае нужно + // бло бы использовать АrrayList> + for (int i = 0; i < 100; i++) { + lst[i] = new LinkedList<>(); + } + } + + public int hashtabHash(String key) { + if (key != null) { + int hashCod = 1; + for (char c : key.toCharArray()) { + hashCod += c; + } + return hashCod % (key.length() * 10); + } else { + return 0; + } + } + + public void hashTabAdd(String key, Object o) { + int i = hashtabHash(key); + lst[i].add(new Contentt(key, o)); + } + + public void hashTabLookUp() { + for (int i = 0; i < 100; i++) { + LinkedList temp = lst[i]; + if (!temp.isEmpty()) { + System.out.print("index: " + i + "; "); + for (Contentt x : temp) { + System.out.print("key: " + x.key + ", value: " + x.val + "; "); + } + System.out.print("\n"); + } + } + } + + public Object hashTabDelete(String key) { + int i = hashtabHash(key); + Object found = null; + LinkedList temp = lst[i]; + Iterator itering = temp.iterator(); + while (itering.hasNext()) { + Contentt a = itering.next(); + if (a.key.equals(key)) { + found = a.val; + itering.remove(); + break; + } + } + return found; + } + + public String hashTabFind(String need) { + for (int i = 0; i < 100; i++) { + LinkedList temp = lst[i]; + if (!temp.isEmpty()) { + for (Contentt x : temp) { + if (x.key.equals(need)) { + return "item found: " + x; + } + } + } + } + return "item didnt find("; + } + + public static void main(String[] args) { + HasgTab myOne = new HasgTab(); + myOne.hashTabInit(); + myOne.hashTabAdd("123", "hello,"); + myOne.hashTabAdd("234", "world!"); + myOne.hashTabAdd("345", "how r"); + myOne.hashTabAdd("456", "u?"); + myOne.hashTabAdd("qwer", "567"); + myOne.hashTabAdd("qwe", "567"); + myOne.hashTabAdd("qaz", "hello,"); + myOne.hashTabAdd("wsx", "world!"); + myOne.hashTabAdd("edc", "how r"); + myOne.hashTabAdd("rfv", "u?"); + myOne.hashTabAdd("tgb", "567"); + myOne.hashTabAdd("yhn", "567"); + myOne.hashTabAdd("qwertyuiop", "1234567890"); + myOne.hashTabLookUp(); + System.out.println(); + System.out.println(myOne.hashTabFind("123")); + System.out.println(); + myOne.hashTabDelete("234"); + myOne.hashTabLookUp(); + } +} diff --git a/students/23K0365/23K0365-p28/pom.xml b/students/23K0365/23K0365-p28/pom.xml new file mode 100644 index 000000000..876b30179 --- /dev/null +++ b/students/23K0365/23K0365-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p28 + Массивы + diff --git a/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task1/HsToTs.java b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task1/HsToTs.java new file mode 100644 index 000000000..7da55fe42 --- /dev/null +++ b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task1/HsToTs.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s0000001.task1; + +import java.util.HashSet; +import java.util.TreeSet; + +public abstract class HsToTs { + public static void main(String[] args) { + HashSet hs = new HashSet<>(); + for (int i = 0; i < 10; i++) { + hs.add(i); + } + TreeSet ts = new TreeSet<>(hs); + System.out.println(hs); + System.out.println(ts); + System.out.println(ts.equals(hs)); + } +} diff --git a/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task2/Mapping.java b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task2/Mapping.java new file mode 100644 index 000000000..9f004dc66 --- /dev/null +++ b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task2/Mapping.java @@ -0,0 +1,53 @@ +package ru.mirea.practice.s0000001.task2; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public abstract class Mapping { + public static Map createMap() { + Map myMap = new HashMap<>(); + myMap.put("Pushchenko", "Alex"); + myMap.put("Qwerty", "Egor"); + myMap.put("Zikov", "Sergey"); + myMap.put("Akberdin", "Sergey"); + myMap.put("Puff", "Nutii"); + myMap.put("Hello", "Inspector!"); + myMap.put("Ivanova", "Vera"); + myMap.put("ZX103H5", "Nadezhda"); + myMap.put("Ivanova", "Olga"); + myMap.put("Familia", "Nadezhda"); + return myMap; + } + + public static int getSameFirstNameCount(Map map) { + Set fn = new HashSet<>(); + int cnt = 0; + for (String name : map.values()) { + if (!fn.add(name)) { + cnt++; + } + } + return cnt; + } + + public static int getSameLastNameCount(Map map) { + Set ln = new HashSet<>(); + int cnt = 0; + for (String lastName : map.keySet()) { + if (!ln.add(lastName)) { + cnt++; + } + } + return cnt; + } + + + public static void main(String[] args) { + Map myOwn = createMap(); + System.out.println("unique first name " + getSameFirstNameCount(myOwn)); + System.out.println("unique second name: " + getSameLastNameCount(myOwn)); + } +} + diff --git a/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task3/IntKeys.java b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task3/IntKeys.java new file mode 100644 index 000000000..ed11ac6da --- /dev/null +++ b/students/23K0365/23K0365-p28/src/main/java/ru/mirea/practice/s0000001/task3/IntKeys.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s0000001.task3; + +import java.util.HashMap; + +public abstract class IntKeys { + public static void main(String[] args) { + HashMap intK = new HashMap<>(); + intK.put(0, "Vera"); + intK.put(1, "Alex"); + intK.put(2, "Egor"); + intK.put(3, "Sergey"); + intK.put(4, "Sergey"); + intK.put(5, "Vladimir"); + intK.put(6, "Ilia"); + System.out.println(intK); + for (int i = 6; i > 0; i--) { + System.out.println(intK.get(i)); + } + } +} diff --git a/students/23K0365/23K0365-p29/pom.xml b/students/23K0365/23K0365-p29/pom.xml new file mode 100644 index 000000000..56a13bab7 --- /dev/null +++ b/students/23K0365/23K0365-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p29 + Массивы + diff --git a/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/NeptunesRoad.java b/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/NeptunesRoad.java new file mode 100644 index 000000000..1485e9a11 --- /dev/null +++ b/students/23K0365/23K0365-p29/src/main/java/ru/mirea/practice/s0000001/NeptunesRoad.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s0000001; + +public abstract class NeptunesRoad { + public static void main(String[] args) { + int[][] testOne = { + {0, 1, 0, 0, 0}, + {1, 0, 1, 1, 0}, + {0, 1, 0, 0, 0}, + {0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0}}; + //или по другому: + //try (Scanner sc = new Scanner(System.in)) { + // int len = sc.nextInt(); + // int[][] tester = new int[len][len]; + // for (int i = 0; i < len; i++) { + // for (int j = 0; j < len; j++) { + // tester[i][j] = sc.nextInt(); + // } + // } + //} + int cnt = 0; + for (int i = 0; i < testOne.length; i++) { + for (int j = i; j < testOne[0].length; j++) { + if (testOne[i][j] == 1) { + cnt += 1; + } + } + } + System.out.println("test #1 : " + cnt); + cnt = 0; + int[][] testTwo = { + {0, 1, 1, 1}, + {1, 0, 0, 0}, + {1, 0, 1, 1}, + {1, 0, 1, 0}};// answer - 5 + for (int i = 0; i < testTwo.length; i++) { + for (int j = i; j < testTwo[0].length; j++) { + if (testTwo[i][j] == 1) { + cnt += 1; + } + } + } + System.out.println("test #2 : " + cnt); + } +} diff --git a/students/23K0365/23K0365-p30/pom.xml b/students/23K0365/23K0365-p30/pom.xml new file mode 100644 index 000000000..87967aa83 --- /dev/null +++ b/students/23K0365/23K0365-p30/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p30 + Массивы + diff --git a/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/Node.java b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/Node.java new file mode 100644 index 000000000..964babd49 --- /dev/null +++ b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/Node.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001.part1; + +public class Node { + int info; + Node l; + Node r; + + public Node(int info) { + this.info = info; + this.l = null; + this.r = null; + } +} diff --git a/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/TreeOperations.java b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/TreeOperations.java new file mode 100644 index 000000000..40460fb92 --- /dev/null +++ b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part1/TreeOperations.java @@ -0,0 +1,129 @@ +package ru.mirea.practice.s0000001.part1; + +import java.util.LinkedList; +import java.util.Queue; + +public class TreeOperations { + Node head; + + TreeOperations() { + head = null; + } + + void addElement(int info) { + head = addingElement(head, info); + } + + private Node addingElement(Node cur, int info) { + if (cur == null) { + return new Node(info); + } + if (info < cur.info) { + cur.l = addingElement(cur.l, info); + } else if (info > cur.info) { + cur.r = addingElement(cur.r, info); + } else { + return cur; + } + return cur; + } + + int heightDeterm(Node a) { + if (a == null) { + return 0; + } else { + int lheight = heightDeterm(a.l); + int rheight = heightDeterm(a.r); + return Math.max(lheight, rheight) + 1; + } + } + + void reveringTree(Node a) { + if (a != null) { + reveringTree(a.l); + reveringTree(a.r); + Node temp = a.l; + a.l = a.r; + a.r = temp; + } + } + + boolean searchElement(Node a, int key) { + if (a == null) { + return false; + } + if (a.info == key) { + return true; + } + return searchElement(a.l, key) || searchElement(a.r, key); + } + + int widthDeterm(Node a) { + if (a == null) { + return 0; + } + Queue q = new LinkedList<>(); + q.offer(a); + int maxx = 0; + while (!q.isEmpty()) { + int siz = q.size(); + maxx = Math.max(maxx, siz); + for (int i = 0; i < siz; i++) { + Node temp = q.poll(); + if (temp.l != null) { + q.offer(temp.l); + } + if (temp.r != null) { + q.offer(temp.r); + } + } + } + return maxx; + } + + int countNodes(Node node) { + if (node == null) { + return 0; + } else { + return 1 + countNodes(node.l) + countNodes(node.r); + } + } + + boolean comparringTree(Node root1, Node root2) { + if (root1 == null && root2 == null) { + return true; + } + if (root1 == null || root2 == null) { + return false; + } + return root1.info == root2.info + && comparringTree(root1.l, root2.l) + && comparringTree(root1.r, root2.r); + } + + public static void main(String[] args) { + TreeOperations tree = new TreeOperations(); + TreeOperations treeSc = new TreeOperations(); + for (int i = 5; i < 15; i++) { + treeSc.addElement(i * 17 % 10); + tree.addElement(i * 17 % 10); + } + treeSc.addElement(999); + System.out.println("height: " + tree.heightDeterm(tree.head)); + System.out.println("width: " + tree.widthDeterm(tree.head)); + System.out.println("el-nt '5' exist? " + tree.searchElement(tree.head, 5)); + System.out.println("conut of el-nts: " + tree.countNodes(tree.head)); + + System.out.println(); + System.out.println("second n first trees comparing:" + treeSc.comparringTree(tree.head, treeSc.head)); + System.out.println("height: " + treeSc.heightDeterm(treeSc.head)); + System.out.println("width: " + treeSc.widthDeterm(treeSc.head)); + System.out.println("count of el-nts: " + treeSc.countNodes(treeSc.head)); + + System.out.println(); + TreeOperations treeTh = treeSc; + treeSc.reveringTree(treeSc.head); + System.out.println("second n third trees comparing:" + treeSc.comparringTree(treeTh.head, treeSc.head)); + + } +} diff --git a/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/Node.java b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/Node.java new file mode 100644 index 000000000..634409987 --- /dev/null +++ b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/Node.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s0000001.part2; + +public class Node { + int info; + Node l; + Node r; + + public Node(int info) { + this.info = info; + this.l = null; + this.r = null; + } +} diff --git a/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/TreeOperations.java b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/TreeOperations.java new file mode 100644 index 000000000..196b82706 --- /dev/null +++ b/students/23K0365/23K0365-p30/src/main/java/ru/mirea/practice/s0000001/part2/TreeOperations.java @@ -0,0 +1,155 @@ +package ru.mirea.practice.s0000001.part2; + +import java.util.LinkedList; +import java.util.Queue; + +public class TreeOperations { + Node head; + + TreeOperations() { + head = null; + } + + void addElement(int info) { + head = addingElement(head, info); + } + + private Node addingElement(Node cur, int info) { + if (cur == null) { + return new Node(info); + } + if (info < cur.info) { + cur.l = addingElement(cur.l, info); + } else if (info > cur.info) { + cur.r = addingElement(cur.r, info); + } else { + return cur; + } + return cur; + } + + void deleteElement(int info) { + head = deletingElement(head, info); + } + + private Node deletingElement(Node cur, int info) { + if (cur == null) { + return null; + } + if (info == cur.info) { + if (cur.l == null && cur.r == null) { + return null; + } + if (cur.r == null) { + return cur.l; + } + if (cur.l == null) { + return cur.r; + } + int smValue = findSmallest(cur.r); + cur.info = smValue; + cur.r = deletingElement(cur.r, smValue); + return cur; + } + if (info < cur.info) { + cur.l = deletingElement(cur.l, info); + return cur; + } else { + cur.r = deletingElement(cur.r, info); + return cur; + } + } + + private int findSmallest(Node head) { + return head.l == null ? head.info : findSmallest(head.l); + } + + private int findBiggest(Node head) { + return head.r == null ? head.info : findBiggest(head.r); + } + + void printTree() { + if (head == null) { + System.out.println("its empty("); + return; + } + int height = heightDeterm(head); + Queue q = new LinkedList<>(); + q.add(head); + Queue path = new LinkedList<>(); + path.add(""); + while (!q.isEmpty()) { + int level = q.size(); + for (int i = 0; i < level; i++) { + Node temp = q.poll(); + String curPath = path.poll(); + System.out.print(curPath + temp.info); + if (temp.l != null) { + q.add(temp.l); + path.add(curPath); + } + if (temp.r != null) { + q.add(temp.r); + path.add(curPath + " "); + for (int j = 0; j < height - level; j++) { + System.out.print(" "); + } + } + } + System.out.println(); + } + System.out.println(); + } + + int heightDeterm(Node a) { + if (a == null) { + return 0; + } else { + int lheight = heightDeterm(a.l); + int rheight = heightDeterm(a.r); + return Math.max(lheight, rheight) + 1; + } + } + + int widthDeterm(Node a) { + if (a == null) { + return 0; + } + Queue q = new LinkedList<>(); + q.offer(a); + int maxx = 0; + while (!q.isEmpty()) { + int siz = q.size(); + maxx = Math.max(maxx, siz); + for (int i = 0; i < siz; i++) { + Node temp = q.poll(); + if (temp.l != null) { + q.offer(temp.l); + } + if (temp.r != null) { + q.offer(temp.r); + } + } + } + return maxx; + } + + void deleteWholeTree() { + head = null; + } + + public static void main(String[] args) { + TreeOperations tree = new TreeOperations(); + for (int i = 5; i < 16; i++) { + tree.addElement(i * 17 % 10); + } + tree.printTree(); + System.out.println("smallest - " + tree.findSmallest(tree.head)); + System.out.println("biggest - " + tree.findBiggest(tree.head)); + System.out.println("delete - 9\n"); + tree.deleteElement(9); + tree.printTree(); + tree.deleteWholeTree(); + tree.printTree(); + } +} diff --git a/students/23K0365/23K0365-p32/pom.xml b/students/23K0365/23K0365-p32/pom.xml new file mode 100644 index 000000000..6efe2897d --- /dev/null +++ b/students/23K0365/23K0365-p32/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0365 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0365-p32 + Массивы + diff --git a/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b89e47de8 --- /dev/null +++ b/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s0000001; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("первая практическая работа!"); + } +} diff --git a/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Swapper.java b/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Swapper.java new file mode 100644 index 000000000..48c11eea4 --- /dev/null +++ b/students/23K0365/23K0365-p32/src/main/java/ru/mirea/practice/s0000001/Swapper.java @@ -0,0 +1,46 @@ +package ru.mirea.practice.s0000001; + +import java.util.Arrays; + +public abstract class Swapper { + public static void main(String[] args) { + int num = 3; + int[] ar = new int[num]; + int[] q = new int[num]; + for (int i = 0; i < num; i++) { + ar[i] = i + 1; + q[i] = -1; + } + + while (true) { + System.out.println(Arrays.toString(ar)); + int index = -1; + int max = -1; + for (int i = 0; i < num; i++) { + if (i + q[i] >= 0 && i + q[i] < ar.length && ar[i] > ar[i + q[i]] + && ar[i] > max) { + max = ar[i]; + index = i; + } + } + if (index == -1) { + System.exit(1); + } + + int next = index + q[index]; + int temp = ar[index]; + ar[index] = ar[next]; + ar[next] = temp; + + int temp2 = q[index]; + q[index] = q[next]; + q[next] = temp2; + + for (int i = 0; i < num; i++) { + if (ar[i] > max) { + q[i] *= -1; + } + } + } + } +} diff --git a/students/23K0365/pom.xml b/students/23K0365/pom.xml index 96f5c9a15..a509af59c 100644 --- a/students/23K0365/pom.xml +++ b/students/23K0365/pom.xml @@ -32,6 +32,17 @@ 23K0365-p18 23K0365-p19 23K0365-p20 + 23K0365-p21 + 23K0365-p22 + 23K0365-p23 + 23K0365-p24 + 23K0365-p25 + 23K0365-p26 + 23K0365-p27 + 23K0365-p28 + 23K0365-p29 + 23K0365-p30 + 23K0365-p32 23K0365-p112