mirror of
https://github.com/ASDjonok/OOP_IO-2x_2023.git
synced 2026-04-01 21:21:50 +03:00
Compare commits
61 Commits
ІО-21/31-Ц
...
ІО-23/30-Ш
| Author | SHA1 | Date | |
|---|---|---|---|
| d43c1fedf4 | |||
| 698bfe413e | |||
| 59fc1ad596 | |||
| 342b1d50b9 | |||
| aadc3f5d05 | |||
| d5cd53f954 | |||
| b00e090791 | |||
| f68dc1a8a7 | |||
| 59f315cacc | |||
| d91c576ab3 | |||
| 49dfcfe457 | |||
| 8e430b94ae | |||
| 46d339f31e | |||
| 2ddeaab94f | |||
| 2b8f88a45f | |||
| 97b2b761e4 | |||
| 4d538d2d04 | |||
| 5f36bd41ae | |||
| 499efa9c78 | |||
| 2c8c807c01 | |||
| 100398953a | |||
| 0d5e3d5ffe | |||
| fd8c37c7cb | |||
| a8cbadbe7d | |||
| 64c9e43742 | |||
| 5ca9ab6c17 | |||
| a97f742be2 | |||
| 2494bea36c | |||
| ca2b85ef9e | |||
| 77f96fafa6 | |||
| 084f131c90 | |||
| 197426e266 | |||
| 661c3641a1 | |||
| fc5704dd15 | |||
| 45ef70b268 | |||
| fe97b8dcde | |||
| 5c8d2bb8a1 | |||
| 6b6076f56c | |||
| 9b08eb0dfc | |||
|
|
9cce8b222e | ||
| 74209977bc | |||
| 83b275cefd | |||
| af7af4d6f2 | |||
| a4a3e09735 | |||
| acc2d533cb | |||
| 8013099c36 | |||
| 8100129706 | |||
| 83d98b2982 | |||
| 4af0ab5655 | |||
|
|
07e9fbdc88 | ||
|
|
41aaaf4623 | ||
| 99e9428dba | |||
| fe36219746 | |||
| 896fc1f4d4 | |||
| 7fa667cb2d | |||
| 74a44852af | |||
|
|
75112d90c2 | ||
|
|
e21575fa93 | ||
|
|
cf3d055f64 | ||
|
|
bdf5611f46 | ||
|
|
80de92fa1e |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
# Project exclude paths
|
|
||||||
/out/
|
|
||||||
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
@@ -1,8 +0,0 @@
|
|||||||
# 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
6
.idea/misc.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
|||||||
<?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
124
.idea/uiDesigner.xml
generated
@@ -1,124 +0,0 @@
|
|||||||
<?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
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
33
Java/lab_1/lab_1.java
Normal file
33
Java/lab_1/lab_1.java
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package OOP.Java.lab_1;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class lab_1 {
|
||||||
|
|
||||||
|
public static int protectedInput(String variableToRead, Scanner input) {
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
System.out.printf("Enter %s: ", variableToRead);
|
||||||
|
return input.nextInt();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.printf("%s must be an integer.\n", variableToRead.toUpperCase());
|
||||||
|
input.nextLine();
|
||||||
|
}
|
||||||
|
} while (true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner input = new Scanner(System.in);
|
||||||
|
|
||||||
|
final int n = protectedInput("n", input);
|
||||||
|
final int m = protectedInput("m", input);
|
||||||
|
final int a = protectedInput("a", input);
|
||||||
|
final int b = protectedInput("b", input);
|
||||||
|
|
||||||
|
input.close();
|
||||||
|
|
||||||
|
final float s = ((float) (b + m) / 2) * (m - b + 1) * (n - a + 1);
|
||||||
|
|
||||||
|
System.out.println("S = " + s);
|
||||||
|
}
|
||||||
|
}
|
||||||
23
Java/lab_1/lab_1.kt
Normal file
23
Java/lab_1/lab_1.kt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package OOP.Java.lab_1
|
||||||
|
|
||||||
|
fun protectedInput(variableName: String): Int {
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
print("Enter $variableName: ")
|
||||||
|
return readln().toInt()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
println("${variableName.uppercase()} must be an integer!")
|
||||||
|
}
|
||||||
|
} while (true)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val n: Int = protectedInput("n")
|
||||||
|
val m: Int = protectedInput("m")
|
||||||
|
val a: Int = protectedInput("a")
|
||||||
|
val b: Int = protectedInput("b")
|
||||||
|
|
||||||
|
val s: Float = (b + m).toFloat() / 2 * (m - b + 1) * (n - a + 1)
|
||||||
|
|
||||||
|
println("S = $s")
|
||||||
|
}
|
||||||
109
Java/lab_2/lab_2.java
Normal file
109
Java/lab_2/lab_2.java
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
package OOP.Java.lab_2;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.Contract;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class lab_2 {
|
||||||
|
|
||||||
|
public static short protectedInput(String inputPrompt, String errorMessage, Scanner input) {
|
||||||
|
short read_variable;
|
||||||
|
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
System.out.println();
|
||||||
|
System.out.print(inputPrompt);
|
||||||
|
|
||||||
|
read_variable = input.nextShort();
|
||||||
|
break;
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(errorMessage);
|
||||||
|
input.nextLine();
|
||||||
|
}
|
||||||
|
} while (true);
|
||||||
|
|
||||||
|
return read_variable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static String format(int number) {
|
||||||
|
int width = String.valueOf(number).length() + 1;
|
||||||
|
|
||||||
|
return "|%" + width + "d ";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Contract(pure = true)
|
||||||
|
public static double average(@NotNull short[] row) {
|
||||||
|
short sum = 0;
|
||||||
|
|
||||||
|
for (short element : row) {
|
||||||
|
sum += element;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (double) sum / row.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
short rows, columns;
|
||||||
|
|
||||||
|
Scanner input = new Scanner(System.in);
|
||||||
|
|
||||||
|
final short a = protectedInput("Input a constant to multiply a matrix by: ",
|
||||||
|
"A constant must be a short-data type integer, try again.", input);
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Input size of the matrix.");
|
||||||
|
|
||||||
|
do {
|
||||||
|
rows = protectedInput("Rows: ",
|
||||||
|
"A number of rows must be a short-data type integer, try again.", input);
|
||||||
|
} while (rows <= 0);
|
||||||
|
|
||||||
|
do {
|
||||||
|
columns = protectedInput("Columns: ",
|
||||||
|
"A number of columns must be a short-data type integer, try again.", input);
|
||||||
|
} while (columns <= 0);
|
||||||
|
|
||||||
|
input.close();
|
||||||
|
|
||||||
|
short[][] matrix_B = new short[rows][columns];
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Matrix B:");
|
||||||
|
|
||||||
|
String format = format(rows * columns);
|
||||||
|
|
||||||
|
for (short i = 0; i < rows; i++) {
|
||||||
|
for (short j = 0; j < columns; j++) {
|
||||||
|
matrix_B[i][j] = (short) ((i + 1) * (j + 1));
|
||||||
|
|
||||||
|
System.out.printf(format, matrix_B[i][j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("|");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Matrix a×B:");
|
||||||
|
|
||||||
|
format = format(rows * columns * a);
|
||||||
|
|
||||||
|
for (short i = 0; i < matrix_B.length; i++) {
|
||||||
|
for (short j = 0; j < matrix_B[i].length; j++) {
|
||||||
|
matrix_B[i][j] *= (a);
|
||||||
|
|
||||||
|
System.out.printf(format, matrix_B[i][j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("|");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Averages of each row:");
|
||||||
|
|
||||||
|
for (short[] row : matrix_B) {
|
||||||
|
System.out.println(average(row));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
57
Java/lab_3/lab_3.java
Normal file
57
Java/lab_3/lab_3.java
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package OOP.Java.lab_3;
|
||||||
|
|
||||||
|
public class lab_3 {
|
||||||
|
static int maxStrLength;
|
||||||
|
static String result;
|
||||||
|
|
||||||
|
public static void cSubUtil(StringBuilder stringbuilder, int leftBoundary, int rightBoundary) {
|
||||||
|
String string = stringbuilder.toString().toLowerCase().replaceAll("[^a-z]","");
|
||||||
|
// check if the indices lie in the range of string
|
||||||
|
// and also if it is palindrome
|
||||||
|
while (leftBoundary >= 0 && rightBoundary < string.length() && string.toLowerCase().charAt(leftBoundary) == string.toLowerCase().charAt(rightBoundary)) {
|
||||||
|
// expand the boundary
|
||||||
|
leftBoundary--;
|
||||||
|
rightBoundary++;
|
||||||
|
}
|
||||||
|
// if it's length is greater than maxStrLength update
|
||||||
|
// maxLength and result
|
||||||
|
if (rightBoundary - leftBoundary - 1 >= maxStrLength) {
|
||||||
|
result = string.substring(leftBoundary + 1, rightBoundary);
|
||||||
|
maxStrLength = rightBoundary - leftBoundary - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int longestPalSubstr(StringBuilder string)
|
||||||
|
{
|
||||||
|
result = "";
|
||||||
|
maxStrLength = 1;
|
||||||
|
// for every index in the string check palindromes
|
||||||
|
// starting from that index
|
||||||
|
for (int i = 0; i < string.length(); i++) {
|
||||||
|
// check for odd length palindromes
|
||||||
|
cSubUtil(string, i, i);
|
||||||
|
// check for even length palindromes
|
||||||
|
cSubUtil(string, i, i + 1);
|
||||||
|
}
|
||||||
|
System.out.println("Longest palindrome substring is: " + compareStrings(string));
|
||||||
|
return compareStrings(string).length();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String compareStrings(StringBuilder builder) {
|
||||||
|
for (int leftBoundary = 0; leftBoundary <= builder.length(); leftBoundary++) {
|
||||||
|
for (int rightBoundary = builder.length(); rightBoundary >= leftBoundary; rightBoundary--) {
|
||||||
|
if (result.equals(builder.substring(leftBoundary, rightBoundary).toLowerCase().replaceAll("[^a-z]",""))) {
|
||||||
|
return builder.substring(leftBoundary, rightBoundary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
StringBuilder stringToDetect = new StringBuilder("Eva, can I see bees in a cave?");
|
||||||
|
|
||||||
|
System.out.println("Initial string: " + stringToDetect);
|
||||||
|
System.out.println("Length is: " + longestPalSubstr(stringToDetect));
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Java/lab_4/Furniture.kt
Normal file
11
Java/lab_4/Furniture.kt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package OOP.Java.lab_4
|
||||||
|
|
||||||
|
class Furniture(val name: String, val material: String, val price: Int, val length: Int, val width: Int, val height: Int) {
|
||||||
|
fun print(nameWidth: Int, materialWidth: Int, priceWidth: Int){
|
||||||
|
print("Furniture stats: {")
|
||||||
|
print("Name: ${this.name.padEnd(nameWidth)} ")
|
||||||
|
print("Material: ${this.material.padEnd(materialWidth)} ")
|
||||||
|
print("Price: ${(this.price.toString() + " cu").padEnd(priceWidth + 3)} ")
|
||||||
|
print("Size: ${this.length}×${this.width}×${this.height}};\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
26
Java/lab_4/lab_4.kt
Normal file
26
Java/lab_4/lab_4.kt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package OOP.Java.lab_4
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val furnitureArray = arrayOf(
|
||||||
|
Furniture("Chair", "Wood", 10, 5, 5, 10),
|
||||||
|
Furniture("Counter-top", "Marble", 1_000, 10, 5, 1),
|
||||||
|
Furniture("Dinner table", "Glass", 500, 15, 10, 1),
|
||||||
|
Furniture("Office table", "Wood", 200, 10, 7, 1),
|
||||||
|
Furniture("Refrigerator", "Stainless steel", 20_000, 8, 4, 10)
|
||||||
|
)
|
||||||
|
|
||||||
|
val maxNameWidth = furnitureArray.maxWith(Comparator.comparingInt { it.name.length }).name.length
|
||||||
|
val maxMaterialWidth = furnitureArray.maxWith(Comparator.comparingInt { it.material.length }).material.length
|
||||||
|
val maxPriceWidth = furnitureArray.maxWith(Comparator.comparingInt { it.price }).price.toString().length
|
||||||
|
|
||||||
|
println("\nUnsorted array:")
|
||||||
|
for (item in furnitureArray) item.print(maxNameWidth, maxMaterialWidth, maxPriceWidth)
|
||||||
|
|
||||||
|
println("\nSorted alphabetically by name:")
|
||||||
|
furnitureArray.sortBy { it.name }
|
||||||
|
for (item in furnitureArray) item.print(maxNameWidth, maxMaterialWidth, maxPriceWidth)
|
||||||
|
|
||||||
|
println("\nSorted alphabetically by material:")
|
||||||
|
furnitureArray.sortBy { it.material }
|
||||||
|
for (item in furnitureArray) item.print(maxNameWidth, maxMaterialWidth, maxPriceWidth)
|
||||||
|
}
|
||||||
23
Java/lab_5/Letter.kt
Normal file
23
Java/lab_5/Letter.kt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package OOP.Java.lab_5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class representing a single letter in a word.
|
||||||
|
*
|
||||||
|
* @property character a character value of a Letter.
|
||||||
|
*/
|
||||||
|
class Letter(private val character: Char) {
|
||||||
|
override fun toString(): String {
|
||||||
|
return this.character.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether the two objects of class Letter are "equal".
|
||||||
|
*
|
||||||
|
* @param letter a letter to compare.
|
||||||
|
* @param ignoreCase if set to "true" will ignore the case of Letters compared.
|
||||||
|
* @return "true" if letters are equal and "false" if they aren't.
|
||||||
|
*/
|
||||||
|
fun letterEquals(letter: Letter, ignoreCase: Boolean): Boolean {
|
||||||
|
return this.character.toString().equals(letter.toString(), ignoreCase)
|
||||||
|
}
|
||||||
|
}
|
||||||
19
Java/lab_5/Punctuation.kt
Normal file
19
Java/lab_5/Punctuation.kt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package OOP.Java.lab_5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class representing a punctuation mark following a word or a sentence.
|
||||||
|
*
|
||||||
|
* @property punctuationMark a [String] value of a punctuation mark.
|
||||||
|
*/
|
||||||
|
class Punctuation(var punctuationMark: String) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
if (!"\\p{Punct}".toRegex().containsMatchIn(punctuationMark)) {
|
||||||
|
this.punctuationMark = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return punctuationMark
|
||||||
|
}
|
||||||
|
}
|
||||||
35
Java/lab_5/Sentence.kt
Normal file
35
Java/lab_5/Sentence.kt
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package OOP.Java.lab_5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class representing a single sentence is a text.
|
||||||
|
*
|
||||||
|
* @property sentenceArray a [Pair] of [Array]s of [Word] and [Punctuation] objects that make up a sentence.
|
||||||
|
*
|
||||||
|
* @constructor a primary constructor accepts a [Pair] of [Array]s of [Word] and [Punctuation] objects, a secondary one accepts a string representing the entire sentence.
|
||||||
|
*/
|
||||||
|
class Sentence(var sentenceArray: Pair<Array<Word>, Array<Punctuation>>) {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
sentenceString: String
|
||||||
|
) : this(
|
||||||
|
Pair(
|
||||||
|
sentenceString.split("[\\p{Punct}\\s]+".toRegex()).filter { it.isNotEmpty() }.map { word -> Word(word) }.toTypedArray(),
|
||||||
|
sentenceString.split(" ").map { word -> Punctuation(word.last().toString()) }.toTypedArray()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of all [Letter] objects in a sentence.
|
||||||
|
*/
|
||||||
|
fun getAllLetters(): Array<Letter> {
|
||||||
|
var allLetters = arrayOf<Letter>()
|
||||||
|
this.sentenceArray.first.forEach { allLetters += it.letters }
|
||||||
|
return allLetters
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
var sentence = arrayOf<String>()
|
||||||
|
this.sentenceArray.first.indices.forEach {sentence += this.sentenceArray.first[it].toString() + this.sentenceArray.second[it].toString() }
|
||||||
|
return sentence.joinToString(" ")
|
||||||
|
}
|
||||||
|
}
|
||||||
83
Java/lab_5/Text.kt
Normal file
83
Java/lab_5/Text.kt
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
package OOP.Java.lab_5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class representing the entire text.
|
||||||
|
*
|
||||||
|
* @property textArray a [Pair] of [Array]s of [Sentence] and [Punctuation] objects that make up a text.
|
||||||
|
*
|
||||||
|
* @constructor a primary constructor accepts a [Pair] of [Array]s of [Sentence] and [Punctuation] objects, a secondary one accepts a string representing the entire text.
|
||||||
|
*/
|
||||||
|
class Text(var textArray: Pair<Array<Sentence>, Array<Punctuation>>) {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
textString: String
|
||||||
|
) : this(
|
||||||
|
Pair(
|
||||||
|
textString.split("[.!?] ?".toRegex()).filter { it.isNotEmpty() }.map { sentence -> Sentence(sentence) }.toTypedArray(),
|
||||||
|
textString.split("(?<=[.!?]) ?".toRegex()).filter { it.isNotEmpty() }.map { sentence -> Punctuation(sentence.last().toString()) }.toTypedArray()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of all [Letter] objects in a sentence.
|
||||||
|
*/
|
||||||
|
private fun getAllLetters(): Array<Letter> {
|
||||||
|
var allLetters = arrayOf<Letter>()
|
||||||
|
this.textArray.first.forEach { allLetters += it.getAllLetters() }
|
||||||
|
return allLetters
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Searches for the longest palindromic substring in a given text.
|
||||||
|
*
|
||||||
|
* @return the longest palindromic substring found.
|
||||||
|
*/
|
||||||
|
fun palindromeSearch(): String {
|
||||||
|
var result = " "
|
||||||
|
|
||||||
|
val letters = this.getAllLetters()
|
||||||
|
|
||||||
|
for (leftBoundary in letters.indices) {
|
||||||
|
for (rightBoundary in letters.lastIndex downTo leftBoundary + 1) {
|
||||||
|
val subToC = letters.sliceArray(leftBoundary..rightBoundary)
|
||||||
|
|
||||||
|
if (subToC.first().letterEquals(subToC.last(), true) && this.checkReverse(subToC) && subToC.size > result.length) {
|
||||||
|
result = subToC.joinToString("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a given substring is a palindrome.
|
||||||
|
*
|
||||||
|
* Is not case-sensitive.
|
||||||
|
*
|
||||||
|
* @param substring an [Array] of [Letter] objects representing a substring.
|
||||||
|
*
|
||||||
|
* @return "true" is a substring given is a palindrome, "false" if it isn't.
|
||||||
|
*/
|
||||||
|
private fun checkReverse(substring: Array<Letter>): Boolean {
|
||||||
|
var leftBoundary = 0
|
||||||
|
var rightBoundary = substring.lastIndex
|
||||||
|
var result = false
|
||||||
|
val correction = substring.size % 2
|
||||||
|
|
||||||
|
while (leftBoundary < substring.size / 2 && rightBoundary >= substring.size / 2 + correction) {
|
||||||
|
leftBoundary++
|
||||||
|
rightBoundary--
|
||||||
|
result = substring[leftBoundary].letterEquals(substring[rightBoundary], true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
var text = arrayOf<String>()
|
||||||
|
this.textArray.first.indices.forEach { text += this.textArray.first[it].toString() + this.textArray.second[it].toString() }
|
||||||
|
return text.joinToString(" ")
|
||||||
|
}
|
||||||
|
}
|
||||||
22
Java/lab_5/Word.kt
Normal file
22
Java/lab_5/Word.kt
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package OOP.Java.lab_5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class representing a single word is a sentence.
|
||||||
|
*
|
||||||
|
* @property letters an array of [Letter] objects that make up a word.
|
||||||
|
*
|
||||||
|
* @constructor a primary constructor accepts an array of [Letter] objects, a secondary one accepts a string representing the entire word.
|
||||||
|
*/
|
||||||
|
class Word(var letters: Array<Letter>) {
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
val wordString = StringBuilder()
|
||||||
|
this.letters.forEach { wordString.append(it) }
|
||||||
|
|
||||||
|
return wordString.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
word: String
|
||||||
|
) : this((word.toCharArray().map { letter -> Letter(letter) }).toTypedArray())
|
||||||
|
}
|
||||||
33
Java/lab_6/Album.kt
Normal file
33
Java/lab_6/Album.kt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an album by a specific artist, containing multiple tracks.
|
||||||
|
*
|
||||||
|
* @property albumName The name of the album.
|
||||||
|
* @property artist The artist or band associated with the album.
|
||||||
|
* @property tracks An [Array] of tracks included on the album.
|
||||||
|
*/
|
||||||
|
class Album(val albumName: String, val artist: String, val tracks: Array<Track>) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of tracks within the specified duration range.
|
||||||
|
*/
|
||||||
|
fun tracksInDurationRange(durationRange: ClosedRange<Duration>): Array<Track> {
|
||||||
|
return this.tracks.filter { it.duration in durationRange }.toTypedArray()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the total duration of all tracks on the album.
|
||||||
|
*/
|
||||||
|
fun totalDuration(): Duration {
|
||||||
|
var totalDuration: Duration = Duration.ZERO
|
||||||
|
this.tracks.forEach { totalDuration += it.duration }
|
||||||
|
return totalDuration
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "${this.albumName} by ${this.artist}\nTotal duration: ${this.totalDuration()}\nTracks:\n${this.tracks.joinToString("\n")}"
|
||||||
|
}
|
||||||
|
}
|
||||||
15
Java/lab_6/Dancepop.kt
Normal file
15
Java/lab_6/Dancepop.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a track in the Dance-pop style.
|
||||||
|
*
|
||||||
|
* @param numberInAlbum The position of the track on the album.
|
||||||
|
* @param trackName The name of the track.
|
||||||
|
* @param feature The featured artist(s) in the track (nullable if no featured artist).
|
||||||
|
* @param duration The [Duration] of the track.
|
||||||
|
*/
|
||||||
|
class Dancepop(numberInAlbum: Int, trackName: String, feature: String?, duration: Duration): Track(numberInAlbum, trackName, feature, duration) {
|
||||||
|
override val style = "Dance-pop"
|
||||||
|
}
|
||||||
15
Java/lab_6/Electropop.kt
Normal file
15
Java/lab_6/Electropop.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a track in the Electropop style.
|
||||||
|
*
|
||||||
|
* @param numberInAlbum The position of the track on the album.
|
||||||
|
* @param trackName The name of the track.
|
||||||
|
* @param feature The featured artist(s) in the track (nullable if no featured artist).
|
||||||
|
* @param duration The [Duration] of the track.
|
||||||
|
*/
|
||||||
|
class Electropop(numberInAlbum: Int, trackName: String, feature: String?, duration: Duration): Track(numberInAlbum, trackName, feature, duration) {
|
||||||
|
override val style = "Electropop"
|
||||||
|
}
|
||||||
15
Java/lab_6/Interlude.kt
Normal file
15
Java/lab_6/Interlude.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an interlude track.
|
||||||
|
*
|
||||||
|
* @param numberInAlbum The position of the track on the album.
|
||||||
|
* @param trackName The name of the track.
|
||||||
|
* @param feature The featured artist(s) in the track (nullable if no featured artist).
|
||||||
|
* @param duration The [Duration] of the track.
|
||||||
|
*/
|
||||||
|
class Interlude(numberInAlbum: Int, trackName: String, feature: String?, duration: Duration): Track(numberInAlbum, trackName, feature, duration) {
|
||||||
|
override val style = "Interlude"
|
||||||
|
}
|
||||||
15
Java/lab_6/Synthpop.kt
Normal file
15
Java/lab_6/Synthpop.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a track in the Synth-pop style.
|
||||||
|
*
|
||||||
|
* @param numberInAlbum The position of the track on the album.
|
||||||
|
* @param trackName The name of the track.
|
||||||
|
* @param feature The featured artist(s) in the track (nullable if no featured artist).
|
||||||
|
* @param duration The [Duration] of the track.
|
||||||
|
*/
|
||||||
|
class Synthpop(numberInAlbum: Int, trackName: String, feature: String?, duration: Duration): Track(numberInAlbum, trackName, feature, duration) {
|
||||||
|
override val style = "Synth-pop"
|
||||||
|
}
|
||||||
27
Java/lab_6/Track.kt
Normal file
27
Java/lab_6/Track.kt
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a track on an album.
|
||||||
|
*
|
||||||
|
* @param numberInAlbum The position of the track on the album.
|
||||||
|
* @param trackName The name of the track.
|
||||||
|
* @param feature The featured artist(s) in the track (nullable if no featured artist).
|
||||||
|
* @param duration The [Duration] of the track.
|
||||||
|
*/
|
||||||
|
open class Track(val numberInAlbum: Int, val trackName: String, val feature: String?, val duration: Duration) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The style or genre of the track.
|
||||||
|
*/
|
||||||
|
open val style = ""
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return if (this.feature == null) {
|
||||||
|
"#${this.numberInAlbum}: ${this.trackName} (${this.duration})"
|
||||||
|
} else {
|
||||||
|
"#${this.numberInAlbum}: ${this.trackName} ft. ${this.feature} (${this.duration})"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
42
Java/lab_6/main.kt
Normal file
42
Java/lab_6/main.kt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
package OOP.Java.lab_6
|
||||||
|
|
||||||
|
import kotlin.time.Duration.Companion.minutes
|
||||||
|
import kotlin.time.Duration.Companion.seconds
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
|
||||||
|
val chromatica = Album(
|
||||||
|
"Chromatica",
|
||||||
|
"Lady Gaga",
|
||||||
|
arrayOf(
|
||||||
|
Interlude(1, "Chromatica I", null, 1.minutes),
|
||||||
|
Synthpop(2, "Alice", null, 2.minutes + 57.seconds),
|
||||||
|
Dancepop(3, "Stupid Love", null, 3.minutes + 13.seconds),
|
||||||
|
Dancepop(4, "Rain On Me", "Ariana Grande", 3.minutes + 2.seconds),
|
||||||
|
Synthpop(5, "Free Woman", null, 3.minutes + 11.seconds),
|
||||||
|
Electropop(6, "Fun Tonight", null, 2.minutes + 53.seconds),
|
||||||
|
Interlude(7, "Chromatica II", null, 41.seconds),
|
||||||
|
Synthpop(8, "911", null, 2.minutes + 52.seconds),
|
||||||
|
Electropop(9, "Plastic Doll", null, 3.minutes + 41.seconds),
|
||||||
|
Dancepop(10, "Sour Candy", "Blackpink", 2.minutes + 37.seconds),
|
||||||
|
Dancepop(11, "Enigma", null, 2.minutes + 59.seconds),
|
||||||
|
Synthpop(12, "Replay", null, 3.minutes + 6.seconds),
|
||||||
|
Interlude(13, "Chromatica III", null, 27.seconds),
|
||||||
|
Electropop(14, "Sine From Above", "Elton John", 4.minutes + 4.seconds),
|
||||||
|
Synthpop(15, "1000 Doves", null, 3.minutes + 35.seconds),
|
||||||
|
Dancepop(16, "Babylon", null, 2.minutes + 41.seconds)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
println("$chromatica\n")
|
||||||
|
|
||||||
|
println("${chromatica.albumName} tracks sorted by musical style:\n${chromatica.tracks.sortedBy { it.style }.joinToString("\n")}\n")
|
||||||
|
|
||||||
|
val durationRange = 1.minutes.. 3.minutes + 30.seconds
|
||||||
|
|
||||||
|
println(
|
||||||
|
"${chromatica.albumName} tracks in a duration range ($durationRange):\n${chromatica.tracksInDurationRange(durationRange).joinToString("\n")}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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>
|
|
||||||
16
Rust/lab_1/Cargo.lock
generated
Normal file
16
Rust/lab_1/Cargo.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lab_1"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"text_io",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "text_io"
|
||||||
|
version = "0.1.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d5f0c8eb2ad70c12a6a69508f499b3051c924f4b1cfeae85bfad96e6bc5bba46"
|
||||||
9
Rust/lab_1/Cargo.toml
Normal file
9
Rust/lab_1/Cargo.toml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "lab_1"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
text_io = "0.1.12"
|
||||||
22
Rust/lab_1/src/main.rs
Normal file
22
Rust/lab_1/src/main.rs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
fn protected_read(variable_name: &str) -> i32 {
|
||||||
|
use text_io::try_read;
|
||||||
|
loop {
|
||||||
|
print!("Enter {}: ", variable_name);
|
||||||
|
let read_result: Result<i32, _> = try_read!();
|
||||||
|
match read_result {
|
||||||
|
Ok(read_integer) => return read_integer,
|
||||||
|
Err(_e) => println!("{} must be an integer!", variable_name.to_uppercase()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let n: i32 = protected_read("n");
|
||||||
|
let m: i32 = protected_read("m");
|
||||||
|
let a: i32 = protected_read("a");
|
||||||
|
let b: i32 = protected_read("b");
|
||||||
|
|
||||||
|
let s: f32 = ((b + m) as f32 / 2f32) * ((m - b + 1) * (n - a + 1)) as f32;
|
||||||
|
|
||||||
|
println!("S = {}", s);
|
||||||
|
}
|
||||||
16
Rust/lab_2/Cargo.lock
generated
Normal file
16
Rust/lab_2/Cargo.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lab_2"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"text_io",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "text_io"
|
||||||
|
version = "0.1.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d5f0c8eb2ad70c12a6a69508f499b3051c924f4b1cfeae85bfad96e6bc5bba46"
|
||||||
9
Rust/lab_2/Cargo.toml
Normal file
9
Rust/lab_2/Cargo.toml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "lab_2"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
text_io = "0.1.12"
|
||||||
140
Rust/lab_2/src/main.rs
Normal file
140
Rust/lab_2/src/main.rs
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
// #[allow(dead_code)]
|
||||||
|
fn capitalise(s: &str) -> String {
|
||||||
|
let mut c = s.chars();
|
||||||
|
match c.next() {
|
||||||
|
None => String::new(),
|
||||||
|
Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn read_row() -> Vec<i16> {
|
||||||
|
loop {
|
||||||
|
print!("Row (separated by spaces): ");
|
||||||
|
let raw_row: String = text_io::read!("{}\n");
|
||||||
|
let trimmed_row: &str = raw_row.trim();
|
||||||
|
match trimmed_row.split(" ").all(|value| {
|
||||||
|
value.chars().all(|char| char.is_numeric() || char == '-')
|
||||||
|
&& value.parse::<i32>().unwrap() <= i16::MAX as i32
|
||||||
|
&& value.parse::<i32>().unwrap() >= i16::MIN as i32
|
||||||
|
}) {
|
||||||
|
true => {
|
||||||
|
return trimmed_row
|
||||||
|
.split(" ")
|
||||||
|
.map(|value| value.parse::<i16>().unwrap())
|
||||||
|
.collect::<Vec<i16>>()
|
||||||
|
}
|
||||||
|
false => println!("[Error] The row must consist of short integers, try again."),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn generate_row(row_index: u16, length: u16) -> Vec<i16> {
|
||||||
|
return (0..length)
|
||||||
|
.map(|element_index| (element_index as i16 + 1) * (row_index as i16 + 1))
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn read_matrix() -> Vec<Vec<i16>> {
|
||||||
|
let rows: u16 = protected_u16_read("the number of rows");
|
||||||
|
loop {
|
||||||
|
print!("Generate [s]quare or [r]ectangle matrix or [i]nput manually [s/r/i]: ");
|
||||||
|
let option: String = text_io::read!();
|
||||||
|
match option.to_lowercase().as_str() {
|
||||||
|
"s" => return (0..rows).map(|i| generate_row(i, rows)).collect(),
|
||||||
|
"r" => {
|
||||||
|
let columns: u16 = protected_u16_read("the number of columns");
|
||||||
|
return (0..rows).map(|i| generate_row(i, columns)).collect();
|
||||||
|
}
|
||||||
|
"i" => return (0..rows).map(|_| read_row()).collect(),
|
||||||
|
_ => println!("[Error] Not an option, try again."),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn protected_u16_read(variable_name: &str) -> u16 {
|
||||||
|
use text_io::try_read;
|
||||||
|
loop {
|
||||||
|
print!("Enter {}: ", variable_name);
|
||||||
|
let read_result: Result<u16, _> = try_read!();
|
||||||
|
match read_result {
|
||||||
|
Ok(read_integer) => return read_integer,
|
||||||
|
Err(_e) => println!(
|
||||||
|
"{} must be a short integer, try again.",
|
||||||
|
capitalise(variable_name)
|
||||||
|
),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn multiply_matrix_by_number(matrix: &Vec<Vec<i16>>, multiplier: u16) -> Vec<Vec<i16>> {
|
||||||
|
return matrix
|
||||||
|
.iter()
|
||||||
|
.map(|row| {
|
||||||
|
row.iter()
|
||||||
|
.map(|element| element * multiplier as i16)
|
||||||
|
.collect()
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn average_of_row(row: &Vec<i16>) -> f32 {
|
||||||
|
return row.iter().sum::<i16>() as f32 / row.len() as f32;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn format_matrix(matrix: &Vec<Vec<i16>>) -> String {
|
||||||
|
let max_width = matrix
|
||||||
|
.iter()
|
||||||
|
.map(|row| {
|
||||||
|
row.iter()
|
||||||
|
.map(|element| element.to_string().len())
|
||||||
|
.max()
|
||||||
|
.unwrap()
|
||||||
|
})
|
||||||
|
.max()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let mut formatted_matrix: String = matrix
|
||||||
|
.iter()
|
||||||
|
.map(|row| {
|
||||||
|
row.iter()
|
||||||
|
.map(|element| format!("| {:max_width$} ", element))
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join("")
|
||||||
|
})
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join("|\n");
|
||||||
|
formatted_matrix.push('|');
|
||||||
|
return formatted_matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn format_column(column: &Vec<f32>) -> String {
|
||||||
|
let max_width = column
|
||||||
|
.iter()
|
||||||
|
.map(|element| element.to_string().len())
|
||||||
|
.max()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
return column
|
||||||
|
.iter()
|
||||||
|
.map(|element| format!("| {:max_width$} |", element))
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let full_vec_test: Vec<Vec<i16>> = read_matrix();
|
||||||
|
println!("\nMatrix B:\n{}\n", format_matrix(&full_vec_test));
|
||||||
|
|
||||||
|
let mult_full_vec_test: Vec<Vec<i16>> =
|
||||||
|
multiply_matrix_by_number(&full_vec_test, protected_u16_read("matrix multiplier"));
|
||||||
|
println!("Matrix a×B:\n{}\n", format_matrix(&mult_full_vec_test));
|
||||||
|
|
||||||
|
let row_averages: Vec<f32> = mult_full_vec_test
|
||||||
|
.iter()
|
||||||
|
.map(|row| average_of_row(row))
|
||||||
|
.collect();
|
||||||
|
println!(
|
||||||
|
"Averages for each row in a×B:\n{}",
|
||||||
|
format_column(&row_averages)
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println(args[2]);
|
|
||||||
System.out.println("Hello world!");
|
|
||||||
// System.out.println(1);
|
|
||||||
|
|
||||||
int a = 1;
|
|
||||||
int b = 2;
|
|
||||||
int c = 1;
|
|
||||||
int d = 1;
|
|
||||||
|
|
||||||
System.out.println(2&1);
|
|
||||||
System.out.println(2|1);
|
|
||||||
int aa = 2;
|
|
||||||
|
|
||||||
/*if (aa) {
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// System.out.println("a"&"b");
|
|
||||||
System.out.println('a'&'b');
|
|
||||||
|
|
||||||
if ((a > b) & MyBooleanMethod()) {
|
|
||||||
System.out.println("?????????????????????????");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static boolean MyBooleanMethod() {
|
|
||||||
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void myFunction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int myFunction2() {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism;
|
|
||||||
|
|
||||||
public class Encapsulation {
|
|
||||||
/*private*/ int field;
|
|
||||||
private int field2;
|
|
||||||
// int a = 1;
|
|
||||||
|
|
||||||
public void myMethodForTheField () {
|
|
||||||
System.out.println(field);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void myMethodForTheField2 () {
|
|
||||||
System.out.println(field);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void myMethodForTheFieldAndTheField2 () {
|
|
||||||
System.out.println(field);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism;
|
|
||||||
|
|
||||||
public class EncapsulationInheritancePolymorphism {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
int a = 1;
|
|
||||||
// var b = 2;
|
|
||||||
// System.out.println(b);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism;
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
Student student = new Student();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//...
|
|
||||||
|
|
||||||
student.setFaculty("FPM", "MO-22");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism;
|
|
||||||
|
|
||||||
public class Student {
|
|
||||||
private String name;
|
|
||||||
private String surname;
|
|
||||||
private String group;
|
|
||||||
private String faculty;
|
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFaculty(String faculty, String group) {
|
|
||||||
this.faculty = faculty;
|
|
||||||
this.group = group;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.inheritance;
|
|
||||||
|
|
||||||
public class ElectricEngine extends Engine {
|
|
||||||
private String batteryType;
|
|
||||||
|
|
||||||
/*private class Engine {
|
|
||||||
private int power;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.inheritance;
|
|
||||||
|
|
||||||
public class Engine {
|
|
||||||
private int power;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.inheritance;
|
|
||||||
|
|
||||||
public class FuelEngine extends Engine {
|
|
||||||
private String fuelType;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.inheritance;
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
|
|
||||||
FuelEngine fuelEngine = new FuelEngine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism;
|
|
||||||
|
|
||||||
public class ElectricEngine extends Engine {
|
|
||||||
private String batteryType;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getPower() {
|
|
||||||
return 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*private class Engine {
|
|
||||||
private int power;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism;
|
|
||||||
|
|
||||||
public class Engine {
|
|
||||||
private int power;
|
|
||||||
|
|
||||||
public int getPower() {
|
|
||||||
return power;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism;
|
|
||||||
|
|
||||||
public class FuelEngine extends Engine {
|
|
||||||
private String fuelType;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getPower() {
|
|
||||||
return 50;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism;
|
|
||||||
|
|
||||||
/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
|
|
||||||
import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
/*encapsulationInheritancePolymorphism.inheritance.*/ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
|
|
||||||
/*encapsulationInheritancePolymorphism.inheritance.*/FuelEngine fuelEngine = new FuelEngine();
|
|
||||||
|
|
||||||
Engine engine1 = fuelEngine;
|
|
||||||
|
|
||||||
Engine[] engines = {
|
|
||||||
electricEngine,
|
|
||||||
fuelEngine
|
|
||||||
};
|
|
||||||
|
|
||||||
for (Engine engine : engines) {
|
|
||||||
System.out.println(engine.getPower());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*for (int i = 0; i < engines.length; i++) {
|
|
||||||
System.out.println(engines[i].getPower());
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// +
|
|
||||||
int a = 1;
|
|
||||||
int b = 1;
|
|
||||||
int c = a + b;
|
|
||||||
System.out.println(c);
|
|
||||||
|
|
||||||
|
|
||||||
String sA = "1";
|
|
||||||
String sB = "1";
|
|
||||||
String sC = sA + sB;
|
|
||||||
System.out.println(sC);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
|
|
||||||
|
|
||||||
public class ElectricEngine extends Engine {
|
|
||||||
private String batteryType;
|
|
||||||
private int chargeLevel = 9;
|
|
||||||
private int criticalChargeLevel = 10;
|
|
||||||
private float coefficientCriticalPowerCut = 0.1f;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getPower() {
|
|
||||||
return chargeLevel > criticalChargeLevel
|
|
||||||
? super.getPower()
|
|
||||||
: (int) (super.getPower() * coefficientCriticalPowerCut);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*private class Engine {
|
|
||||||
private int power;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
|
|
||||||
|
|
||||||
public class Engine {
|
|
||||||
private int power = 100;
|
|
||||||
|
|
||||||
public int getPower() {
|
|
||||||
return power;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
|
|
||||||
|
|
||||||
public class FuelEngine extends Engine {
|
|
||||||
private String fuelType;
|
|
||||||
|
|
||||||
/*public int getPower() {
|
|
||||||
return 50;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
|
|
||||||
|
|
||||||
/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
|
|
||||||
import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
/*encapsulationInheritancePolymorphism.inheritance.*/
|
|
||||||
ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
|
|
||||||
/*encapsulationInheritancePolymorphism.inheritance.*/
|
|
||||||
FuelEngine fuelEngine = new FuelEngine();
|
|
||||||
|
|
||||||
Engine engine1 = fuelEngine;
|
|
||||||
|
|
||||||
Engine[] engines = {
|
|
||||||
electricEngine,
|
|
||||||
fuelEngine
|
|
||||||
};
|
|
||||||
|
|
||||||
for (Engine engine : engines) {
|
|
||||||
System.out.println(engine.getPower());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*for (int i = 0; i < engines.length; i++) {
|
|
||||||
System.out.println(engines[i].getPower());
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package encapsulationInheritancePolymorphism.polymorphism.overload;
|
|
||||||
|
|
||||||
public class MyClassForOverloadExample {
|
|
||||||
void myMethod(int a) {
|
|
||||||
System.out.println("Integer: " + a);
|
|
||||||
}
|
|
||||||
|
|
||||||
void myMethod(double a) {
|
|
||||||
System.out.println("Double: " + a);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
MyClassForOverloadExample overload = new MyClassForOverloadExample();
|
|
||||||
overload.myMethod(1);
|
|
||||||
overload.myMethod(0.1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
import java.util.Scanner;
|
|
||||||
public class lab1 {
|
|
||||||
public static void main(String[] args){
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
|
||||||
|
|
||||||
// 2131 % 7 = 3; C7 = long
|
|
||||||
long n, m, a, b;
|
|
||||||
float result, sum;
|
|
||||||
while(true) {
|
|
||||||
try {
|
|
||||||
System.out.println("Введіть n типу long:");
|
|
||||||
n = scanner.nextLong();
|
|
||||||
System.out.println("Введіть m типу long:");
|
|
||||||
m = scanner.nextLong();
|
|
||||||
System.out.println("Введіть a типу long:");
|
|
||||||
a = scanner.nextLong();
|
|
||||||
System.out.println("Введіть b типу long:");
|
|
||||||
b = scanner.nextLong();
|
|
||||||
break;
|
|
||||||
}catch(Exception e){
|
|
||||||
scanner.nextLine();
|
|
||||||
System.out.println("Введене неправильне число");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2131 % 5 = 1; O2 = /
|
|
||||||
// 2131 % 2 = 1; O1 = -
|
|
||||||
// 2131 % 3 = 1; C = 1
|
|
||||||
result = 0;
|
|
||||||
byte C = 1;
|
|
||||||
for(long i = a; i <= n; i++){
|
|
||||||
sum = 0;
|
|
||||||
for(long j = b; j <= m; j++){
|
|
||||||
if (i - C == 0 || j == 0){
|
|
||||||
System.out.println("Помилка ділення на 0");
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
sum += (float) (i/j)/(i-C);
|
|
||||||
}
|
|
||||||
result += sum;
|
|
||||||
}
|
|
||||||
System.out.println(result);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
public class lab2 {
|
|
||||||
public static void main(String[] args){
|
|
||||||
|
|
||||||
// 2131 % 7 = 3; C7 = int
|
|
||||||
|
|
||||||
int[][] matrix = {
|
|
||||||
{1,2,3,4,5},
|
|
||||||
{1,3,5,7,9},
|
|
||||||
{10,1,20,2,5}
|
|
||||||
};
|
|
||||||
|
|
||||||
int rows = matrix.length;
|
|
||||||
int column = matrix[0].length;
|
|
||||||
System.out.println("Матриця:");
|
|
||||||
for(int i = 0; i < rows; i++){
|
|
||||||
for (int j = 0; j < column; j++){
|
|
||||||
System.out.print(matrix[i][j]+" ");
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
// 2131 % 5 = 1; C5 = транспортування;
|
|
||||||
|
|
||||||
int[][] transportMatrix = new int[column][rows];
|
|
||||||
|
|
||||||
|
|
||||||
for(int i = 0; i < rows; i++){
|
|
||||||
for(int j = 0; j < column; j++){
|
|
||||||
transportMatrix[j][i] = matrix[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("Транспонована матриця:");
|
|
||||||
for (int i = 0; i < column; i++){
|
|
||||||
for (int j = 0; j < rows; j++){
|
|
||||||
System.out.print(transportMatrix[i][j]+" ");
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
// 2131 % 11 = 8; C11 = Знайти середнє значення елементів кожного рядка матриці;
|
|
||||||
int sum;
|
|
||||||
for(int i = 0; i < rows; i++){
|
|
||||||
sum = 0;
|
|
||||||
for(int j = 0; j < column; j++){
|
|
||||||
sum += matrix[i][j];
|
|
||||||
}
|
|
||||||
System.out.println("Середнє арифметичне " + (i+1) + " строки = " + (float)sum/column);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
23
src/lab3.js
23
src/lab3.js
@@ -1,23 +0,0 @@
|
|||||||
//C17 = 2131 % 17 = 6; Відсортувати слова заданого тексту за зростанням кількості голосних літер.
|
|
||||||
|
|
||||||
import create from 'prompt-sync';
|
|
||||||
const prompt = create();
|
|
||||||
|
|
||||||
class Sentence {
|
|
||||||
constructor() {
|
|
||||||
this.sentence = prompt("Input sentence: ");
|
|
||||||
}
|
|
||||||
sort() {
|
|
||||||
const words = this.sentence.split(/[\s.?!,;]/).filter((word) => word);
|
|
||||||
const vowels = /[AaEeiOoUuYy]/g
|
|
||||||
const sortedWords = words.sort((first, second) => {
|
|
||||||
const vowelsOfFirstWord = first.match(vowels)? first.match(vowels): [];
|
|
||||||
const vowelsOfSecondWord = second.match(vowels)? second.match(vowels): [];
|
|
||||||
return vowelsOfFirstWord.length-vowelsOfSecondWord.length;
|
|
||||||
});
|
|
||||||
return sortedWords.join(' ');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const sentence = new Sentence;
|
|
||||||
console.log(sentence.sort())
|
|
||||||
46
src/lab4.js
46
src/lab4.js
@@ -1,46 +0,0 @@
|
|||||||
//C11 = 2131%11 = 8; Визначити клас меблі, який складається як мінімум з 5-и полів.
|
|
||||||
|
|
||||||
//Створимо клас меблів
|
|
||||||
class Furniture{
|
|
||||||
constructor({model, width, height, length, price}) { //об'єкт класа буде створений на основі об'єкта для зручості, тому використовуємо деструктороване присвоєння, щоб не брати зайве.
|
|
||||||
this.model = model;
|
|
||||||
this.width = width;
|
|
||||||
this.height = height;
|
|
||||||
this.length = length;
|
|
||||||
this.price = price;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Створимо об'єкти майбутніх об'єктів класу меблі
|
|
||||||
|
|
||||||
const chair = {
|
|
||||||
model: 'chair',
|
|
||||||
width: 1,
|
|
||||||
length: 1,
|
|
||||||
height: 1,
|
|
||||||
price: 500,
|
|
||||||
};
|
|
||||||
|
|
||||||
const table = {
|
|
||||||
model: 'table',
|
|
||||||
width: 3,
|
|
||||||
length: 2,
|
|
||||||
height: 1.5,
|
|
||||||
price: 1000,
|
|
||||||
};
|
|
||||||
|
|
||||||
const wardrobe = {
|
|
||||||
model: 'wardrobe',
|
|
||||||
width: 5,
|
|
||||||
length: 1,
|
|
||||||
height: 3,
|
|
||||||
price: 750,
|
|
||||||
};
|
|
||||||
|
|
||||||
//Створимо масив що складається з об'єктів класу
|
|
||||||
const furniture = [new Furniture(wardrobe), new Furniture(chair), new Furniture(table)];
|
|
||||||
|
|
||||||
//Відсрортуємо масив за алфавітним порядком;
|
|
||||||
console.log(furniture.sort((first, second) => first.model > second.model ? 1 : first.model < second.model ? -1 : 0));
|
|
||||||
//Відсортуємл масив за ціною за спаданням
|
|
||||||
console.log(furniture.sort((first, second) => second.price - first.price));
|
|
||||||
103
src/lab5.js
103
src/lab5.js
@@ -1,103 +0,0 @@
|
|||||||
class Text {
|
|
||||||
constructor(text) {
|
|
||||||
this.text = [];
|
|
||||||
const sentences = text.split(/[.?!;]/).filter((sentence) => sentence);
|
|
||||||
for (const sentence of sentences) {
|
|
||||||
this.text.push(new Sentence(sentence))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getText() {
|
|
||||||
let text = '';
|
|
||||||
for (const sentence of this.text) {
|
|
||||||
text += sentence.getSentence() + '. ';
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
getSortedText() {
|
|
||||||
let words = [];
|
|
||||||
const vowels = /[AaEeiOoUuYy]/g;
|
|
||||||
|
|
||||||
for (const sentence of this.text) {
|
|
||||||
words = words.concat(sentence.getWords());
|
|
||||||
}
|
|
||||||
const sortedWords = words.sort((first, second) => {
|
|
||||||
const vowelsOfFirstWord = first.match(vowels)? first.match(vowels): [];
|
|
||||||
const vowelsOfSecondWord = second.match(vowels)? second.match(vowels): [];
|
|
||||||
return vowelsOfFirstWord.length-vowelsOfSecondWord.length;
|
|
||||||
});
|
|
||||||
return sortedWords.join(' ');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Sentence {
|
|
||||||
constructor(sentence) {
|
|
||||||
this.sentence = [];
|
|
||||||
const words = sentence.split(/[\s,:]/).filter((word) => word);
|
|
||||||
for (const word of words) {
|
|
||||||
this.sentence.push(new Word(word));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getSentence() {
|
|
||||||
let sentence = '';
|
|
||||||
for (const word of this.sentence) {
|
|
||||||
sentence += word.getWord();
|
|
||||||
if ( this.sentence[this.sentence.length-1] !== word) sentence += ' ';
|
|
||||||
}
|
|
||||||
return sentence;
|
|
||||||
}
|
|
||||||
|
|
||||||
getWords() {
|
|
||||||
let words = [];
|
|
||||||
for (const word of this.sentence) {
|
|
||||||
words.push(word.getWord());
|
|
||||||
}
|
|
||||||
return words;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Word {
|
|
||||||
constructor(word) {
|
|
||||||
this.word = [];
|
|
||||||
for (const symbol of word) {
|
|
||||||
if (/[A-Za-z]/.test(symbol)){
|
|
||||||
this.word.push(new Letter(symbol));
|
|
||||||
} else if (/[0-9]/.test(symbol)) {
|
|
||||||
this.word.push(new Number(symbol));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getWord() {
|
|
||||||
let word = '';
|
|
||||||
for (const symbol of this.word) {
|
|
||||||
word += symbol.getSymbol();
|
|
||||||
}
|
|
||||||
return word
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Letter {
|
|
||||||
constructor(letter) {
|
|
||||||
this.letter = letter;
|
|
||||||
}
|
|
||||||
|
|
||||||
getSymbol() {
|
|
||||||
return this.letter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Number {
|
|
||||||
constructor(number) {
|
|
||||||
this.number = number;
|
|
||||||
}
|
|
||||||
|
|
||||||
getSymbol() {
|
|
||||||
return this.number;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const text = new Text('In late September or October, Martina elevated Constans to co-emperor, but also raised Heraclonas\'s brother Tiberius to co-emperor alongside them. Despite these overtures, Valentinus entered Constantinople shortly thereafter, deposed Heraclonas and Martina, and then elevated Constans to sole emperor. Heraclonas, Martina, Tiberius, and Martinus are said by John of Nikiu to have been escorted forth with insolence. Valentinus had Martinus nose cut off, emasculated him, and then banished his family to Rhodes, where they stayed until their deaths. According to some sources, the stress of the surgery killed Martinus immediately.');
|
|
||||||
console.log(text.getText());
|
|
||||||
console.log('\n' + text.getSortedText());
|
|
||||||
71
src/lab6.js
71
src/lab6.js
@@ -1,71 +0,0 @@
|
|||||||
console.log(2131 % 13)
|
|
||||||
|
|
||||||
class Room {
|
|
||||||
constructor(price, ...toys) {
|
|
||||||
this.toys = toys;
|
|
||||||
this.price = price;
|
|
||||||
if (this.getCurrentPrice() > price) throw new SyntaxError('We haven`t money for this');
|
|
||||||
}
|
|
||||||
|
|
||||||
addToy(toy) {
|
|
||||||
if (this.getCurrentPrice() + toy.getPrice() <= this.price) this.toys.push(toy);
|
|
||||||
else throw new SyntaxError('We haven`t money for this');
|
|
||||||
}
|
|
||||||
|
|
||||||
getCurrentPrice() {
|
|
||||||
let sum = 0;
|
|
||||||
for (const toy of this.toys) {
|
|
||||||
sum += toy.getPrice();
|
|
||||||
}
|
|
||||||
return sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
getSortedToysByPrice() {
|
|
||||||
const sortedToys = this.toys.copyWithin();
|
|
||||||
return sortedToys.sort((firstToy, secondToy) => {
|
|
||||||
return firstToy.getPrice() - secondToy.getPrice();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getToyByPrice(lowerPrice, upperPrice) {
|
|
||||||
return this.toys.find((toy) => lowerPrice <= toy.getPrice() && toy.getPrice() <= upperPrice);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class Toy {
|
|
||||||
|
|
||||||
constructor(type, price, group) {
|
|
||||||
this.type = type;
|
|
||||||
this.price = price;
|
|
||||||
this.group = group;
|
|
||||||
}
|
|
||||||
|
|
||||||
getPrice() {
|
|
||||||
return this.price;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Car extends Toy {
|
|
||||||
constructor(price, group) {
|
|
||||||
super('car', price, group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Ball extends Toy {
|
|
||||||
constructor(price, group) {
|
|
||||||
super('ball', price, group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Doll extends Toy {
|
|
||||||
constructor(price, group) {
|
|
||||||
super('doll', price, group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const doll = new Doll(200, 'middle');
|
|
||||||
const ball = new Ball(150, 'young');
|
|
||||||
const car = new Car(300, 'old');
|
|
||||||
const room = new Room(1000, doll, ball, car);
|
|
||||||
console.log(room.getSortedToysByPrice())
|
|
||||||
console.log(room.getToyByPrice(201, 301));
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package test;
|
|
||||||
|
|
||||||
public class A {
|
|
||||||
/*private*/ int f/* = 3*/;
|
|
||||||
|
|
||||||
public int getF() {
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setF(int f) {
|
|
||||||
this.f = f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package test;
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
A a = new A();
|
|
||||||
System.out.println(a.getF());
|
|
||||||
a.setF(1);
|
|
||||||
System.out.println(a.getF());
|
|
||||||
|
|
||||||
System.out.println(a.f);
|
|
||||||
|
|
||||||
int[] array = {1, 2, 1};
|
|
||||||
System.out.println(array.length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user