mirror of
https://github.com/ASDjonok/OOP_IO-2x_2023.git
synced 2026-04-01 21:21:50 +03:00
Compare commits
27 Commits
ІО-25/18-М
...
ІО-24/01-Б
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7424afd92e | ||
|
|
6d106ee74f | ||
|
|
3cd448eeda | ||
|
|
81ac59840f | ||
|
|
1e6825d7d4 | ||
|
|
4087daef02 | ||
|
|
31ba116ad8 | ||
|
|
6fc3cc244e | ||
|
|
3bbb7c8e54 | ||
|
|
1af299f8f7 | ||
|
|
4924bbe62f | ||
|
|
29e63163a4 | ||
|
|
399941844f | ||
|
|
f385bff73d | ||
|
|
6d8171ad4c | ||
|
|
14c58d0cc4 | ||
|
|
afc13cf9f8 | ||
|
|
e910ee6e4d | ||
|
|
6ab6cc17db | ||
|
|
25173d66d1 | ||
|
|
41ad598b79 | ||
|
|
13e1a61ad9 | ||
|
|
f692ae7588 | ||
|
|
429bcc7b3d | ||
|
|
4b159fa22b | ||
|
|
2880b770f7 | ||
|
|
53a9d20438 |
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
6
.idea/misc.xml
generated
Normal file
6
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-18" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/OOP_IO-2x_2023.iml" filepath="$PROJECT_DIR$/OOP_IO-2x_2023.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
124
.idea/uiDesigner.xml
generated
Normal file
124
.idea/uiDesigner.xml
generated
Normal file
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
@@ -1,21 +0,0 @@
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
float s = 0.0f, a = 2.0f, b = 1.0f, m = 6.0f, n = 4.0f;
|
||||
int c = 1;
|
||||
|
||||
for (float i = a; i <= m; i++) {
|
||||
// Перевірка ділення на 0.
|
||||
if (i == -1) {
|
||||
System.out.println("Помилка: ділення на нуль не можливе.");
|
||||
return;
|
||||
}
|
||||
for (float j = b; j <= n; j++) {
|
||||
s += (i + j) / (i + c);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("S = " + s);
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
@@ -1,59 +0,0 @@
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Створення матриць.
|
||||
char[][] a = {
|
||||
{12, 4, 8, 11},
|
||||
{16, 9, 3, 13},
|
||||
{7, 11, 16, 15}
|
||||
};
|
||||
char[][] b = {
|
||||
{15, 12, 4, 5},
|
||||
{19, 1, 3, 11},
|
||||
{2, 11, 6, 10}
|
||||
};
|
||||
|
||||
System.out.println("Матриця A: ");
|
||||
for (char[] i : a) {
|
||||
for (char j : i) {
|
||||
/* При виведенні елементів ми додаємо пробіли на кінці
|
||||
цілого числа (%-4d) задля легшого читання матриці.
|
||||
*/
|
||||
System.out.printf("%-4d", (int) j);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
System.out.println("\nМатриця B: ");
|
||||
for (char[] i : b) {
|
||||
for (char j : i) {
|
||||
System.out.printf("%-4d", (int) j);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
// Перевірка на те, чи є матриці однакових форм.
|
||||
if (a[0].length != b[0].length || a.length != b.length) {
|
||||
System.out.println("Матриці А і В мають різні форми.");
|
||||
} else {
|
||||
int[][] c = new int[a.length][a[0].length];
|
||||
float sum = 0;
|
||||
|
||||
System.out.println("\nМатриця С: ");
|
||||
for (int i = 0; i < a.length; i++) {
|
||||
for (int j = 0; j < a[i].length; j++) {
|
||||
|
||||
c[i][j] = (byte) a[i][j] ^ (byte) b[i][j];
|
||||
sum += c[i][j];
|
||||
System.out.printf("%-4d", c[i][j]);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
float average = sum / (c.length * c[0].length);
|
||||
System.out.printf("\nСереднє значення матриці С: %.3f", average);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
@@ -1,54 +0,0 @@
|
||||
import java.util.Arrays;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
StringBuffer text = new StringBuffer(scanner.nextLine());
|
||||
String str_text = text.toString();
|
||||
// Заміна ? й ! на .
|
||||
str_text = str_text.replaceAll("[?!]", ".");
|
||||
// Очищення від спеціальних символів.
|
||||
str_text = str_text.replaceAll("\"", "");
|
||||
str_text = str_text.replaceAll("-", "");
|
||||
str_text = str_text.replaceAll("[,':;^*&%$#@]", "");
|
||||
// Створення масиву з речень.
|
||||
String[] spl_text = str_text.split("\\.");
|
||||
|
||||
// Перевірка на кількість речень.
|
||||
if (spl_text.length == 0 || spl_text.length == 1) {
|
||||
System.out.println("Не вдалося виконати дію з рядками (було введено одне речення або взагалі нічого)");
|
||||
return;
|
||||
}
|
||||
|
||||
System.out.println("Слова першого речення, яких немає у жодному з наступних:");
|
||||
for (String st : spl_text[0].split(" ")) {
|
||||
int index = 0;
|
||||
for (int i = 1; i < spl_text.length; i++) {
|
||||
// Усунення кейсу з регістром, усунення пробілів.
|
||||
if (Arrays.asList(spl_text[i].toLowerCase().trim().split(" ")).contains(st.trim().toLowerCase())) {
|
||||
index = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Перевірка на те, чи було дане слово хоча б в одному реченні.
|
||||
if (index == 0) {
|
||||
System.out.println(st.trim().toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* [Input]
|
||||
"У молодості я взяв собі за правило не пити ні краплі спиртного до обіду. Тепер, коли я вже немолодий, я тримаюся правила не пити ні краплі спиртного до сніданку". - Вінстон Черчилль
|
||||
[Output]
|
||||
у
|
||||
молодості
|
||||
взяв
|
||||
собі
|
||||
за
|
||||
правило
|
||||
обіду
|
||||
*/
|
||||
Binary file not shown.
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,40 +0,0 @@
|
||||
package lab4;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Створення об'єктів класу Student.
|
||||
Student First = new Student("Михайло", "Гордун", 21, "ІПСА", true);
|
||||
Student Second = new Student("Дмитро", "Шарій", 19, "ТЕФ", false);
|
||||
Student Third = new Student("Аліна", "Шарій", 18, "ЕФ", false);
|
||||
Student Fourth = new Student("Назар", "Лоленко", 17, "ФІОТ", true);
|
||||
Student Fifth = new Student("Олександра", "Зеленська", 18, "ФМВ", true);
|
||||
|
||||
// Створення масиву об'єктів класу Student.
|
||||
Student[] ObjArray = new Student[] {First, Second, Third, Fourth, Fifth};
|
||||
|
||||
// Сортування по алфавіту (прізвище ім'я).
|
||||
Arrays.sort(ObjArray, new Sorting.SortByAlphabet());
|
||||
System.out.println("\nСортування за алфавітом (зростання):");
|
||||
for (Student Student : ObjArray) {
|
||||
System.out.println(Student.lastName + " " + Student.firstName);
|
||||
}
|
||||
|
||||
/* Сортування по віці (спадання).
|
||||
Масив сортує масив по зростанню, але в циклі ітерація
|
||||
проходить навпаки, тим самим виводячи елементи з кінця
|
||||
до початку.
|
||||
*/
|
||||
Arrays.sort(ObjArray, new Sorting.SortByAge());
|
||||
System.out.println("\nСортування за віком (спадання):");
|
||||
for (int i = ObjArray.length-1; i >= 0; i--) {
|
||||
System.out.print(ObjArray[i].lastName + " ");
|
||||
System.out.print(ObjArray[i].firstName);
|
||||
System.out.println(", вік: " + ObjArray[i].age);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
package lab4;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class Sorting {
|
||||
|
||||
// Непорушний клас, створений на основі абстратного класу Comparator.
|
||||
public static class SortByAlphabet implements Comparator<Student> {
|
||||
|
||||
/* Реалізація методу compare().
|
||||
Метод compare(Object o1, Object 02) є одним із абстрактних методів
|
||||
класу Comparator. Нам потрібно або зробити наш клас абстактним, або
|
||||
реалізувати даний метод. Якщо ж оголосити клас SortByAlphabet
|
||||
абстрактним, ми не зможемо створити на основі його об'єкт, тому
|
||||
вибір очевидний - реалізація методу.
|
||||
*/
|
||||
@Override
|
||||
public int compare(Student st1, Student st2) {
|
||||
/* Якщо в нас буде 2 однакових прізвища на порівняння, нам потрібно
|
||||
порівнювати імена аби сортування по алфавіту було правильним.
|
||||
*/
|
||||
if (st1.lastName.compareTo(st2.lastName) == 0) {
|
||||
return st1.firstName.compareTo(st2.firstName);
|
||||
} else {
|
||||
return st1.lastName.compareTo(st2.lastName);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Непорушний клас, створений на основі абстратного класу Comparator.
|
||||
public static class SortByAge implements Comparator<Student> {
|
||||
|
||||
// Аналогічно тут, реалізуємо метод compare().
|
||||
@Override
|
||||
public int compare(Student st1, Student st2) {
|
||||
/* Метод compareTo() приймає лише дані типу String, тому
|
||||
ми перетворюємо вік з int в String. Звісно ж це може привести
|
||||
до неточності. Числа будуть порівнюватись спочатку по перших
|
||||
цифрах, потім по других і тд. Якщо в нас буде, наприклад вік
|
||||
107 і 18 на порівнянні, прогрма порахує, що 18 > 107 по
|
||||
порядку. Тут цим знехтується, адже я сумніваюсь що існують
|
||||
студенти яким >100 років.
|
||||
*/
|
||||
String age1 = Integer.toString(st1.age);
|
||||
String age2 = Integer.toString(st2.age);
|
||||
return age1.compareTo(age2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package lab4;
|
||||
|
||||
public class Student {
|
||||
|
||||
// Створення полів класу.
|
||||
public String firstName;
|
||||
public String lastName;
|
||||
public int age;
|
||||
private String faculty;
|
||||
private boolean hasStipend;
|
||||
|
||||
// Конструктор класу.
|
||||
public Student(String fn, String ln, int age, String fac, boolean wealth) {
|
||||
setValues(fn, ln, age, fac, wealth);
|
||||
getValues();
|
||||
}
|
||||
|
||||
/* Метод, який нічого не повертає.
|
||||
Визначає поля класу.
|
||||
*/
|
||||
private void setValues(String fn, String ln, int age, String fac, boolean wealth) {
|
||||
this.firstName = fn;
|
||||
this.lastName = ln;
|
||||
this.age = age;
|
||||
this.faculty = fac;
|
||||
this.hasStipend = wealth;
|
||||
}
|
||||
|
||||
/* Метод, який нічого не повертає.
|
||||
Виводить значення полів.
|
||||
*/
|
||||
private void getValues() {
|
||||
System.out.println("Прізвище та ім'я: " + this.lastName + " " + this.firstName);
|
||||
System.out.println("Вік: " + this.age);
|
||||
System.out.println("Факультет: " + this.faculty);
|
||||
System.out.print("Наявність стипендії: ");
|
||||
if (this.hasStipend)
|
||||
System.out.println("є");
|
||||
else
|
||||
System.out.println("немає");
|
||||
System.out.println("~".repeat(40));
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
public record Letter(char value) {
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String inputText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tempor dictum velit, vitae sollicitudin mauris facilisis et. Praesent mi odio, pretium eget sem ac, ultricies eleifend elit. Maecenas vulputate efficitur risus, a ornare lorem sollicitudin vitae. Pellentesque rhoncus posuere risus eu placerat. Maecenas luctus felis ac interdum sodales. Quisque nec est lectus.";
|
||||
|
||||
// Створений Text об'єкт
|
||||
Text text = new Text(inputText);
|
||||
|
||||
// Пошук у першому реченні слів, яких немає в наступних реченнях
|
||||
List<String> result = findUniqueWords(text);
|
||||
System.out.println("Unique words in the first sentence: " + result);
|
||||
}
|
||||
|
||||
public static List<String> findUniqueWords(Text text) {
|
||||
if (text.getSentences().isEmpty()) {
|
||||
throw new IllegalArgumentException("Text must contain at least one sentence.");
|
||||
}
|
||||
|
||||
Sentence firstSentence = text.getSentences().get(0);
|
||||
List<String> wordsInFirstSentence = firstSentence.getStringWords();
|
||||
|
||||
Set<String> uniqueWords = new HashSet<>(wordsInFirstSentence);
|
||||
|
||||
for (int i = 1; i < text.getSentences().size(); i++) {
|
||||
Sentence sentence = text.getSentences().get(i);
|
||||
List<String> wordsInCurrentSentence = sentence.getStringWords();
|
||||
|
||||
wordsInCurrentSentence.forEach(uniqueWords::remove);
|
||||
}
|
||||
|
||||
return new ArrayList<>(uniqueWords);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
public record Punctuation(char value) {
|
||||
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Sentence {
|
||||
private final List<Object> wordsAndPunctuations;
|
||||
|
||||
public Sentence(String stringSentence) {
|
||||
List<Object> wordsAndPunctuations = new ArrayList<>();
|
||||
StringBuilder word = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < stringSentence.length(); i++) {
|
||||
char ch = stringSentence.charAt(i);
|
||||
|
||||
if (Character.isLetterOrDigit(ch)) {
|
||||
word.append(ch);
|
||||
} else if (Character.isWhitespace(ch)) {
|
||||
if (word.length() > 0) {
|
||||
wordsAndPunctuations.add(new Word(word.toString()));
|
||||
word.setLength(0);
|
||||
}
|
||||
} else if (String.valueOf(ch).matches(".*\\p{Punct}.*")) {
|
||||
if (word.length() > 0) {
|
||||
wordsAndPunctuations.add(new Word(word.toString()));
|
||||
word.setLength(0);
|
||||
}
|
||||
wordsAndPunctuations.add(new Punctuation(ch));
|
||||
}
|
||||
}
|
||||
|
||||
if (word.length() > 0) {
|
||||
wordsAndPunctuations.add(new Word(word.toString()));
|
||||
}
|
||||
|
||||
this.wordsAndPunctuations = wordsAndPunctuations;
|
||||
}
|
||||
|
||||
public List<Object> getWordsAndPunctuations() {
|
||||
return wordsAndPunctuations;
|
||||
}
|
||||
|
||||
|
||||
public List<Word> extractWords() {
|
||||
List<Word> words = new ArrayList<>();
|
||||
for (Object element : getWordsAndPunctuations()) {
|
||||
if (element instanceof Word) {
|
||||
words.add((Word) element);
|
||||
}
|
||||
}
|
||||
return words;
|
||||
}
|
||||
|
||||
public List<String> getStringWords() {
|
||||
List<String> wordStrings = new ArrayList<>();
|
||||
for (Word word : extractWords()) {
|
||||
wordStrings.add(word.getStringWord());
|
||||
}
|
||||
return wordStrings;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Text {
|
||||
private final List<Sentence> sentences;
|
||||
|
||||
public Text(String stringText) {
|
||||
this.sentences = new ArrayList<>();
|
||||
String[] splitText = stringText.split("(?<=[!.?])\\s*");
|
||||
for (String sentence : splitText) {
|
||||
getSentences().add(new Sentence(sentence));
|
||||
}
|
||||
}
|
||||
|
||||
public List<Sentence> getSentences() {
|
||||
return sentences;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package lab5;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Word {
|
||||
private final String stringWord;
|
||||
private final List<Letter> letters;
|
||||
|
||||
public Word(String stringWord) {
|
||||
List<Letter> letters = new ArrayList<>();
|
||||
char[] chars = stringWord.toCharArray();
|
||||
for (char c : chars) {
|
||||
letters.add(new Letter(c));
|
||||
}
|
||||
this.letters = letters;
|
||||
this.stringWord = stringWord;
|
||||
}
|
||||
|
||||
public List<Letter> getLetters() {
|
||||
return letters;
|
||||
}
|
||||
|
||||
public String getStringWord() {
|
||||
return stringWord;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Bmw extends Car {
|
||||
|
||||
public String mark = "BMW";
|
||||
|
||||
public Bmw(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: BMW");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class Car {
|
||||
|
||||
protected String _model;
|
||||
protected float speed;
|
||||
protected int price;
|
||||
protected int year;
|
||||
protected float fuel;
|
||||
protected float engineCapacity;
|
||||
protected String country;
|
||||
|
||||
public Car(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
setValues(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
printValues();
|
||||
}
|
||||
|
||||
public void setValues(String _m, float s, int p, int y, float f, float e, String c) {
|
||||
this._model = _m;
|
||||
this.speed = s;
|
||||
this.price = p;
|
||||
this.year = y;
|
||||
this.fuel = f;
|
||||
this.engineCapacity = e;
|
||||
this.country = c;
|
||||
}
|
||||
|
||||
public void printValues() {
|
||||
System.out.println("Модель: " + _model + " " + year);
|
||||
System.out.println("Максимальна швидкість: " + speed + "км/год");
|
||||
System.out.println("Ціна: " + price + "$");
|
||||
System.out.println("Витрати палива: " + fuel + "л/100км");
|
||||
System.out.println("Об'єм двигуна: " + engineCapacity);
|
||||
System.out.println("Країна-виробник: " + country);
|
||||
System.out.println("~".repeat(40));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Ford extends Car {
|
||||
|
||||
public String mark = "Ford";
|
||||
|
||||
public Ford(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Ford");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Lexus extends Car {
|
||||
|
||||
public String mark = "Lexus";
|
||||
|
||||
public Lexus(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Lexus\nМатеринська компанія: Toyota");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
/*
|
||||
Номер заліковї книжки - 2518.
|
||||
|
||||
Завдання:
|
||||
9)Визначити ієрархію легкових автомобілів. Створити таксопарк.
|
||||
Порахувати вартість автопарку. Провести сортування автомобілів
|
||||
парку за витратами палива. Знайти автомобіль у компанії, що
|
||||
відповідає заданому діапазону швидкості автомобіля.
|
||||
*/
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(" ".repeat(15) + "Таксопарк" + " ".repeat(15));
|
||||
System.out.println("~".repeat(40));
|
||||
|
||||
Volkswagen Car1 = new Volkswagen("Golf 4", 224, 5000, 2001, 6.8f, 1.6f, "Німеччина");
|
||||
Volkswagen Car2 = new Volkswagen("Passat", 240, 15000, 2007, 7.0f, 2.0f, "Німеччина");
|
||||
Toyota Car3 = new Toyota("Prius", 231, 12500, 2014, 4.3f, 1.8f, "Японія");
|
||||
Peguot Car4 = new Peguot("308", 220, 12000, 2007, 6.1f, 1.6f, "Франція");
|
||||
Lexus Car5 = new Lexus("LS", 250, 80000, 2022, 10.9f, 3.5f, "Японія");
|
||||
Skoda Car6 = new Skoda("Octavia", 220, 25000, 2022, 6.2f, 1.5f, "Чехія");
|
||||
Ford Car7 = new Ford("Focus", 242, 7800, 2014, 6.9f, 2.0f, "США");
|
||||
Bmw Car8 = new Bmw("5-Series", 250, 50000, 2018, 8.3f, 3.0f, "Німеччина");
|
||||
Car[] CarList = new Car[] {Car1, Car2, Car3, Car4, Car5, Car6, Car7, Car8};
|
||||
/*
|
||||
Використовується лямбда функція, щоб описати компаратор в Arrays.sort().
|
||||
*/
|
||||
java.util.Arrays.sort(CarList, (a, b) -> Float.compare(a.fuel, b.fuel));
|
||||
|
||||
System.out.println("Сортування автомобілів за витратами палива:");
|
||||
for (Car Car : CarList) {
|
||||
System.out.println(Car._model + ": " + Car.fuel + "л/100км");
|
||||
}
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.print("\nВведіть діапазон швидкості автомобіля:\nвід ");
|
||||
float speed_down = scanner.nextFloat();
|
||||
System.out.print("до ");
|
||||
float speed_up = scanner.nextFloat();
|
||||
System.out.println("Автомобілі із заданою швидкістю:");
|
||||
for (Car Car : CarList) {
|
||||
if ((Car.speed >= speed_down) && (Car.speed <= speed_up)) {
|
||||
|
||||
System.out.println(Car._model + ": " + Car.speed + " км/год");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Peguot extends Car {
|
||||
|
||||
public String mark = "Peguot";
|
||||
|
||||
public Peguot(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Peguot");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Skoda extends Car {
|
||||
|
||||
public String mark = "Skoda";
|
||||
|
||||
public Skoda(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Skoda\nМатеринська компанія: Volkswagen");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Toyota extends Car {
|
||||
|
||||
public String mark = "Toyota";
|
||||
|
||||
public Toyota(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Toyota");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package lab6;
|
||||
|
||||
public class Volkswagen extends Car {
|
||||
|
||||
public String mark = "Volkswagen";
|
||||
|
||||
public Volkswagen(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) {
|
||||
super(_model, speed, price, year, fuel, engineCapacity, country);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printValues() {
|
||||
System.out.println("Марка: Volkswagen");
|
||||
super.printValues();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,42 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
public class Car {
|
||||
|
||||
protected String mark;
|
||||
protected String model;
|
||||
protected int price;
|
||||
protected int year;
|
||||
protected float fuel;
|
||||
|
||||
public Car(String mark, String model, int price, int year, float fuel) {
|
||||
setValues(mark, model, price, year, fuel);
|
||||
}
|
||||
|
||||
// Цей конструктор був створений окремо для класу ElectricCar
|
||||
public Car(String mark, String model, int price, int year) {
|
||||
setValues(mark, model, price, year);
|
||||
}
|
||||
|
||||
public void setValues(String mark, String model, int price, int year, float fuel) {
|
||||
this.mark = mark;
|
||||
this.model = model;
|
||||
this.price = price;
|
||||
this.year = year;
|
||||
this.fuel = fuel;
|
||||
}
|
||||
|
||||
public void setValues(String mark, String model, int price, int year) {
|
||||
this.mark = mark;
|
||||
this.model = model;
|
||||
this.price = price;
|
||||
this.year = year;
|
||||
}
|
||||
|
||||
public void printValues() {
|
||||
System.out.println("Марка: " + mark);
|
||||
System.out.println("Модель: " + model + " " + year);
|
||||
System.out.println("Ціна: " + price + "$");
|
||||
System.out.println("Витрати палива: " + fuel + "л/100км");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class CarCollection<T extends Car> implements List<T> {
|
||||
private final LinkedList<T> carList;
|
||||
|
||||
public CarCollection() {
|
||||
carList = new LinkedList<>();
|
||||
}
|
||||
|
||||
public CarCollection(T car) {
|
||||
carList = new LinkedList<>();
|
||||
carList.add(car);
|
||||
}
|
||||
|
||||
public CarCollection(Collection<? extends T> c) {
|
||||
carList = new LinkedList<>(c);
|
||||
}
|
||||
|
||||
// Реалізація методів List
|
||||
@Override
|
||||
public int size() {
|
||||
return carList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return carList.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(Object o) {
|
||||
return carList.contains(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<T> iterator() {
|
||||
return carList.iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] toArray() {
|
||||
return carList.toArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T1> T1[] toArray(T1[] a) {
|
||||
return carList.toArray(a);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean add(T t) {
|
||||
return carList.add(t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove(Object o) {
|
||||
return carList.remove(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsAll(Collection<?> c) {
|
||||
return carList.containsAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addAll(Collection<? extends T> c) {
|
||||
return carList.addAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addAll(int index, Collection<? extends T> c) {
|
||||
return carList.addAll(index, c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeAll(Collection<?> c) {
|
||||
return carList.removeAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean retainAll(Collection<?> c) {
|
||||
return carList.retainAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
carList.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public T get(int index) {
|
||||
return carList.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T set(int index, T element) {
|
||||
return carList.set(index, element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(int index, T element) {
|
||||
carList.add(index, element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T remove(int index) {
|
||||
return carList.remove(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int indexOf(Object o) {
|
||||
return carList.indexOf(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int lastIndexOf(Object o) {
|
||||
return carList.lastIndexOf(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListIterator<T> listIterator() {
|
||||
return carList.listIterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListIterator<T> listIterator(int index) {
|
||||
return carList.listIterator(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> subList(int fromIndex, int toIndex) {
|
||||
return carList.subList(fromIndex, toIndex);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
public class CombatsCar extends Car {
|
||||
|
||||
private final int crew;
|
||||
private final float weight;
|
||||
private final String country;
|
||||
|
||||
public CombatsCar(String mark, String model, int price, int year, float fuel, int crew, float weight, String country) {
|
||||
super(mark, model, price, year, fuel);
|
||||
this.crew = crew;
|
||||
this.weight = weight;
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void printValues() {
|
||||
super.printValues();
|
||||
System.out.println("--- Особливості бойової машини ---");
|
||||
System.out.println("Екіпаж: " + crew + " людей");
|
||||
System.out.println("Бойова маса: " + weight + "т");
|
||||
System.out.println("Країна-виробник: " + country);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
public class ElectricCar extends Car {
|
||||
|
||||
private final float electricity;
|
||||
private final float chargingSpeed;
|
||||
|
||||
public ElectricCar(String mark, String model, int price, int year, float electricity, int chargingSpeed) {
|
||||
super(mark, model, price, year);
|
||||
this.electricity = electricity;
|
||||
this.chargingSpeed = chargingSpeed;
|
||||
}
|
||||
|
||||
public float getElectricity() {
|
||||
return electricity;
|
||||
}
|
||||
|
||||
public void printValues() {
|
||||
super.printValues();
|
||||
System.out.println("-Особливості електрокару-");
|
||||
System.out.println("Споживання електроенергії: " + electricity + " кВт·год/100км");
|
||||
System.out.println("Швидкість зарядки (з 0% до 100%): " + chargingSpeed + " хв");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Використання пустого конструктора CarCollection
|
||||
CarCollection<SportsCar> sportsCars = new CarCollection<>();
|
||||
sportsCars.add(new SportsCar("Ferrari", "458 Italia", 230000, 2015, 9.8f, 562, 202, 4.5f));
|
||||
sportsCars.add(new SportsCar("Lamborghini", "Huracan", 260000, 2020, 9.5f, 640, 211, 5.2f));
|
||||
sportsCars.add(new SportsCar("Porsche", "911", 150000, 2018, 14.3f, 450, 191, 3.0f));
|
||||
sportsCars.add(new SportsCar("McLaren", "570S", 200000, 2017, 11.2f, 562, 204, 3.8f));
|
||||
sportsCars.add(new SportsCar("Aston Martin", "Vantage", 150000, 2021, 12.3f, 503, 195, 4.0f));
|
||||
|
||||
// Сортування спорткарів за ціною
|
||||
System.out.println("~~~~~ Відсортовані спорткари за ціною ~~~~~");
|
||||
sportsCars.sort(Comparator.comparingInt(SportsCar::getPrice));
|
||||
|
||||
for (int i = sportsCars.size() - 1; i >= 0; i--) {
|
||||
sportsCars.get(i).printValues();
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
// Використання конструктора CarCollection з передаванням в його лише один об'єкт
|
||||
CarCollection<CombatsCar> combatsCars = new CarCollection<>(new CombatsCar("Humvee", "M1114", 220000, 1995, 6.5f, 4, 5.5f, "США"));
|
||||
combatsCars.add(new CombatsCar("Puma", "IFV", 3500000, 2010, 10.7f, 6, 31f, "Німеччина"));
|
||||
combatsCars.add(new CombatsCar("Warrior", "IFV", 4500000, 1988, 12.4f, 3, 29f, "Великобританія"));
|
||||
combatsCars.add(new CombatsCar("ZBD", "05", 1200000, 2011, 9.4f, 4, 25f, "Китай"));
|
||||
combatsCars.add(new CombatsCar("VBCI", "IFV", 5000000, 2008, 10.7f, 8, 32f, "Франція"));
|
||||
|
||||
// Пошук бойової машини за країною-виробником
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.print("Введіть країну-виробницю бойової машини: ");
|
||||
String userCountry = scanner.nextLine();
|
||||
|
||||
System.out.println("Результати пошуку:\n");
|
||||
for (CombatsCar car : combatsCars) {
|
||||
if (car.getCountry().equals(userCountry)) {
|
||||
car.printValues();
|
||||
}
|
||||
}
|
||||
|
||||
ArrayList<ElectricCar> electricCarsList = new ArrayList<>();
|
||||
electricCarsList.add(new ElectricCar("Tesla", "Model S", 80000, 2022, 21.5f, 45));
|
||||
electricCarsList.add(new ElectricCar("Chevrolet", "Bolt", 35000, 2021, 28.0f, 60));
|
||||
electricCarsList.add(new ElectricCar("Nissan", "Leaf", 32000, 2021, 24.0f, 40));
|
||||
electricCarsList.add(new ElectricCar("BMW", "i3", 45000, 2021, 19.5f, 30));
|
||||
electricCarsList.add(new ElectricCar("Hyundai", "Kona", 42000, 2022, 22.0f, 50));
|
||||
|
||||
// Використання конструктора CarCollection з передаванням в його колекцію об'єктів
|
||||
CarCollection<ElectricCar> electricCars = new CarCollection<>(electricCarsList);
|
||||
|
||||
// Пошук автомобіля по діапазону споживання електроенергії
|
||||
System.out.println("\nВведіть діапазон споживання електроенергії (кВт·год/100км):");
|
||||
System.out.print("від ");
|
||||
float electricityLowerLimit = scanner.nextFloat();
|
||||
System.out.print("до ");
|
||||
float electricityUpperLimit = scanner.nextFloat();
|
||||
|
||||
System.out.println("Результати пошуку:\n");
|
||||
for (ElectricCar car : electricCars) {
|
||||
if (car.getElectricity() < electricityUpperLimit & car.getElectricity() > electricityLowerLimit) {
|
||||
car.printValues();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package lab7;
|
||||
|
||||
public class SportsCar extends Car {
|
||||
|
||||
private final int power;
|
||||
private final float speed;
|
||||
private final float engineCapacity;
|
||||
|
||||
public SportsCar(String mark, String model, int price, int year, float fuel, int power, float speed, float engineCapacity) {
|
||||
super(mark, model, price, year, fuel);
|
||||
this.power = power;
|
||||
this.speed = speed;
|
||||
this.engineCapacity = engineCapacity;
|
||||
}
|
||||
|
||||
public int getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public void printValues() {
|
||||
super.printValues();
|
||||
System.out.println("-Особливості спорткару-");
|
||||
System.out.println("Потужість: " + power + " кінських сил");
|
||||
System.out.println("Максимальна швидкість: " + speed + " км/год");
|
||||
System.out.println("Об'єм двигуна: " + engineCapacity + "л");
|
||||
}
|
||||
|
||||
}
|
||||
140
src/Lab1/Lab1.java
Normal file
140
src/Lab1/Lab1.java
Normal file
@@ -0,0 +1,140 @@
|
||||
package Lab1;
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Lab1 {
|
||||
public static void main(String[] args) {
|
||||
int C2, C3, C5, C7; // creating variables
|
||||
int numBook = 2401; // default value of scorebook
|
||||
|
||||
Scanner sc = new Scanner(System.in); // scanner creating for inputing values from keyboard
|
||||
System.out.println("By default number of scorebook is 2401. \nEnter to skip or input new value: ");
|
||||
String input = sc.nextLine();
|
||||
|
||||
if (!input.equals("")) { // try-catch for checking correct inputing of value
|
||||
try {
|
||||
numBook = Math.abs(Integer.parseInt(input)); // scorebook can be only unsigned
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Invalid input. Using default value 2401"); // printing that will be used default value
|
||||
}
|
||||
}
|
||||
|
||||
String[] operations1 = {"+", "-"};//
|
||||
String[] operations2 = {"*", "/", "%", "+", "-"}; // String array for choosing operations
|
||||
String[] operations3 = {"byte", "short", "int", "long", "char", "float", "double"}; //
|
||||
// determining variables
|
||||
C2 = numBook % 2;
|
||||
C3 = numBook % 3;
|
||||
C5 = numBook % 5;
|
||||
C7 = numBook % 7;
|
||||
|
||||
String O1 = operations1[C2];
|
||||
int C = C3;
|
||||
String O2 = operations2[C5];
|
||||
String O3 = operations3[C7];
|
||||
|
||||
System.out.println("C2 is: " + C2 + ", operation is: " + O1); //
|
||||
System.out.println("C3 is: " + C); // printing parameters that user got
|
||||
System.out.println("C5 is: " + C5 + ", operation is: " + O2); //
|
||||
System.out.println("C7 is: " + C7 + ", Type of indexes i and j is: " + O3); //
|
||||
|
||||
Number i = 0; // creating objects i j of (abstract)superclass Number
|
||||
Number j = 0; //
|
||||
|
||||
|
||||
System.out.println("\nEnter a value for i and j in the " + O3 + " type: ");
|
||||
|
||||
switch (O3) { // Choosing type of i and j by C7
|
||||
case "byte" -> {
|
||||
try {
|
||||
i = sc.nextByte();
|
||||
j = sc.nextByte();
|
||||
} catch (InputMismatchException e) {
|
||||
System.out.println("Invalid input. Please enter a valid byte value.");
|
||||
sc.nextLine();
|
||||
}
|
||||
}
|
||||
case "short" -> {
|
||||
i = sc.nextShort();
|
||||
j = sc.nextShort();
|
||||
}
|
||||
case "int" -> {
|
||||
i = sc.nextInt();
|
||||
j = sc.nextInt();
|
||||
}
|
||||
case "long" -> {
|
||||
i = sc.nextLong();
|
||||
j = sc.nextLong();
|
||||
}
|
||||
case "char" -> {
|
||||
System.out.println("Read only first character!");
|
||||
i = (int) sc.next().charAt(0);
|
||||
j = (int) sc.next().charAt(0);
|
||||
}
|
||||
case "float" -> {
|
||||
i = sc.nextFloat();
|
||||
j = sc.nextFloat();
|
||||
}
|
||||
case "double" -> {
|
||||
i = sc.nextDouble();
|
||||
j = sc.nextDouble();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
System.out.println("The value of the created variables is: " + i + " and " + j);
|
||||
|
||||
|
||||
|
||||
class Sum { // creating class Sum
|
||||
int n, m;
|
||||
double i, j;
|
||||
|
||||
public Sum(double i, double j, int n, int m) { // Constructor to initialize all variables
|
||||
this.i = i;
|
||||
this.j = j;
|
||||
this.n = n;
|
||||
this.m = m;
|
||||
}
|
||||
|
||||
public void calc() { // create method for our class
|
||||
double sum = 0, result = 0, result2 = 0;
|
||||
if ((O1.equals("-") && i + n >= C && i <= C) || (C == 0 && i == 0)) { // exclude situations
|
||||
System.out.println("dividing by zero!"); // with dividing by 0
|
||||
} else if (i > n || j > m) {
|
||||
System.out.println("i or j greater than n or m");
|
||||
} else {
|
||||
for (double b = i; b <= n; b++) {
|
||||
for (double a = j; a <= m; a++) {
|
||||
switch (O2) {
|
||||
case "+" -> result = b + a;
|
||||
case "-" -> result = b - a;
|
||||
case "*" -> result = b * a;
|
||||
case "/" -> result = b / a;
|
||||
case "%" -> result = b % a;
|
||||
}
|
||||
switch (O1) {
|
||||
case "+" -> result2 = b + C;
|
||||
case "-" -> result2 = b - C;
|
||||
}
|
||||
sum += result / result2;
|
||||
}
|
||||
}
|
||||
System.out.println("Sum is: " + sum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.print("Enter value for n and m: \n");
|
||||
|
||||
int n = sc.nextInt();
|
||||
int m = sc.nextInt();
|
||||
|
||||
Sum sum = new Sum(i.doubleValue(), j.doubleValue(), n, m); // creating new instance of Sum class
|
||||
// .doubleValue() converting our variables to double
|
||||
sum.calc();
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
153
src/Lab2/Lab2.java
Normal file
153
src/Lab2/Lab2.java
Normal file
@@ -0,0 +1,153 @@
|
||||
package Lab2;
|
||||
|
||||
import java.util.Scanner;
|
||||
import java.util.Random;
|
||||
|
||||
public class Lab2 {
|
||||
public static void main(String[] args) {
|
||||
final int C5, C7, C11, NumBook;
|
||||
NumBook = 2401;
|
||||
C5 = NumBook % 5;
|
||||
C7 = NumBook % 7;
|
||||
C11 = NumBook % 11;
|
||||
System.out.println("-----------------------------------------------------");
|
||||
System.out.println("C5 is: " + C5 + " - act with martix is C=Bт");
|
||||
System.out.println("C7 is: " + C7 + " - type of elements is double");
|
||||
System.out.println("C11 is: " + C11 + " - calculate the sum of the largest elements\n" +
|
||||
"of each row of the matrix");
|
||||
System.out.println("-----------------------------------------------------");
|
||||
int Mside = 0;
|
||||
int Nside = 0;
|
||||
int Choose;
|
||||
double MaxSum = 0;
|
||||
Random rand = new Random();
|
||||
Scanner sc = new Scanner(System.in);
|
||||
|
||||
while (true) {
|
||||
try {
|
||||
System.out.print("Enter random or handle input(1 or 0): ");
|
||||
Choose = Math.abs(Integer.parseInt(sc.nextLine()));
|
||||
if (Choose == 1 || Choose == 0) {
|
||||
break;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Invalid input. Please enter an integer.");
|
||||
}
|
||||
|
||||
}
|
||||
while (true) {
|
||||
try {
|
||||
System.out.print("Enter number of rows: ");
|
||||
Mside = Math.abs(Integer.parseInt(sc.nextLine()));
|
||||
if (Mside <= 0) {
|
||||
System.out.println("Invalid input. Number of rows must be greater than 0");
|
||||
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Invalid input. Please enter an integer.");
|
||||
}
|
||||
}
|
||||
|
||||
while (true) {
|
||||
try {
|
||||
System.out.print("Enter number of columns: ");
|
||||
Nside = Math.abs(Integer.parseInt(sc.nextLine()));
|
||||
if (Nside <= 0) {
|
||||
System.out.println("Invalid input. Number of columns must be greater than 0");
|
||||
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Invalid input. Please enter an integer.");
|
||||
}
|
||||
}
|
||||
final int lenghtMaxElements = 5;
|
||||
double[][] CArray = new double[Mside][Nside];
|
||||
double[][] TransposedArray = new double[Nside][Mside];
|
||||
double[][] MaxElements = new double[Nside][lenghtMaxElements];
|
||||
if (Choose == 1) {
|
||||
for (int i = 0; i < Mside; i++) {
|
||||
for (int j = 0; j < Nside; j++) {
|
||||
CArray[i][j] = rand.nextDouble(-100, 100);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (Choose == 0) {
|
||||
for (int i = 0; i < Mside; i++) {
|
||||
for (int j = 0; j < Nside; j++) {
|
||||
while (true) {
|
||||
try {
|
||||
System.out.printf("Enter the element at position (%d,%d): ", i + 1, j + 1);
|
||||
CArray[i][j] = Double.parseDouble(sc.nextLine());
|
||||
break;
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Invalid input. Please enter a valid number.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < Mside; i++) {
|
||||
for (int j = 0; j < Nside; j++) {
|
||||
System.out.printf("%8.2f", CArray[i][j]);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
for (int i = 0; i < Nside; i++) {
|
||||
for (int j = 0; j < Mside; j++) {
|
||||
TransposedArray[i][j] = CArray[j][i];
|
||||
}
|
||||
}
|
||||
System.out.println("Transposed array is:");
|
||||
int row, cols;
|
||||
for (row = 0; row < Nside; row++) {
|
||||
for (cols = 0; cols < Mside; cols++) {
|
||||
System.out.printf("%8.2f", TransposedArray[row][cols]);
|
||||
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
for (int i = 0; i < Nside; i++) {
|
||||
MaxElements[i][0] = TransposedArray[i][0];
|
||||
|
||||
for (int j = 1; j < Mside; j++) {
|
||||
MaxElements[i][1] = i;
|
||||
if (TransposedArray[i][j] > MaxElements[i][0]) {
|
||||
MaxElements[i][0] = TransposedArray[i][j];
|
||||
MaxElements[i][2] = j;
|
||||
|
||||
|
||||
} else if (TransposedArray[i][j] == MaxElements[i][0]) {
|
||||
MaxElements[i][3] = MaxElements[i][0];
|
||||
MaxElements[i][4] = 1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//System.out.println(MaxElements[i][0] +" "+ MaxElements[i][1] +" "+ MaxElements[i][2] + " " + MaxElements[i][3] + " " + MaxElements[i][4]);
|
||||
//code i used for debug
|
||||
}
|
||||
System.out.println("Max elements for each row:");
|
||||
if (Mside == 1) {
|
||||
System.out.println("I can`t find max element for mx1 matrix");
|
||||
|
||||
} else {
|
||||
for (int i = 0; i < Nside; i++) {
|
||||
if (MaxElements[i][0] == MaxElements[i][3] && MaxElements[i][4] == 1) {
|
||||
System.out.printf("In row %1.0f does not exist a max element\n", MaxElements[i][1] + 1);
|
||||
} else {
|
||||
System.out.printf("%8.2f is max value and his coordinate: (%1.0f, %1.0f)\n", MaxElements[i][0], MaxElements[i][1] + 1, MaxElements[i][2] + 1);
|
||||
MaxSum += MaxElements[i][0];
|
||||
}
|
||||
}
|
||||
System.out.printf("Sum of elements with max values is: %.2f\n", MaxSum);
|
||||
}
|
||||
}
|
||||
}
|
||||
73
src/Lab3/Lab3.java
Normal file
73
src/Lab3/Lab3.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package Lab3;
|
||||
|
||||
import java.util.Scanner;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
public class Lab3 {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Введіть текст:");
|
||||
Scanner scan = new Scanner(System.in); // Створюємо об'єкт Scanner для зчитування введеного тексту з консолі
|
||||
String inputText = scan.nextLine(); // Зчитуємо введений текст користувача
|
||||
StringBuffer textBuffer = new StringBuffer(inputText); // Створюємо відподні об'єкти StringBuffer
|
||||
StringBuffer result = new StringBuffer();
|
||||
|
||||
while (!textBuffer.isEmpty()) { // Починаємо цикл, який виконується, доки об'єкт textBuffer не стане порожнім
|
||||
|
||||
int index1 = textBuffer.indexOf("."); // Знаходимо індекси для символів, які закінчують речення
|
||||
int index2 = textBuffer.indexOf("!");
|
||||
int index3 = textBuffer.indexOf("?");
|
||||
int index4 = textBuffer.indexOf("...");
|
||||
|
||||
int[] SplitIndexArray = {index1, index2, index3, index4};
|
||||
ArrayList<Integer> list = new ArrayList<>();
|
||||
|
||||
for (int j : SplitIndexArray) { // Перебираємо кожну позицію з масиву
|
||||
if (j >= 0) { // Якщо символ не стоїть перед реченням, додаємо його
|
||||
list.add(j);
|
||||
}
|
||||
}
|
||||
int min = Collections.min(list); // Знаходимо мінімальну позицію, щоб працювати з першим реченням
|
||||
String sentenceString = textBuffer.substring(0, min); // Виділяємо перше речення до знайденого розділового знаку
|
||||
StringBuffer sentence = new StringBuffer(sentenceString); // Створюємо об'єкт StringBuffer для речення з пробілом
|
||||
|
||||
if (sentenceString.contains(" ")) { // Перевіряємо, чи перше речення містить більше одного слова
|
||||
String firstword1;
|
||||
String secondword1 = textBuffer.substring(sentence.lastIndexOf(" ") + 1, sentence.length()); // Виділяємо друге слово з речення
|
||||
String secondword2;
|
||||
secondword2 = secondword1.substring(0, 1).toUpperCase() + secondword1.substring(1, secondword1.length()); // Першу літеру робимо великою, решту слова копіюємо
|
||||
StringBuffer secondword = new StringBuffer(secondword2);
|
||||
|
||||
if (sentence.charAt(sentence.indexOf(" ") - 1) == ',') { // Перевіряємо, чи перед першим словом є кома
|
||||
firstword1 = textBuffer.substring(0, sentence.indexOf(" ") - 1); // Виділяємо перше слово з речення
|
||||
secondword.append(","); // Додаємо кому до другого слова
|
||||
} else {
|
||||
firstword1 = textBuffer.substring(0, sentence.indexOf(" ")); // Виділяємо перше слово з речення
|
||||
}
|
||||
|
||||
String firstword2 = firstword1.substring(0, 1).toLowerCase() + firstword1.substring(1, firstword1.length()); // Перетворюємо першу літеру першого слова малою
|
||||
StringBuffer firstword = new StringBuffer(firstword2);
|
||||
|
||||
firstword.insert(0, " "); // Додаємо пробіл перед першим словом
|
||||
sentence.delete(0, sentence.indexOf(" ")); // Видаляємо перше слово з речення
|
||||
sentence.insert(0, secondword); // Додаємо друге слово на початок речення
|
||||
sentence.delete(sentence.lastIndexOf(" "), sentence.length()); // Видаляємо останнє слово з речення
|
||||
sentence.append(firstword); // Додаємо перше слово в кінець речення
|
||||
|
||||
|
||||
}
|
||||
if ((index1 == index4) && (index1 == min)) { // Перевіряємо випадок, коли речення закінчується на "..."
|
||||
sentence.append(textBuffer.substring(min, min + 3)); // Додаємо "..." до речення
|
||||
textBuffer.delete(0, min + 4); // видаляємо з textBuffer
|
||||
} else {
|
||||
sentence.append(textBuffer.substring(min, min + 1)); // Додаємо '.' до речення
|
||||
textBuffer.delete(0, min + 2); // видаляємо з textBuffer
|
||||
}
|
||||
|
||||
sentence.append(" "); // Додаємо пробіл
|
||||
result.append(sentence); // Додаємо речення до результату
|
||||
|
||||
}
|
||||
System.out.println(result);
|
||||
}
|
||||
}
|
||||
118
src/Lab4/Airplane.java
Normal file
118
src/Lab4/Airplane.java
Normal file
@@ -0,0 +1,118 @@
|
||||
package Lab4;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class Airplane {
|
||||
private int number; // Номер літака
|
||||
private String model; // Модель літака
|
||||
private String airline; // Компанія-власник
|
||||
private int capacity; // Ємність для пасажирів
|
||||
private double fuelCapacity; // Ємність палива
|
||||
private boolean isFlying; // Стан літака: летить/в ангарі
|
||||
|
||||
// Конструктор класа
|
||||
public Airplane(int number, String model, String airline, int capacity, double fuelCapacity) {
|
||||
this.number = number;
|
||||
this.model = model;
|
||||
this.airline = airline;
|
||||
this.capacity = capacity;
|
||||
this.fuelCapacity = fuelCapacity;
|
||||
this.isFlying = false;
|
||||
}
|
||||
|
||||
// Методи доступу, а саме геттери
|
||||
public int getNumber() {
|
||||
return number;
|
||||
}
|
||||
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public String getAirline() {
|
||||
return airline;
|
||||
}
|
||||
|
||||
public int getCapacity() {
|
||||
return capacity;
|
||||
}
|
||||
|
||||
public double getFuelCapacity() {
|
||||
return fuelCapacity;
|
||||
}
|
||||
|
||||
public boolean isFlying() {
|
||||
return isFlying;
|
||||
}
|
||||
|
||||
public void setFlying(boolean flying) {
|
||||
isFlying = flying;
|
||||
}
|
||||
|
||||
// Метод для запускання літака
|
||||
public void takeOff() {
|
||||
if (isFlying) { // Перевірка, якщо літає, то його знову не запустити,
|
||||
// у мому коді до цього уже є перевірка, але якщо наприклад розришяти
|
||||
// для інших програм, де перевірки не буде, то воно збереже від помилки
|
||||
System.out.println("The airplane is already flying.");
|
||||
} else {
|
||||
System.out.println("Taking off...");
|
||||
// Виводимо інформацію про взліт літака, міняємо прапор на 'true'
|
||||
isFlying = true;
|
||||
System.out.println("Airplane " + number + " took off!");
|
||||
}
|
||||
}
|
||||
|
||||
// Метод для посадки літака
|
||||
public void land() {
|
||||
if (!isFlying) { // та сама перевірка, тільки для посадки
|
||||
System.out.println("The airplane is already on the ground.");
|
||||
} else {
|
||||
// садимо літак, пасажири плескають в долоні, а прапор 'false'
|
||||
System.out.println("Landing...");
|
||||
isFlying = false;
|
||||
System.out.println("Airplane number " + number + " landed!");
|
||||
System.out.println("Passengers: *claps*");
|
||||
}
|
||||
}
|
||||
|
||||
// Перевизначений метод toString для виведення інформації про літак у зручному форматі
|
||||
@Override
|
||||
public String toString() {
|
||||
String flying = "In angar";
|
||||
if (isFlying) {
|
||||
flying = "Flying"; // друкувати стан прапора було би не естетично, тому перевіряємо 'true' - Flying
|
||||
}
|
||||
return String.format("%-7d | %-25s | %-10s | %-8d | %-12.1f | %-10s",
|
||||
number, model, airline, capacity, fuelCapacity, flying); // використовуємо метод .format для зручного виведення
|
||||
}
|
||||
}
|
||||
|
||||
// Клас, що реалізує інтерфейс Comparator для порівняння літаків за номером
|
||||
class SortByNumber implements Comparator<Airplane> {
|
||||
public int compare(Airplane a, Airplane b) {
|
||||
return a.getNumber() - b.getNumber();
|
||||
}
|
||||
}
|
||||
|
||||
// Клас, що реалізує інтерфейс Comparator для порівняння літаків за моделлю
|
||||
class SortByModel implements Comparator<Airplane> {
|
||||
public int compare(Airplane a, Airplane b) {
|
||||
return a.getModel().compareTo(b.getModel()); // Для типу String використовуємо метод compareTo
|
||||
}
|
||||
}
|
||||
|
||||
// Клас, що реалізує інтерфейс Comparator для порівняння літаків за ємністю
|
||||
class SortByCapacity implements Comparator<Airplane> {
|
||||
public int compare(Airplane a, Airplane b) {
|
||||
return a.getCapacity() - b.getCapacity();
|
||||
}
|
||||
}
|
||||
|
||||
// Клас, що реалізує інтерфейс Comparator для порівняння літаків за ємністю палива
|
||||
class SortByFuelCapacity implements Comparator<Airplane> {
|
||||
public int compare(Airplane a, Airplane b) {
|
||||
return Double.compare(a.getFuelCapacity(), b.getFuelCapacity()); // Для типу double застосовуємо відповідний метод
|
||||
// з абстрактного класу Double
|
||||
}
|
||||
}
|
||||
101
src/Lab4/Lab4.java
Normal file
101
src/Lab4/Lab4.java
Normal file
@@ -0,0 +1,101 @@
|
||||
package Lab4;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Lab4 {
|
||||
int C11 = 2401 % 11; // 3 - Визначити клас літак, який складається як мінімум з 5-и полів.
|
||||
public static void main(String[] args) {
|
||||
Airplane[] airplanes = { // Створюємо масив літаків, можливості створити літак, який одразує літає неможливо,
|
||||
// що логічно
|
||||
new Airplane(1, "Boeing 747", "Airline 1", 20, 50000.0),
|
||||
new Airplane(2, "Airbus A320", "Airline 1", 300, 3000.0),
|
||||
new Airplane(3, "Embraer E190", "Airline 2", 1700, 2000.0),
|
||||
new Airplane(4, "Cessna 172", "Airline 3", 400, 1500.0),
|
||||
new Airplane(5, "Bombardier Global 6000", "Airline 1", 100, 800.0),
|
||||
};
|
||||
|
||||
Scanner scanner = new Scanner(System.in); // Підключаємо Scanner
|
||||
boolean quit = false;
|
||||
while (!quit) { // Нескінченний цикл поки користувач не введе 'q'
|
||||
|
||||
System.out.print("\nEnter the field to sort by (number, model, capacity, fuelcapacity), 'fly' to fly airplane or enter 'q' to exit: ");
|
||||
String input = scanner.nextLine();
|
||||
// перевірка чи правильно введено слово
|
||||
if (!input.equals("number") && !input.equals("model") && !input.equals("capacity") && !input.equals("fuelcapacity") && !input.equals("q") && !input.equals("fly")) {
|
||||
System.out.println("Invalid field to sort by! Please enter 'number', 'model', 'capacity', 'fuelcapacity'.");
|
||||
continue;
|
||||
}
|
||||
// перевірка виходу з програми
|
||||
if (input.equals("q")) {
|
||||
quit = true;
|
||||
System.out.println("Closing program...");
|
||||
continue;
|
||||
}
|
||||
// перевірка, чи користувач хоче запустити літак
|
||||
if (input.equals("fly")){
|
||||
buildBoard(airplanes); // виводимо таблицю літаків, через функцію buildBoard
|
||||
System.out.print("Enter the airplane number to make it fly or land if it already fly: ");
|
||||
int airplaneNumber = scanner.nextInt();
|
||||
scanner.nextLine();
|
||||
|
||||
// Знаходимо вибраний літак
|
||||
Airplane selectedAirplane = null;
|
||||
for (Airplane airplane : airplanes) {
|
||||
if (airplane.getNumber() == airplaneNumber) {
|
||||
selectedAirplane = airplane;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// перевірка, якщо літає - садимо на землю, якщо в ангарі, то запускаємо в повітр'я
|
||||
if (selectedAirplane != null) {
|
||||
if (selectedAirplane.isFlying()) {
|
||||
selectedAirplane.land(); // викликаємо метод для посадки
|
||||
} else {
|
||||
selectedAirplane.takeOff(); // викликаємо метод для запуску
|
||||
}
|
||||
} else {
|
||||
System.out.println("No airplane found with the specified number.");
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
String field = input;
|
||||
System.out.print("Enter the sort order (asc or desc): "); // вибір користувачем сортування за спаданням
|
||||
String order = scanner.nextLine(); // чи зростанням
|
||||
|
||||
if (!order.equals("asc") && !order.equals("desc")) { // перевірка чи правильно введено символ
|
||||
System.out.println("Invalid sort order! Please enter 'asc' or 'desc'.");
|
||||
continue;
|
||||
}
|
||||
// "потужний" swtich
|
||||
Comparator<Airplane> comparator = switch (field) { // в залежності від введеного слова - певний метод сортування
|
||||
case "number" -> new SortByNumber();
|
||||
case "model" -> new SortByModel();
|
||||
case "capacity" -> new SortByCapacity();
|
||||
case "fuelcapacity" -> new SortByFuelCapacity();
|
||||
default -> null;
|
||||
};
|
||||
|
||||
if (order.equals("desc")) { // інвертуємо для зворотнього порядку
|
||||
comparator = comparator.reversed();
|
||||
}
|
||||
Arrays.sort(airplanes, comparator); // сортуємо літаки за результатами компоратора
|
||||
|
||||
System.out.println("\nSorted by " + field + " (in " + order + "ending order):");
|
||||
buildBoard(airplanes); // виклик функції buildBoard
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public static void buildBoard(Airplane[] airplanes){ // Функція нічого не повертає, приймає на вхід масив літаків
|
||||
System.out.println(String.format("%n%-7s | %-25s | %-10s | %-6s | %12s | %-10s", "Number", "Model", "Airline", "Capacity", "Fuel Capcity", "Is flying"));
|
||||
System.out.println("---------------------------------------------------------------------------------------");
|
||||
for (Airplane airplane : airplanes) { // "потужний" цикл for, щоб зручно перебрати літаки
|
||||
System.out.println(airplane.toString()); // викликаємо метод toSring(), який є прикладом поліморфізму
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
97
src/Lab6/Car.java
Normal file
97
src/Lab6/Car.java
Normal file
@@ -0,0 +1,97 @@
|
||||
package Lab6;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* Абстрактний клас Car представляє основні властивості автомобіля
|
||||
* Він містить конструктор для ініціалізації властивостей автомобіля,
|
||||
* а також методи доступу до цих властивостей.
|
||||
*/
|
||||
public abstract class Car {
|
||||
private final String make; // Марка автомобіля
|
||||
private final String model; // Модель автомобіля
|
||||
private final int year; // Рік випуску автомобіля
|
||||
private final int price; // Ціна автомобіля
|
||||
private final int speed; // Швидкість автомобіля
|
||||
private final double fuelConsumption;// Споживання палива автомобілем
|
||||
|
||||
/**
|
||||
* Конструктор класу Car ініціалізує властивості автомобіля.
|
||||
*
|
||||
* @param make марка автомобіля
|
||||
* @param model модель автомобіля
|
||||
* @param year рік випуску автомобіля
|
||||
* @param price ціна автомобіля
|
||||
* @param speed швидкість автомобіля
|
||||
* @param fuelConsumption споживання палива автомобілем
|
||||
*/
|
||||
public Car(String make, String model, int year, int price, int speed, double fuelConsumption) {
|
||||
this.make = make;
|
||||
this.model = model;
|
||||
this.year = year;
|
||||
this.price = price;
|
||||
this.speed = speed;
|
||||
this.fuelConsumption = fuelConsumption;
|
||||
}
|
||||
// Звичайні геттери, тому їх сильно не розписував
|
||||
public String getMake() {
|
||||
return make;
|
||||
}
|
||||
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public int getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
public int getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public int getSpeed() {
|
||||
return speed;
|
||||
}
|
||||
|
||||
public double getFuelConsumption() {
|
||||
return fuelConsumption;
|
||||
}
|
||||
|
||||
/**
|
||||
* Перезаписаний метод toString для представлення об'єкту автомобіля у вигляді рядка.
|
||||
*
|
||||
* @return рядок, що містить всі властивості абстрактного автомобіля
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%-10s | %-7s | %-6s | %-6d | %-5d | %-5s | ",
|
||||
make, model, year, price, speed, fuelConsumption);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Клас SortByFuelConsuming реалізує інтерфейс Comparator і використовується для порівняння автомобілів
|
||||
* за споживанням палива.
|
||||
*/
|
||||
class SortByFuelConsuming implements Comparator<Car> {
|
||||
/**
|
||||
* Метод compare порівнює два об'єкти Car за споживанням палива.
|
||||
* Він порівнює значення споживання палива для обох автомобілів.
|
||||
*
|
||||
* @param a перший автомобіль
|
||||
* @param b другий автомобіль
|
||||
* @return -1, 0 або 1, якщо перше значення менше, рівне або більше другого відповідно
|
||||
*/
|
||||
public int compare(Car a, Car b) {
|
||||
return Double.compare(a.getFuelConsumption(), b.getFuelConsumption());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Щоб реалізувати ієрархію я рішив використати абстрактний клас машини, який має всі базові якості машини
|
||||
// його нащадки мають додаткове поле, крім того різних типів
|
||||
// Клас SortByFuelConsuming є інтерфейсом Comparator і використовується для порівняння автомобілів
|
||||
// за споживанням палива.
|
||||
// повертає значення за яким потім буде сортуватися масив машин
|
||||
|
||||
20
src/Lab6/Coupe.java
Normal file
20
src/Lab6/Coupe.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package Lab6;
|
||||
|
||||
public class Coupe extends Car {
|
||||
private final String bodyType;
|
||||
// Клас купе має додатковий тип який визначає тип кузова, або можна написати чи машина без криші чи з кришою
|
||||
public Coupe(String make, String model, int year, int price, int speed, double fuelConsumption, String bodyType) {
|
||||
super(make, model, year, price, speed, fuelConsumption);
|
||||
this.bodyType = bodyType;
|
||||
}
|
||||
|
||||
public String getBodyType() {
|
||||
return bodyType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
return super.toString()+ String.format("Type: %-10s |" , bodyType); // викликаємо супер-метод, додаємо тип кузова
|
||||
}
|
||||
}
|
||||
24
src/Lab6/Hatchback.java
Normal file
24
src/Lab6/Hatchback.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package Lab6;
|
||||
|
||||
public class Hatchback extends Car {
|
||||
private int numberOfDoors;
|
||||
// Клас Hatchback має додаткову властивість - кількість дверей
|
||||
public Hatchback(String make, String model, int year, int price, int speed, double fuelConsumption, int numberOfDoors) {
|
||||
super(make, model, year, price, speed, fuelConsumption);
|
||||
this.numberOfDoors = numberOfDoors;
|
||||
}
|
||||
|
||||
public int getNumberOfDoors() {
|
||||
return numberOfDoors;
|
||||
}
|
||||
|
||||
public void setNumberOfDoors(int numberOfDoors) {
|
||||
this.numberOfDoors = numberOfDoors;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + String.format("Doors: %-10d |" , numberOfDoors); // додаємо до супер-методу нову властивість
|
||||
}
|
||||
}
|
||||
23
src/Lab6/Sedan.java
Normal file
23
src/Lab6/Sedan.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package Lab6;
|
||||
|
||||
public class Sedan extends Car {
|
||||
private int seatingCapacity;
|
||||
// У об'єктів класу седан особливим є кільість пасажирських місць
|
||||
public Sedan(String make, String model, int year,int price, int speed, double fuelConsumption, int seatingCapacity) {
|
||||
super(make, model, year, price, speed, fuelConsumption);
|
||||
this.seatingCapacity = seatingCapacity;
|
||||
}
|
||||
|
||||
public int getSeatingCapacity() {
|
||||
return seatingCapacity;
|
||||
}
|
||||
|
||||
public void setSeatingCapacity(int seatingCapacity) {
|
||||
this.seatingCapacity = seatingCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + String.format("Seats: %-10d |" , seatingCapacity); // додаємо до супер-методу додаткову властивість
|
||||
}
|
||||
}
|
||||
182
src/Lab6/TaxiPark.java
Normal file
182
src/Lab6/TaxiPark.java
Normal file
@@ -0,0 +1,182 @@
|
||||
package Lab6;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class TaxiPark {
|
||||
|
||||
private static List<Car> cars;
|
||||
|
||||
public TaxiPark() {
|
||||
cars = new ArrayList<>();
|
||||
} // Створюємо у таксопарка масив машин
|
||||
|
||||
public void addAutomobile(Car car) {cars.add(car);} // Метод для додавання машини у таксопарк
|
||||
|
||||
// Метод для додавання машини у таксопарк, але користувачем
|
||||
public void addAutomobileConsole(String carType, String maker, String model, int year, int price, int speed, double fuelConsumption, Object additionalProperty){
|
||||
Car car;
|
||||
switch (carType) { // Удосконалений switch для створення конкретного типу машини
|
||||
case "Coupe" ->
|
||||
car = new Coupe(maker, model, year, price, speed, fuelConsumption, (String) additionalProperty); //
|
||||
// Я придумав, що у купе поліморфізм виражається у тому, що вона може бути купе, без криші, туфелькою
|
||||
// я дуже погано в машинах розбираюсь, тому надіюсь ви мене зрозуміли
|
||||
case "Hatchback", "Sedan" ->
|
||||
car = new Hatchback(maker, model, year, price, speed, fuelConsumption, (int) additionalProperty);
|
||||
default -> {
|
||||
System.out.println("Invalid car type");
|
||||
return;
|
||||
}
|
||||
}
|
||||
addAutomobile(car); // Виклик метода для додаваня машини у таксопарк, можна було без нього,
|
||||
// одною строкою, але так мені це показалось логічним
|
||||
|
||||
}
|
||||
|
||||
public double calculateFleetCost() { // Метод для обрахунку ціни усіх машин
|
||||
double totalCost = 0.0;
|
||||
for (Car car : cars) {
|
||||
totalCost += car.getPrice(); // Перебираємо усі машини, викликаємо у них метод getPrice()
|
||||
}
|
||||
return totalCost; // Повертаємо результат
|
||||
}
|
||||
|
||||
public List<Car> findCarsBySpeedRange(int minSpeed, int maxSpeed) { // Метод для знаходження машин у діапазоні
|
||||
List<Car> carsInSpeedRange = new ArrayList<>();
|
||||
for (Car car : cars) {
|
||||
if (car.getSpeed() >= minSpeed && car.getSpeed() <= maxSpeed) {
|
||||
carsInSpeedRange.add(car); // Перебираємо машини, які задовольняються умові діапазону
|
||||
}
|
||||
}
|
||||
return carsInSpeedRange;
|
||||
}
|
||||
public void boardCars(List<Car> cars){ // Метод для будування таблиці, приймає масив машин, і створює красиву табличку
|
||||
System.out.println("----------------------------------------------------------------------------");
|
||||
System.out.printf("%-10s | %-7s | %-6s | %-6s | %-5s | %-5s | %-10s | %n",
|
||||
"Maker", "Model", "Year", "Price", "Speed", "Fuel", "Special");
|
||||
System.out.println("----------------------------------------------------------------------------");
|
||||
for (Car car : cars) {
|
||||
System.out.println(car.toString());
|
||||
}
|
||||
System.out.println("----------------------------------------------------------------------------");
|
||||
}
|
||||
|
||||
public void sortByFuelConsumption() { // Метод у таксопарка, який викликає клас для сортування
|
||||
|
||||
cars.sort(new SortByFuelConsuming());
|
||||
boardCars(TaxiPark.cars); // будуємо відсортовану табличку
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
int C13 = 2401 % 13;
|
||||
System.out.println("C13 - " + C13 + ", отже треба створити таксопар та ієрархію автомобілів.");
|
||||
System.out.println("--------------------------------------------------------------\n");
|
||||
|
||||
TaxiPark taxiPark = new TaxiPark();
|
||||
|
||||
// Додати автомобілі до таксопарку
|
||||
taxiPark.addAutomobile(new Sedan("Toyota", "Camry", 2020, 3500, 220, 7.5, 5));
|
||||
taxiPark.addAutomobile(new Coupe("BMW", "M4", 2021, 3000, 150, 9.2, "Coupe"));
|
||||
taxiPark.addAutomobile(new Hatchback("Volkswagen", "Golf", 2019, 6000, 200, 6.8, 6));
|
||||
|
||||
Scanner scanner = new Scanner(System.in); // Під'єднуємо сканер
|
||||
boolean quit = false;
|
||||
while (!quit) { // Нескінченний цикл поки користувач не введе 'q'
|
||||
|
||||
System.out.print("""
|
||||
Enter:
|
||||
'cost' - show total fleet
|
||||
'sort' - show cars sorted by fuel consumption
|
||||
'board' - show cars
|
||||
'add' - buy car on your TaxiPark
|
||||
'find' - find cars that in speed diapason
|
||||
or enter 'q' to exit:\s""");
|
||||
String input = scanner.nextLine();
|
||||
// Перевірка чи правильно введено слово
|
||||
if (!input.equals("cost") && !input.equals("sort") && !input.equals("board") && !input.equals("add") && !input.equals("q") && !input.equals("find")) {
|
||||
System.out.println("Invalid field to sort by! Please enter 'cost', 'sort', 'board', 'add', 'find'.");
|
||||
continue;
|
||||
}
|
||||
// Перевірка виходу з програми
|
||||
if (input.equals("q")) {
|
||||
quit = true;
|
||||
System.out.println("Closing program...");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (input.equals("cost")){
|
||||
// Порахувати вартість автопарку
|
||||
double fleetCost = taxiPark.calculateFleetCost(); // Викликаємо метод, який вже описав
|
||||
System.out.println("Total fleet cost: $" + fleetCost);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (input.equals("sort")){
|
||||
// Відсортувати автомобілі за витратами палива
|
||||
taxiPark.sortByFuelConsumption();
|
||||
continue;
|
||||
}
|
||||
if (input.equals("board")){
|
||||
taxiPark.boardCars(TaxiPark.cars); // Виведення таблички
|
||||
continue;
|
||||
|
||||
}
|
||||
if (input.equals("find")){
|
||||
int minSpeed, maxSpeed;
|
||||
System.out.println("Enter min speed: "); // Користувач вводе межі діапазона
|
||||
minSpeed = scanner.nextInt();
|
||||
System.out.println("Enter max speed:");
|
||||
maxSpeed = scanner.nextInt();
|
||||
scanner.nextLine(); // Тут залишався \n тому ми його з'їли
|
||||
List<Car> carsInSpeedRange = taxiPark.findCarsBySpeedRange(minSpeed, maxSpeed); // Масив машин діапазону
|
||||
System.out.println("Cars within the speed range of " + minSpeed + " km/h to " + maxSpeed + " km/h:");
|
||||
taxiPark.boardCars(carsInSpeedRange); // Створенний масив передаємо методу для будування таблички
|
||||
|
||||
|
||||
}
|
||||
if (input.equals("add")){
|
||||
// Користувач вводе багато значень, перевірки не добавив, тому акуратно)
|
||||
System.out.println("Choose type of car: 'Sedan', 'Coupe', 'Hatchback'");
|
||||
String carType = scanner.nextLine();
|
||||
System.out.println("Enter Maker: ");
|
||||
String maker = scanner.nextLine();
|
||||
System.out.println("Enter Model: ");
|
||||
String model = scanner.nextLine();
|
||||
System.out.println("Enter year: ");
|
||||
int year = scanner.nextInt();
|
||||
System.out.println("Enter price (int)");
|
||||
int price = scanner.nextInt();
|
||||
System.out.println("Enter speed (int)");
|
||||
int speed = scanner.nextInt();
|
||||
System.out.println("Enter fuel consumption");
|
||||
double fuelConsumption = scanner.nextDouble();
|
||||
scanner.nextLine();
|
||||
Object additionalProperty = null; // Абстрактний об'єкт, далі в switch він набуде тип
|
||||
|
||||
switch (carType) {
|
||||
case "Sedan", "Hatchback" -> {
|
||||
System.out.println("Enter special(int):");
|
||||
additionalProperty = scanner.nextInt();
|
||||
}
|
||||
|
||||
case "Coupe" -> {
|
||||
System.out.println("Enter special(any):");
|
||||
additionalProperty = scanner.nextLine();
|
||||
}
|
||||
default -> System.out.println("Invalid car type");
|
||||
}
|
||||
// Передаємо всі введені значення методу для купівлі машини у таксопарк
|
||||
taxiPark.addAutomobileConsole(carType, maker, model, year, price, speed, fuelConsumption, additionalProperty);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user