Skip to content
This repository was archived by the owner on Dec 28, 2024. It is now read-only.

Лабораторные 21-32 #701

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@
<module>students/23K0186</module>
<module>students/23K0755</module>
<module>students/23K1292</module>
<module>students/23K1158</module>

</modules>
<dependencies>
<dependency>
Expand Down
13 changes: 13 additions & 0 deletions students/23K1158/23K1158-025/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K1158</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K1158-025</artifactId>
<description>025</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.mirea.practice.u23k1158.t1;

public final class Main {
private Main() {
}
public static void main(String[] args) {
System.out.println("Двадцать пятая практическая работа");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package ru.mirea.practice.u23k1158.t1;

public abstract class StringChecker {
// Регулярное выражение для проверки строки
private static final String PATTERN = "^abcdefghijklmnopqrstuv18340$";
// Метод для проверки строки
public static boolean isValidString(String input) {
return input.matches(PATTERN);
}
public static void main(String[] args) {
// Примеры строк для проверки
String validString = "abcdefghijklmnopqrstuv18340";
String invalidString = "abcdefghijklmnoasdfasdpqrstuv18340";
// Проверка строк
System.out.println("Строка \"" + validString + "\" корректна: " + isValidString(validString));
System.out.println("Строка \"" + invalidString + "\" корректна: " + isValidString(invalidString));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package ru.mirea.practice.u23k1158.t1.t3;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public abstract class PriceExtractor {
public static void main(String[] args) {
String text = "The product costs 25.98 USD, another is priced at 50.00 RUB,"
+ "and there's one more at 30.50 EU. Wrong prices include 44 ERR, 0.004 EU, and 20.3 USD.";
// Регулярное выражение для поиска цен
String pattern = "\\b\\d{1,}\\.\\d{2}\\s(?:USD|RUB|EU)\\b";
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
System.out.println("Найденные цены:");
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ru.mirea.practice.u23k1158.t1.t6;

public abstract class EmailValidator {
public static void main(String[] args) {
String[] emails = {
"user@example.com",
"user@sub.example.ru",
"user@com"
};
for (String email : emails) {
System.out.println(email + " is " + (isValidEmail(email) ? "Valid" : "Invalid"));
}
}
public static boolean isValidEmail(String email) {
// Регулярное выражение для проверки e-mail адреса
String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
return email.matches(regex);
}
}
13 changes: 13 additions & 0 deletions students/23K1158/23K1158-026/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K1158</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K1158-026</artifactId>
<description>026</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package ru.mirea.practice.u23k1158.t1;

import java.util.Stack;
public abstract class ArrayInverter {
public static void invertArray(int[] array) {
Stack<Integer> stack = new Stack<>();
// Помещаем элементы массива в стек
for (int num : array) {
stack.push(num);
}
// Извлекаем элементы из стека обратно в массив, инвертируя его
for (int i = 0; i < array.length; i++) {
array[i] = stack.pop();
}
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
System.out.println("Исходный массив:");
for (int num : array) {
System.out.print(num + " ");
}
invertArray(array);
System.out.println("\nИнвертированный массив:");
for (int num : array) {
System.out.print(num + " ");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.mirea.practice.u23k1158.t1;

public final class Main {
private Main() {
}
public static void main(String[] args) {
System.out.println("Двадцать шестая практическая работа!");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ru.mirea.practice.u23k1158.t1.t2;

import java.util.Iterator;
public abstract class Main {
public static void main(String[] args) {
MyList<Integer> myList = new MyList<>();
myList.add(1);
myList.add(7);
myList.add(2);
myList.add(3);
myList.add(8);
System.out.println("Итерация через итератор:");
Iterator<Integer> iterator = myList.iterator();
while (iterator.hasNext()) {
Integer value = iterator.next();
System.out.println(value);
if (value == 2) {
iterator.remove(); // Удаляем элемент 2
}
}
System.out.println("\nОставшиеся элементы:");
for (Integer value : myList) {
System.out.println(value);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package ru.mirea.practice.u23k1158.t1.t2;

import java.util.Arrays;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Objects;
public class MyList<E> implements Iterable<E> {
private Object[] elements;
private int size;
public MyList() {
elements = new Object[10];
size = 0;
}
public boolean add(E e) {
if (size == elements.length) {
elements = Arrays.copyOf(elements, elements.length * 2);
}
elements[size++] = e;
return true;
}
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Индекс вне диапазона: " + index);
}
return (E) elements[index];
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
public boolean contains(Object o) {
for (int i = 0; i < size; i++) {
if (Objects.equals(elements[i], o)) {
return true;
}
}
return false;
}
public void clear() {
Arrays.fill(elements, 0, size, null);
size = 0;
}
@Override
public Iterator<E> iterator() {
return new MyIterator();
}
// Реализация собственного итератора
private class MyIterator implements Iterator<E> {
private int cursor = 0; // Указатель текущей позиции
private boolean canRemove = false; // Можно ли удалить элемент
@Override
public boolean hasNext() {
return cursor < size;
}
@Override
public E next() {
if (!hasNext()) {
throw new NoSuchElementException("Элементов больше нет");
}
canRemove = true;
return (E) elements[cursor++];
}
@Override
public void remove() {
if (!canRemove) {
throw new IllegalStateException("Удаление невозможно");
}
System.arraycopy(elements, cursor, elements, cursor - 1, size - cursor);
elements[--size] = null; // Уменьшаем размер и обнуляем последний элемент
cursor--;
canRemove = false;
}
}
}
13 changes: 13 additions & 0 deletions students/23K1158/23K1158-027/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K1158</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K1158-027</artifactId>
<description>027</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package ru.mirea.practice.u23k1158.t1;

import java.util.HashMap;
import java.util.Map;
public class HashTable {
private Map<Integer, String> hashtable;
// Инициализация хеш-таблицы
public void hashtabInit() {
hashtable = new HashMap<>();
}
// Хеширование ключа (в данном случае используется встроенный хеш)
public int hashtabHash(String key) {
return key.hashCode();
}
// Добавление элемента в хеш-таблицу
public void hashtabAdd(String key, String value) {
int hash = hashtabHash(key);
hashtable.put(hash, value);
}
// Поиск элемента по ключу
public String hashtabLookup(String key) {
int hash = hashtabHash(key);
return hashtable.get(hash);
}
// Удаление элемента по ключу
public void hashtabDelete(String key) {
int hash = hashtabHash(key);
hashtable.remove(hash);
}
// Вывод всех элементов таблицы
public void printHashTable() {
for (Map.Entry<Integer, String> entry : hashtable.entrySet()) {
System.out.println("Key Hash: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package ru.mirea.practice.u23k1158.t1;

public abstract class HashTableTest {
public static void main(String[] args) {
// Задание 2: Тестирование созданных функций
HashTable hashTab = new HashTable();
hashTab.hashtabInit();
// Добавление элементов
for (int i = 1; i <= 10; i++) {
hashTab.hashtabAdd("key" + i, "value" + i);
}
System.out.println("Элементы хеш-таблицы после добавления:");
hashTab.printHashTable();
// Задание 3: Поиск и удаление элементов
String keyToFind = "key5";
String keyToDelete = "key8";
System.out.println("\nПоиск элемента с ключом '" + keyToFind + "':");
String lookupResult = hashTab.hashtabLookup(keyToFind);
System.out.println("Найдено значение: " + lookupResult);
System.out.println("\nУдаление элемента с ключом '" + keyToDelete + "':");
hashTab.hashtabDelete(keyToDelete);
System.out.println("\nЭлементы хеш-таблицы после удаления:");
hashTab.printHashTable();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.mirea.practice.u23k1158.t1;

public final class Main {
private Main() {
}
public static void main(String[] args) {
System.out.println("Двадцать седьмая практическая работа");
}
}
13 changes: 13 additions & 0 deletions students/23K1158/23K1158-028/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K1158</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K1158-028</artifactId>
<description>028</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package ru.mirea.practice.u23k1158.t1;

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public abstract class HashSetToTreeSet {
public static void main(String[] args) {
// Создание и инициализация HashSet
Set<Integer> hashSet = new HashSet<>();
hashSet.add(50);
hashSet.add(20);
hashSet.add(80);
hashSet.add(10);
hashSet.add(60);
hashSet.add(30);
hashSet.add(70);
System.out.println("HashSet (произвольный порядок):");
for (Integer num : hashSet) {
System.out.print(num + " ");
}
// Преобразование HashSet в TreeSet
TreeSet<Integer> treeSet = new TreeSet<>(hashSet);
System.out.println("\n\nTreeSet (отсортированный):");
for (Integer num : treeSet) {
System.out.print(num + " ");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.mirea.practice.u23k1158.t1;

public final class Main {
private Main() {
}
public static void main(String[] args) {
System.out.println("Двадцать восьмая практическая работа!");
}
}
Loading
Loading