From 3009b5180442f258f8119db9195522a1e6da4eed Mon Sep 17 00:00:00 2001 From: Lenovo Date: Fri, 13 Dec 2024 13:14:52 +0300 Subject: [PATCH] Changes26-29(1) --- students/23K0565/23K0565-p26/pom.xml | 13 +++ .../practice/s0000001/n1/InvertArray.java | 30 +++++++ .../practice/s0000001/n2/CusIterator.java | 25 ++++++ .../ru/mirea/practice/s0000001/n2/ListD.java | 23 +++++ .../practice/s0000001/n3/CusIterator.java | 24 ++++++ .../mirea/practice/s0000001/n3/CusList.java | 39 +++++++++ .../mirea/practice/s0000001/n3/ListDemo.java | 18 ++++ students/23K0565/23K0565-p27/pom.xml | 13 +++ .../mirea/practice/s0000001/n1/Hashtab.java | 56 +++++++++++++ .../ru/mirea/practice/s0000001/n2/Ttest.java | 56 +++++++++++++ .../ru/mirea/practice/s0000001/n3/Dem.java | 65 ++++++++++++++ .../ru/mirea/practice/s0000001/n4/Ohered.java | 84 +++++++++++++++++++ students/23K0565/23K0565-p28/pom.xml | 13 +++ .../ru/mirea/practice/s0000001/n1/N1.java | 46 ++++++++++ .../ru/mirea/practice/s0000001/n3/N3.java | 53 ++++++++++++ students/23K0565/23K0565-p29/pom.xml | 13 +++ .../java/ru/mirea/practice/s0000001/Main.java | 40 +++++++++ 17 files changed, 611 insertions(+) create mode 100644 students/23K0565/23K0565-p26/pom.xml create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java create mode 100644 students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java create mode 100644 students/23K0565/23K0565-p27/pom.xml create mode 100644 students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java create mode 100644 students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java create mode 100644 students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java create mode 100644 students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java create mode 100644 students/23K0565/23K0565-p28/pom.xml create mode 100644 students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java create mode 100644 students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java create mode 100644 students/23K0565/23K0565-p29/pom.xml create mode 100644 students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java diff --git a/students/23K0565/23K0565-p26/pom.xml b/students/23K0565/23K0565-p26/pom.xml new file mode 100644 index 000000000..2738e5ec3 --- /dev/null +++ b/students/23K0565/23K0565-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0565 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0565-p26 + 26 практическая + diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java new file mode 100644 index 000000000..7c421ee75 --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n1/InvertArray.java @@ -0,0 +1,30 @@ +package ru.mirea.practice.s0000001.n1; + +import java.util.Stack; + +public final class InvertArray { + private InvertArray() { + } + + public static int[] invert(int[] arr) { + Stack stack = new Stack<>(); + for (int num : arr) { + stack.push(num); + } + + for (int i = 0; i < arr.length; i++) { + arr[i] = stack.pop(); + } + + return arr; + } + + public static void main(String[] args) { + int[] data = {1, 2, 3, 4, 5}; + data = invert(data); + for (int num : data) { + System.out.print(num + " "); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java new file mode 100644 index 000000000..90fe217da --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/CusIterator.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s0000001.n2; + +import java.util.Iterator; +import java.util.List; + +public class CusIterator implements Iterator { + private List lst; + private int idx; + + public CusIterator(List lst) { + this.lst = lst; + this.idx = 0; + } + + @Override + public boolean hasNext() { + return idx < lst.size(); + } + + @Override + public T next() { + return lst.get(idx++); + } +} +//Upd diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java new file mode 100644 index 000000000..0986779c4 --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n2/ListD.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s0000001.n2; + +import java.util.ArrayList; +import java.util.List; + +public final class ListD { + private ListD() { + } + + public static void main(String[] args) { + List nums = new ArrayList<>(); + nums.add(10); + nums.add(20); + nums.add(30); + + CusIterator iter = new CusIterator<>(nums); + + while (iter.hasNext()) { + System.out.println(iter.next()); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java new file mode 100644 index 000000000..30bf0094f --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusIterator.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s0000001.n3; + +import java.util.Iterator; + +public class CusIterator implements Iterator { + private CusList lst; + private int idx; + + public CusIterator(CusList lst) { + this.lst = lst; + this.idx = 0; + } + + @Override + public boolean hasNext() { + return idx < lst.size(); + } + + @Override + public T next() { + return lst.get(idx++); + } +} +//Upd diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java new file mode 100644 index 000000000..8aa679975 --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/CusList.java @@ -0,0 +1,39 @@ +package ru.mirea.practice.s0000001.n3; + +import java.util.Iterator; + +public class CusList implements Iterable { + private Object[] elements; + private int size; + + public CusList(int capacity) { + elements = new Object[capacity]; + size = 0; + } + + public void add(T item) { + if (size < elements.length) { + elements[size++] = item; + } else { + throw new IndexOutOfBoundsException("Список заполнен("); + } + } + + public T get(int index) { + if (index >= 0 && index < size) { + return (T) elements[index]; + } else { + throw new IndexOutOfBoundsException("Некорректный индекс:("); + } + } + + public int size() { + return size; + } + + @Override + public Iterator iterator() { + return new CusIterator<>(this); + } +} +//Upd diff --git a/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java new file mode 100644 index 000000000..ff43cd541 --- /dev/null +++ b/students/23K0565/23K0565-p26/src/main/java/ru/mirea/practice/s0000001/n3/ListDemo.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s0000001.n3; + +public final class ListDemo { + private ListDemo() { + } + + public static void main(String[] args) { + CusList nums = new CusList<>(5); + nums.add(10); + nums.add(20); + nums.add(30); + + for (int num : nums) { + System.out.println(num); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p27/pom.xml b/students/23K0565/23K0565-p27/pom.xml new file mode 100644 index 000000000..52d175085 --- /dev/null +++ b/students/23K0565/23K0565-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0565 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0565-p27 + 27 практическая + diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java new file mode 100644 index 000000000..42faba96b --- /dev/null +++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n1/Hashtab.java @@ -0,0 +1,56 @@ +package ru.mirea.practice.s0000001.n1; + +import java.util.HashMap; +import java.util.Map; + +public final class Hashtab { + private static final int SIZE = 10; + private static Map hTable; + + private Hashtab() { + } + + public static int hashtabHash(String key) { + return Math.abs(key.hashCode() % SIZE); + } + + public static void hashtabInit() { + hTable = new HashMap<>(); + } + + public static void hashtabAdd(String key, String value) { + int idx = hashtabHash(key); + hTable.put(idx, value); + } + + public static String hashtabLookup(String key) { + int idx = hashtabHash(key); + return hTable.get(idx); + } + + public static void hashtabDelete(String key) { + int idx = hashtabHash(key); + hTable.remove(idx); + } + + public static void main(String[] args) { + hashtabInit(); + + hashtabAdd("ключ1", "значение1"); + hashtabAdd("ключ2", "значение2"); + hashtabAdd("ключ3", "значение3"); + hashtabAdd("ключ4", "значение4"); + hashtabAdd("ключ5", "значение5"); + hashtabAdd("ключ6", "значение6"); + hashtabAdd("ключ7", "значение7"); + hashtabAdd("ключ8", "значение8"); + hashtabAdd("ключ9", "значение9"); + hashtabAdd("ключ10", "значение10"); + + System.out.println("Поиск ключа 'ключ3'..: " + hashtabLookup("ключ3")); + + hashtabDelete("ключ3"); + System.out.println("После удаления ключа 'ключ3': " + hashtabLookup("ключ3")); + } +} +//Upd diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java new file mode 100644 index 000000000..26a6f692c --- /dev/null +++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n2/Ttest.java @@ -0,0 +1,56 @@ +package ru.mirea.practice.s0000001.n2; + +import java.util.HashMap; +import java.util.Map; + +public final class Ttest { + private static final int SIZE = 10; + private static Map hTable; + + private Ttest() { + } + + public static int hashtabHash(String key) { + return Math.abs(key.hashCode() % SIZE); + } + + public static void hashtabInit() { + hTable = new HashMap<>(); + } + + public static void hashtabAdd(String key, String value) { + int idx = hashtabHash(key); + hTable.put(idx, value); + } + + public static String hashtabLookup(String key) { + int idx = hashtabHash(key); + return hTable.get(idx); + } + + public static void hashtabDelete(String key) { + int idx = hashtabHash(key); + hTable.remove(idx); + } + + public static void main(String[] args) { + hashtabInit(); + + hashtabAdd("ключ1", "мангоо"); + hashtabAdd("ключ2", "манго"); + hashtabAdd("ключ3", "манго13"); + hashtabAdd("ключ4", "манго14"); + hashtabAdd("ключ5", "манго15"); + hashtabAdd("ключ6", "манго16"); + hashtabAdd("ключ7", "манго17"); + hashtabAdd("ключ8", "манго18"); + hashtabAdd("ключ9", "манго19"); + hashtabAdd("ключ10", "манго20"); + + System.out.println("Словарь после добавления элементов:"); + for (Map.Entry entry : hTable.entrySet()) { + System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue()); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java new file mode 100644 index 000000000..ea588990d --- /dev/null +++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n3/Dem.java @@ -0,0 +1,65 @@ +package ru.mirea.practice.s0000001.n3; + +import java.util.HashMap; +import java.util.Map; + +public final class Dem { + private static final int SIZE = 10; + private static Map hTable; + + private Dem() { + } + + public static int hashtabHash(String key) { + return Math.abs(key.hashCode() % SIZE); + } + + public static void hashtabInit() { + hTable = new HashMap<>(); + } + + public static void hashtabAdd(String key, String value) { + int idx = hashtabHash(key); + hTable.put(idx, value); + } + + public static String hashtabLookup(String key) { + int idx = hashtabHash(key); + return hTable.get(idx); + } + + public static void hashtabDelete(String key) { + int idx = hashtabHash(key); + hTable.remove(idx); + } + + public static void main(String[] args) { + hashtabInit(); + + hashtabAdd("ключ1", "мангоо"); + hashtabAdd("ключ2", "манго"); + hashtabAdd("ключ3", "манго13"); + hashtabAdd("ключ4", "манго14"); + hashtabAdd("ключ5", "манго15"); + hashtabAdd("ключ6", "манго16"); + hashtabAdd("ключ7", "манго17"); + hashtabAdd("ключ8", "манго18"); + hashtabAdd("ключ9", "манго19"); + hashtabAdd("ключ10", "манго20"); + + System.out.println("Словарь после добавления элементов:"); + for (Map.Entry entry : hTable.entrySet()) { + System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue()); + } + + String searchKey = "ключ5"; + System.out.println("\nПоиск значения по ключу '" + searchKey + "': " + hashtabLookup(searchKey)); + + hashtabDelete(searchKey); + System.out.println("\nСловарь после удаления ключа: '" + searchKey + "':"); + for (Map.Entry entry : hTable.entrySet()) { + System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue()); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java new file mode 100644 index 000000000..74f919ecf --- /dev/null +++ b/students/23K0565/23K0565-p27/src/main/java/ru/mirea/practice/s0000001/n4/Ohered.java @@ -0,0 +1,84 @@ +package ru.mirea.practice.s0000001.n4; + +import java.util.HashMap; +import java.util.Map; +import java.util.PriorityQueue; +import java.util.Queue; + +public final class Ohered { + private static final int SIZE = 10; + private static Map hTable; + + private Ohered() { + } + + public static int hashtabHash(String key) { + return Math.abs(key.hashCode() % SIZE); + } + + public static void hashtabInit() { + hTable = new HashMap<>(); + } + + public static void hashtabAdd(String key, String value) { + int idx = hashtabHash(key); + hTable.put(idx, value); + } + + public static String hashtabLookup(String key) { + int idx = hashtabHash(key); + return hTable.get(idx); + } + + public static void hashtabDelete(String key) { + int idx = hashtabHash(key); + hTable.remove(idx); + } + + public static void main(String[] args) { + hashtabInit(); + + hashtabAdd("ключ1", "мангоо"); + hashtabAdd("ключ2", "манго"); + hashtabAdd("ключ3", "манго13"); + hashtabAdd("ключ4", "манго14"); + hashtabAdd("ключ5", "манго15"); + hashtabAdd("ключ6", "манго16"); + hashtabAdd("ключ7", "манго17"); + hashtabAdd("ключ8", "манго18"); + hashtabAdd("ключ9", "манго19"); + hashtabAdd("ключ10", "манго20"); + + System.out.println("Словарь после добавления элементов:"); + for (Map.Entry entry : hTable.entrySet()) { + System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue()); + } + + String searchKey = "ключ5"; + System.out.println("\nПоиск значения по ключу '" + searchKey + "': " + hashtabLookup(searchKey)); + + hashtabDelete(searchKey); + System.out.println("\nСловарь после удаления ключа '" + searchKey + "':"); + for (Map.Entry entry : hTable.entrySet()) { + System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue()); + } + + Queue priorityQueue = new PriorityQueue<>(); + priorityQueue.add("мангоо"); + priorityQueue.add("манго"); + priorityQueue.add("манго13"); + priorityQueue.add("манго14"); + priorityQueue.add("манго15"); + priorityQueue.add("манго15"); + priorityQueue.add("манго17"); + priorityQueue.add("манго18"); + priorityQueue.add("манго19"); + priorityQueue.add("манго20"); + + System.out.println("\nИзвлечение нескольких элементов из очереди с приоритетом:"); + for (int i = 0; i < 3; i++) { + System.out.println("Извлечено: " + priorityQueue.poll()); + } + } +} +//Upd diff --git a/students/23K0565/23K0565-p28/pom.xml b/students/23K0565/23K0565-p28/pom.xml new file mode 100644 index 000000000..777d7bc08 --- /dev/null +++ b/students/23K0565/23K0565-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0565 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0565-p28 + 28 практическая + diff --git a/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java new file mode 100644 index 000000000..e726c769d --- /dev/null +++ b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n1/N1.java @@ -0,0 +1,46 @@ +package ru.mirea.practice.s0000001.n1; + +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +public final class N1 { + private static Set hSet; + + private N1() { + } + + public static void initSet() { + hSet = new HashSet<>(); + } + + public static void addToSet(String value) { + hSet.add(value); + } + + public static Set convertToTreeSet() { + return new TreeSet<>(hSet); + } + + public static void main(String[] args) { + initSet(); + + addToSet("мангоо"); + addToSet("манго"); + addToSet("манго13"); + addToSet("манго14"); + addToSet("манго15"); + + System.out.println("HashSet:"); + for (String item : hSet) { + System.out.println(item); + } + + Set tSet = convertToTreeSet(); + + System.out.println("\nTreeSet (отсортированный):"); + for (String item : tSet) { + System.out.println(item); + } + } +} diff --git a/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java new file mode 100644 index 000000000..63dafc162 --- /dev/null +++ b/students/23K0565/23K0565-p28/src/main/java/ru/mirea/practice/s0000001/n3/N3.java @@ -0,0 +1,53 @@ +package ru.mirea.practice.s0000001.n3; + +import java.util.HashMap; +import java.util.Map; + +public final class N3 { + private static final int TABLE_SIZE = 10; + private static Map hTable; + + private N3() { + } + + public static int hash(double key) { + return (int) (TABLE_SIZE * (key - Math.floor(key))); + } + + public static void initTable() { + hTable = new HashMap<>(); + } + + public static void insertTable(double key, String value) { + int idx = hash(key); + hTable.put(idx, value); + } + + public static String lookup(double key) { + int idx = hash(key); + return hTable.get(idx); + } + + public static void deleteFromTable(double key) { + int idx = hash(key); + hTable.remove(idx); + } + + public static void main(String[] args) { + initTable(); + + insertTable(3.1415, "Pi"); + insertTable(2.7182, "Euler"); + insertTable(1.6180, "Golden Ratio"); + insertTable(0.5772, "Euler-Mascheroni"); + insertTable(6.6260, "Planck"); + + System.out.println(lookup(3.1415)); + System.out.println(lookup(2.7182)); + + deleteFromTable(2.7182); + + System.out.println(lookup(2.7182)); + } +} +//Upd diff --git a/students/23K0565/23K0565-p29/pom.xml b/students/23K0565/23K0565-p29/pom.xml new file mode 100644 index 000000000..a2822b630 --- /dev/null +++ b/students/23K0565/23K0565-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0565 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0565-p29 + 29 практическая + diff --git a/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java b/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java new file mode 100644 index 000000000..b5399d6da --- /dev/null +++ b/students/23K0565/23K0565-p29/src/main/java/ru/mirea/practice/s0000001/Main.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s0000001; + +import java.util.Scanner; +import java.io.PrintWriter; + +public abstract class Main { + private static final int INF = 1000000000; + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out)) { + int n = in.nextInt(); + int[][] g = new int[n][n]; + + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + g[i][j] = in.nextInt(); + if (g[i][j] == 0 && i != j) { + g[i][j] = INF; + } + } + } + + for (int k = 0; k < n; k++) { + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + g[i][j] = Math.min(g[i][j], g[i][k] + g[k][j]); + } + } + } + + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + out.print((g[i][j] == INF ? 0 : g[i][j]) + " "); + } + out.println(); + } + } + } +} +//Upd