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

Commit a06bc95

Browse files
authored
Merge pull request #643 from 12egor12/lab30_232
Lab3032
2 parents 5e09d51 + 3a6c844 commit a06bc95

File tree

76 files changed

+2529
-13
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+2529
-13
lines changed

students/23K0689/23K0689-p15/src/main/java/ru/mirea/practice/s00000015/task1/CalculatorApp.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public static void main(String[] args) {
2626
JLabel resultLabel = new JLabel("Результат: ");
2727

2828
addButton.addActionListener(new ActionListener() {
29+
@Override
2930
public void actionPerformed(ActionEvent e) {
3031
double num1 = Double.parseDouble(number1Field.getText());
3132
double num2 = Double.parseDouble(number2Field.getText());
@@ -35,6 +36,7 @@ public void actionPerformed(ActionEvent e) {
3536
});
3637

3738
subtractButton.addActionListener(new ActionListener() {
39+
@Override
3840
public void actionPerformed(ActionEvent e) {
3941
double num1 = Double.parseDouble(number1Field.getText());
4042
double num2 = Double.parseDouble(number2Field.getText());
@@ -44,6 +46,7 @@ public void actionPerformed(ActionEvent e) {
4446
});
4547

4648
multiplyButton.addActionListener(new ActionListener() {
49+
@Override
4750
public void actionPerformed(ActionEvent e) {
4851
double num1 = Double.parseDouble(number1Field.getText());
4952
double num2 = Double.parseDouble(number2Field.getText());
@@ -53,6 +56,7 @@ public void actionPerformed(ActionEvent e) {
5356
});
5457

5558
divideButton.addActionListener(new ActionListener() {
59+
@Override
5660
public void actionPerformed(ActionEvent e) {
5761
double num1 = Double.parseDouble(number1Field.getText());
5862
double num2 = Double.parseDouble(number2Field.getText());
@@ -78,4 +82,3 @@ public void actionPerformed(ActionEvent e) {
7882
frame.setVisible(true);
7983
}
8084
}
81-

students/23K0689/23K0689-p20/src/main/java/ru/mirea/practice/s00000020/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ru.mirea.practice.s0000001;
1+
package ru.mirea.practice.s00000020;
22

33
public final class Main {
44

students/23K0689/23K0689-p20/src/main/java/ru/mirea/practice/s00000020/Task1.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
package ru.mirea.practice.s0000001;
2-
3-
/**
4-
* Создать обобщенный класс с тремя параметрами (T, V, K).
5-
*/
1+
package ru.mirea.practice.s00000020;
62

73
public abstract class Task1 {
84
public static void main(String[] args) {

students/23K0689/23K0689-p20/src/main/java/ru/mirea/practice/s00000020/Task3.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
package ru.mirea.practice.s0000001;
1+
package ru.mirea.practice.s00000020;
22

33
import java.io.Serializable;
44

5-
/**
6-
* Наложить ограничения на параметры типа: T должен реализовать интерфейс Comparable (классы оболочки, String),
7-
* V должен реализовать интерфейс Serializable и расширять класс Animal,
8-
* K
9-
*/
5+
106

117
public abstract class Task3 {
128
public static void main(String[] args) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0689</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0689-p21_1</artifactId>
12+
<description>Двадцать первое задание</description>
13+
</project>
14+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package ru.mirea.practice.s00000021;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
public final class ArrayConverter { // final - класс не может быть унаследован
8+
9+
// Приватный конструктор предотвращает создание экземпляров класса
10+
private ArrayConverter() {
11+
throw new UnsupportedOperationException("Utility class");
12+
}
13+
14+
public static <T> List<T> convertArrayToList(T[] array) {
15+
return new ArrayList<>(Arrays.asList(array));
16+
}
17+
18+
public static void main(String[] args) {
19+
Integer[] numbers = {1, 2, 3, 4};
20+
String[] strings = {"a", "b", "c"};
21+
22+
List<Integer> numberList = convertArrayToList(numbers);
23+
List<String> stringList = convertArrayToList(strings);
24+
25+
System.out.println("Список чисел: " + numberList);
26+
System.out.println("Список строк: " + stringList);
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package ru.mirea.practice.s00000021;
2+
3+
public class ArrayStorage<T> {
4+
private T[] items;
5+
6+
public ArrayStorage(T[] items) {
7+
this.items = items;
8+
}
9+
10+
public T getItemByIndex(int index) {
11+
if (index < 0 || index >= items.length) {
12+
throw new IndexOutOfBoundsException("Индекс вне диапазона: " + index);
13+
}
14+
return items[index];
15+
}
16+
17+
public static void main(String[] args) {
18+
Integer[] numbers = {10, 20, 30, 40};
19+
ArrayStorage<Integer> numberStorage = new ArrayStorage<>(numbers);
20+
21+
System.out.println("Элемент на индексе 2: " + numberStorage.getItemByIndex(2));
22+
23+
String[] words = {"hello", "world", "java"};
24+
ArrayStorage<String> stringStorage = new ArrayStorage<>(words);
25+
26+
System.out.println("Элемент на индексе 1: " + stringStorage.getItemByIndex(1));
27+
}
28+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package ru.mirea.practice.s00000021;
2+
3+
public final class TypePrinter { // final - класс не может быть унаследован
4+
5+
// Приватный конструктор предотвращает создание экземпляров класса
6+
private TypePrinter() {
7+
throw new UnsupportedOperationException("Utility class");
8+
}
9+
10+
public static void printType(Object obj) {
11+
if (obj != null) {
12+
System.out.println("Тип объекта: " + obj.getClass().getSimpleName());
13+
} else {
14+
System.out.println("Объект равен null.");
15+
}
16+
}
17+
18+
public static void main(String[] args) {
19+
printType(123);
20+
printType("Hello");
21+
printType(null);
22+
}
23+
}

students/23K0689/23K0689-p22/pom.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0689</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0689-p22</artifactId>
12+
<description>Двадцать второе задание</description>
13+
</project>
14+
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package ru.mirea.practice.s00000022.task1;
2+
3+
import java.util.Stack;
4+
5+
public class SimpleRpnCalculator {
6+
7+
public double evaluate(String expression) {
8+
Stack<Double> stack = new Stack<>();
9+
String[] tokens = expression.split(" ");
10+
11+
for (String token : tokens) {
12+
if (isNumber(token)) {
13+
stack.push(Double.parseDouble(token));
14+
} else {
15+
if (stack.size() < 2) {
16+
System.out.println("Ошибка: недостаточно операндов для операции.");
17+
return Double.NaN;
18+
}
19+
double operand2 = stack.pop();
20+
double operand1 = stack.pop();
21+
double result = performOperation(operand1, operand2, token);
22+
stack.push(result);
23+
}
24+
}
25+
26+
if (stack.size() != 1) {
27+
System.out.println("Ошибка: неверное количество операндов в выражении.");
28+
return Double.NaN;
29+
}
30+
31+
return stack.pop();
32+
}
33+
34+
private boolean isNumber(String token) {
35+
try {
36+
Double.parseDouble(token);
37+
return true;
38+
} catch (NumberFormatException e) {
39+
return false;
40+
}
41+
}
42+
43+
private double performOperation(double operand1, double operand2, String operator) {
44+
switch (operator) {
45+
case "+":
46+
return operand1 + operand2;
47+
case "-":
48+
return operand1 - operand2;
49+
case "*":
50+
return operand1 * operand2;
51+
case "/":
52+
if (operand2 == 0) {
53+
System.out.println("Ошибка: деление на ноль.");
54+
return Double.NaN;
55+
}
56+
return operand1 / operand2;
57+
default:
58+
System.out.println("Неизвестный оператор: " + operator);
59+
return Double.NaN;
60+
}
61+
}
62+
}

0 commit comments

Comments
 (0)