Compare commits

..

10 Commits

Author SHA1 Message Date
kxtzzl 9d3fc9e85d Create Lab5 2023-05-11 01:18:29 +03:00
kxtzzl f07b3b6617 Update lab3 2023-05-11 00:50:04 +03:00
kxtzzl 1f0c160216 Update lab4 2023-04-06 00:22:53 +03:00
kxtzzl 511422ad6c Update lab2 2023-04-05 12:30:01 +03:00
kxtzzl 4f86e8cf76 Update lab4 2023-04-03 10:56:11 +03:00
kxtzzl 9493c4974d Create lab4 2023-03-24 04:45:23 +02:00
romchhh 66089802cc Create lab3 2023-03-24 01:42:33 +02:00
romchhh bbb463871e Create lab2 2023-03-20 20:50:22 +02:00
romchhh a7a259d3c6 Create lab1 fedoniuk 2023-02-26 14:47:36 +02:00
Oleksii Aleshchenko 8b6da131a0 add inheritance example 2023-02-23 16:03:51 +02:00
26 changed files with 552 additions and 469 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="openjdk-18" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>
+184
View File
@@ -0,0 +1,184 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Letter {
private char value;
public Letter(char value) {
this.value = value;
}
public char getValue() {
return value;
}
}
class Word {
private List<Letter> letters = new ArrayList<>();
public Word(String input) {
for (char c : input.toCharArray()) {
letters.add(new Letter(c));
}
}
public List<Letter> getLetters() {
return letters;
}
public String toString() {
StringBuilder sb = new StringBuilder();
for (Letter letter : letters) {
sb.append(letter.getValue());
}
return sb.toString();
}
}
class PunctuationMark {
private char value;
public PunctuationMark(char value) {
this.value = value;
}
public char getValue() {
return value;
}
}
class Sentence {
private List<Object> elements = new ArrayList<>();
public Sentence(String input) {
StringBuilder sb = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetterOrDigit(c)) {
sb.append(c);
} else {
if (sb.length() > 0) {
elements.add(new Word(sb.toString()));
sb.setLength(0);
}
elements.add(new PunctuationMark(c));
}
}
if (sb.length() > 0) {
elements.add(new Word(sb.toString()));
}
}
public List<Object> getElements() {
return elements;
}
public String toString() {
StringBuilder sb = new StringBuilder();
for (Object element : elements) {
if (element instanceof Word) {
sb.append(((Word) element).toString());
} else {
sb.append(((PunctuationMark) element).getValue());
}
}
return sb.toString();
}
}
class Text {
private List<Sentence> sentences = new ArrayList<>();
public Text(String input) {
StringBuilder sb = new StringBuilder();
for (char c : input.toCharArray()) {
if (c == '.' || c == '?' || c == '!' || c == ',') {
sb.append(c);
sentences.add(new Sentence(sb.toString()));
sb.setLength(0);
} else {
sb.append(c);
}
}
if (sb.length() > 0) {
sentences.add(new Sentence(sb.toString()));
}
}
public List<Sentence> getSentences() {
return sentences;
}
public String toString() {
StringBuilder sb = new StringBuilder();
for (Sentence sentence : sentences) {
sb.append(sentence.toString());
}
return sb.toString();
}
}
public class Lab5 {
public static void main(String[] args) {
int C17 = 2430 % 17;
System.out.println("\n---------------------------------------------------------------------------------------------------------------------");
System.out.println(" C17 = " + C17 + ", So, the task is: delete all previous occurrences of the last letter of each word of the specified text.");
System.out.println("---------------------------------------------------------------------------------------------------------------------");
Scanner scanner = new Scanner(System.in);
boolean isDone = false;
while (!isDone) {
System.out.print("\nEnter a string or type 'q' to quit: ");
String input = scanner.nextLine().trim();
if (input.equals("q")) {
System.out.print("\n The work is completed.");
isDone = true;
} else if (input.isEmpty()) {
System.out.println("Error: Input string is empty. Please enter a non-empty string.");
} else {
try {
StringBuilder sb = new StringBuilder(input);
String[] words = sb.toString().split("\\s+");
for (int i = 0; i < words.length; i++) {
String word = words[i];
char lastChar = word.charAt(word.length() - 1);
if (!Character.isLetterOrDigit(lastChar)) {
int lastLetterIndex = -1;
for (int j = word.length() - 2; j >= 0; j--) {
if (Character.isLetter(word.charAt(j))) {
lastLetterIndex = j;
break;
}
}
if (lastLetterIndex != -1) {
char lastLetter = word.charAt(lastLetterIndex);
String newWord = "";
for (int j = 0; j < word.length() - 1; j++) {
if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
newWord += word.charAt(j);
}
}
newWord += lastChar;
words[i] = newWord;
}
} else {
char lastLetter = lastChar;
String newWord = "";
for (int j = 0; j < word.length() - 1; j++) {
if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
newWord += word.charAt(j);
}
}
newWord += lastLetter;
words[i] = newWord;
}
}
System.out.print("\n Final string: ");
System.out.println(String.join(" ", words));
} catch (Exception e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
}
}
+96
View File
@@ -0,0 +1,96 @@
import java.util.Scanner;
public class lab1 {
public static void main(String[] args) {
int C2, C3, C5;
var C7 = 0;
Scanner id = new Scanner(System.in);
System.out.print("Enter the student's ID number: ");
int idbook = id.nextInt();
C2 = idbook % 2;
C3 = idbook % 3;
C5 = idbook % 5;
C7 = idbook % 7;
String[] oper1 = {"+", "-"};
String[] oper2 = {"*", "/", "%", "+", "-"};
String[] oper3 = {"byte", "short", "int", "long", "char", "float", "double"};
int C = C3;
String O1 = oper1[C2];
String O2 = oper2[C5];
String O3 = oper3[C7];
System.out.println("C2 is: " + C2 + ", operation is: " + O1);
System.out.println("C3 = " + C);
System.out.println("C5 is: " + C5 + ", operation is: " + O2);
System.out.println("C7 is: " + C7 + ", Type of indexes i and j is: " + O3);
double i = 0;
double j = 0;
System.out.println("\nEnter a values for lower limits (i and j) in the "+ O3+" type: ");
switch (O3) {
case "byte" -> {
i = id.nextByte();
j = id.nextByte();
}
case "short" -> {
i = id.nextShort();
j = id.nextShort();
}
case "int" -> {
i = id.nextInt();
j = id.nextInt();
}
case "long" -> {
i = id.nextLong();
j = id.nextLong();
}
case "char" -> {
i = id.next().charAt(0);
j = id.next().charAt(0);
}
case "float" -> {
i = id.nextFloat();
j = id.nextFloat();
}
case "double" -> {
i = id.nextDouble();
j = id.nextDouble();
}
}
System.out.println("The value of the created variables is: " + i + " and " + j);
System.out.println("Enter values for top limits (n and m):");
int n, m;
n = id.nextInt();
m = id.nextInt();
double sum = 0, res = 0, res2 = 0;
if ((O1.equals("-") && i + n >= C && i <= C) || i > n || j > m || (C == 0 && i == 0)) {
System.out.println("Incorrect input, try another values");
} else {
for (double a = i; a <= n; a++) {
for (double b = j; b <= m; b++) {
switch (O1) {
case "+" -> res = a + C;
case "-" -> res = a - C;
}
switch (O2) {
case "+" -> res2 = a + b;
case "-" -> res2 = a - b;
case "*" -> res2 = a * b;
case "/" -> res2 = a / b;
case "%" -> res2 = a % b;
}
sum += res2 / res;
}
}
System.out.println("Sum is: " + sum);
}
}
}
+76
View File
@@ -0,0 +1,76 @@
import java.util.Scanner;
import java.util.Random;
public class Lab2 {
public static void main(String[] args) {
int C5, C11, C7;
int idbook = 2430;
C5 = idbook % 5;
C7 = idbook % 7;
C11 = idbook % 11;
System.out.println("C5 = " + C5 + " - Action between matrix is: C=a×B, a - const");
System.out.println("C7 = " + C7 + " - The matrix elements type is: byte");
System.out.println("C11 = " + C11 + " - The action with matrix C is: Find the matrix elements' average value");
Scanner sc = new Scanner(System.in);
System.out.print("\n Enter the number of rows: ");
int rows = sc.nextInt();
System.out.print(" Enter the number of columns: ");
int cols = sc.nextInt();
int min = 0;
int max = 0;
boolean valid = false;
while (!valid) {
System.out.print("\n Enter the minimum value of the matrix numbers (-128 to 127): ");
min = sc.nextInt();
System.out.print(" Enter the maximum value of the matrix numbers (-128 to 127): ");
max = sc.nextInt();
if (min >= -128 && max <= 127 && min < max) {
valid = true;
} else {
System.out.println("\nInvalid input. Please enter the values again.");
}
}
byte[][] matrix = new byte[rows][cols];
Random rand = new Random();
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = (byte) (rand.nextInt(max - min + 1) + min);
}
}
System.out.println("\nThe matrix is:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.printf(" %-5d", matrix[i][j]);
}
System.out.println();
}
System.out.print("\nEnter the constant to multiply the matrix by: ");
int constant = sc.nextInt();
byte[][] multipliedMatrix = new byte[rows][cols];
System.out.println(" The matrix multiplied by " + constant + " is:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
multipliedMatrix[i][j] = (byte) (matrix[i][j] * constant);
System.out.printf(" %-5d", multipliedMatrix[i][j]);
}
System.out.println();
}
System.out.println("\n Press 'enter' to search for the average value of the matrix.");
sc.nextLine();
sc.nextLine();
int sum = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
sum += multipliedMatrix[i][j];
}
}
double average = (double) sum / (rows * cols);
System.out.println("The average value of the multiplied matrix is: " + average);
}
}
+63
View File
@@ -0,0 +1,63 @@
import java.util.Scanner;
public class Lab5 {
public static void main(String[] args) {
int C17 = 2430 % 17;
System.out.println("\n---------------------------------------------------------------------------------------------------------------------");
System.out.println(" C17 = " + C17 + ", So, the task is: delete all previous occurrences of the last letter of each word of the specified text");
System.out.println("---------------------------------------------------------------------------------------------------------------------");
Scanner scanner = new Scanner(System.in);
String input = null;
while (input == null || input.isEmpty()) {
System.out.print("\nEnter a string: ");
input = scanner.nextLine();
}
try {
StringBuilder sb = new StringBuilder(input);
String[] words = sb.toString().split("\\s+");
for (int i = 0; i < words.length; i++) {
String word = words[i];
char lastChar = word.charAt(word.length() - 1);
if (!Character.isLetterOrDigit(lastChar)) {
// Last character is a punctuation mark
int lastLetterIndex = -1;
for (int j = word.length() - 2; j >= 0; j--) {
if (Character.isLetter(word.charAt(j))) {
lastLetterIndex = j;
break;
}
}
if (lastLetterIndex != -1) {
char lastLetter = word.charAt(lastLetterIndex);
String newWord = "";
for (int j = 0; j < word.length() - 1; j++) {
if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
newWord += word.charAt(j);
}
}
newWord += lastChar;
words[i] = newWord;
}
} else {
// Last character is a letter or a digit
char lastLetter = lastChar;
String newWord = "";
for (int j = 0; j < word.length() - 1; j++) {
if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
newWord += word.charAt(j);
}
}
newWord += lastLetter;
words[i] = newWord;
}
}
System.out.print("\nFinal string: ");
System.out.println(String.join(" ", words));
} catch (Exception e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
+115
View File
@@ -0,0 +1,115 @@
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Lab4 {
public static class Student {
private int grBook;
private String name;
private int age;
private double gpa;
private String faculty;
public Student(int grBook, String name, int age, double gpa, String faculty) {
this.grBook = grBook;
this.name = name;
this.age = age;
this.gpa = gpa;
this.faculty = faculty;
}
public int getGrBook() {
return grBook;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getGpa() {
return gpa;
}
public String getFaculty() {
return faculty;
}
}
public static void main(String[] args) {
int C11 = 2430 % 11;
System.out.println("\n ----------------------------------------------------------------------------------------------------------");
System.out.println(" C11 = " + C11 + ", So, the task is: Define the student class, which consists of at least 5 fields.");
System.out.println(" ----------------------------------------------------------------------------------------------------------");
Student[] students = {
new Student(1010, "Вікторія", 21, 84.6, "ФІОТ"),
new Student(2010, "Дарія", 20, 79.8, "РТФ"),
new Student(3010, "Анатолій", 19, 94.3, "ХТФ"),
new Student(4040, "Генадій", 22, 62.0, "ІХФ"),
new Student(5050, "Борис", 18, 89.1, "ФММ")
};
Scanner scanner = new Scanner(System.in);
boolean quit = false;
while (!quit) {
System.out.print("\nEnter the field to sort by (greed book, name, age, gpa, faculty) or enter 'quit' to exit: ");
String input = scanner.nextLine();
if (!input.equals("greed book") && !input.equals("name") && !input.equals("age") && !input.equals("gpa") && !input.equals("faculty") && !input.equals("quit")) {
System.out.println("Invalid field to sort by! Please enter 'grBook', 'name', 'age', 'gpa', or 'faculty'.");
continue;
}
if (input.equals("quit")) {
quit = true;
System.out.println("Thank you for using my program:)");
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;
}
Comparator<Student> comparator = null;
switch (field) {
case "greed book":
comparator = Comparator.comparingInt(Student::getGrBook);
break;
case "name":
comparator = Comparator.comparing(Student::getName);
break;
case "age":
comparator = Comparator.comparingInt(Student::getAge);
break;
case "gpa":
comparator = Comparator.comparingDouble(Student::getGpa);
break;
case "faculty":
comparator = Comparator.comparing(Student::getFaculty);
break;
}
if (order.equals("desc")) {
comparator = comparator.reversed();
}
Arrays.sort(students, comparator);
System.out.println("\nSorted by " + field + " (in " + order + "ending order):");
System.out.println(String.format("%n%-15s | %-20s | %-4s | %-4s | %-10s", "Greed book", "Name", "Age", "GPA", " Faculty"));
System.out.println("----------------------------------------------------------------");
for (Student student : students) {
System.out.println(String.format("%-15d | %-20s | %-4d | %-3.1f | %-10s", student.getGrBook(), student.getName(), student.getAge(), student.getGpa(), student.getFaculty()));
}
}
}
}
@@ -1,43 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab1;
import java.util.Scanner;
public class Lab1 {
public static void main(String[] args) {
// O1 = +
// C = 2
// O2 = %
// i, j = short(-32.768 to 32.768)
final int c = 2;
double result = 0;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a: ");
int a = scan.nextInt();// Entering a
System.out.print("Enter b: ");
int b = scan.nextInt();// Entering b
System.out.print("Enter n: ");
int n = scan.nextInt();// Entering n
System.out.print("Enter m: ");
int m = scan.nextInt();// Entering m
scan.close();
if (a <= -c && n >= -c || b <= 0 && m >= 0) {
System.out.println("Error! Division by zero");
return;
}
else if(a > n || b > m){
result = 0;
System.out.println(result);
return;
}
for (short i = (short) a; i <= n; i++) {
for (short j = (short) b; j <= m; j++) {
result += (double) (i % j) / (i + c); //Calculation of the result
}
}
System.out.println("\ns = " + result); // Outputting the result
}
}
@@ -1,84 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab2;
import java.util.Scanner;
public class Lab2 {
public static void main(String[] args) {
// C5 = 2
// C7 = 1
// C11 = 4
Scanner scan = new Scanner(System.in);
System.out.print("Enter the number of matrix rows: ");
int m = scan.nextInt();
System.out.print("Enter the number of matrix columns: ");
int n = scan.nextInt();
System.out.println("\nFilling matrix A:");
byte[][] matrixA = new byte[m][n]; // Creating MxN matrix A
scanMatrix(matrixA, scan);
System.out.println("\nMatrix A"); // Printing matrix A
printMatrix(matrixA);
System.out.println("\nFilling matrix B:");
byte[][] matrixB = new byte[m][n];// Creating MxN matrix B
scanMatrix(matrixB, scan);
scan.close();
System.out.println("\nMatrix B:");// Printing matrix B
printMatrix(matrixB);
System.out.println("\nMatrix C:");
byte[][] matrixC = new byte[m][n];// Creating matrix C
for (byte i = 0; i < m; i++) {
for (byte j = 0; j < n; j++) {
matrixC[i][j] = (byte) (matrixA[i][j] + matrixB[i][j]);
System.out.print(matrixC[i][j] + "\t ");
}
System.out.println();
}
byte evenSum = 0; // Sum for the largest numbers in even rows
byte oddSum = 0;// Sum for the smallest numbers in even rows
for (byte i = 0; i < matrixC.length; i++) {
byte largest = Byte.MIN_VALUE; // variable for largest element
byte smallest = Byte.MAX_VALUE;// variable for smallest element
for (byte j = 0; j < matrixC[i].length; j++) {
if (i % 2 == 0) {
smallest = (byte) Math.min(smallest, matrixC[i][j]);
} else {
largest = (byte) Math.max(largest, matrixC[i][j]);
}
}
if (i % 2 == 0) {
oddSum += smallest;
} else {
evenSum += largest;
}
}
System.out.println("\nSum of the biggest elements: " + evenSum);
System.out.println("Sum of the smallest elements: " + oddSum);
}
private static void scanMatrix(byte[][] matrix, Scanner scan) { //Method for filling matrix
for (byte i = 0; i < matrix.length; i++) {
for (byte j = 0; j < matrix[i].length; j++) {
System.out.printf("Enter element [%d][%d]", i, i);
matrix[i][j] = scan.nextByte();
}
}
}
private static void printMatrix(byte[][] matrix) {//Method for printing matrix
for (byte[] row : matrix) {
for (byte el : row) {
System.out.print(el + "\t ");
}
System.out.println();
}
}
}
@@ -1,25 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab3;
import java.util.*;
public class Lab3 {
// String
// Надрукувати слова без повторень заданого тексту в алфавітному порядку за першою літерою.
public static void main(String[] args) {
String text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Mauris a diam maecenas sed enim ut sem viverra. Amet est placerat in egestas erat imperdiet. Sed turpis tincidunt id aliquet risus. Amet porttitor eget dolor morbi non arcu risus quis. Elementum nibh tellus molestie nunc non blandit massa. Feugiat scelerisque varius morbi enim nunc faucibus. Ipsum faucibus vitae aliquet nec ullamcorper sit amet risus nullam. Quis enim lobortis scelerisque fermentum dui faucibus in. Sem viverra aliquet eget sit amet tellus cras adipiscing enim. Sed ullamcorper morbi tincidunt ornare. Sodales ut eu sem integer vitae justo eget magna. Mi ipsum faucibus vitae aliquet nec ullamcorper.";
String[] words = text.split("[\\p{Punct}\\s]+");
List<String> wordList = new ArrayList<>(Arrays.asList(words));//Class ArrayList implements interface List
// asList returns immutable list
Set<String> wordSet = new HashSet<>(wordList);// Class HashSet implements interface Set
wordList.clear();
wordList.addAll(wordSet);
wordList.sort(String::compareToIgnoreCase);
wordList.sort((o1, o2) -> o1.compareToIgnoreCase(o2));
for (String element : wordList) {
System.out.println(element);
}
}
}
@@ -1,34 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab4;
/**
* Class that represents a boat with different characteristics.
*/
public class Boat {
private final String name;
private final int price;
private final int mass;
private final int age;
private final String type;
public Boat(String name, int price, int mass, int age, String type) {
this.name = name;
this.price = price;
this.mass = mass;
this.age = age;
this.type = type;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
@Override
public String toString() {
return String.format("%s - %s, which was built %d years ago, with mass - %d kg, has price - %d$;",
type, name, age, mass, price);
}
}
@@ -1,35 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab4;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class Lab4 {
public static void main(String[] args) {
List<Boat> boatList = Arrays.asList(
new Boat("Row V. Wave", 150000, 50000, 25, "cutter"),
new Boat("Dirty Oar", 250000, 40000, 15, "cutter"),
new Boat("Tumeric", 450000, 100000, 45, "cutter"),
new Boat("Life is Good", 350000, 20000, 5, "cutter")
);
boatList.sort(Comparator.comparing(Boat::getName));// comparing - method of Comparator interface
System.out.println("Sorted by name:");
printed(boatList);
boatList.sort(Comparator.comparing(Boat::getPrice).reversed());
System.out.println("\nSorted by price in reverse order:");
printed(boatList);
}
/**
* Print all characteristics of boats.
*
* @param boatList List of boats.
*/
public static void printed(List<Boat> boatList) {
for (Boat boat : boatList) {
System.out.println(boat);
}
}
}
@@ -1,12 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
import java.util.*;
public class Lab5 {
public static void main(String[] args) {
Text text = new Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Mauris a diam maecenas sed enim ut sem viverra. Amet est placerat in egestas erat imperdiet. Sed turpis tincidunt id aliquet risus. Amet porttitor eget dolor morbi non arcu risus quis. Elementum nibh tellus molestie nunc non blandit massa. Feugiat scelerisque varius morbi enim nunc faucibus. Ipsum faucibus vitae aliquet nec ullamcorper sit amet risus nullam. Quis enim lobortis scelerisque fermentum dui faucibus in. Sem viverra aliquet eget sit amet tellus cras adipiscing enim. Sed ullamcorper morbi tincidunt ornare. Sodales ut eu sem integer vitae justo eget magna. Mi ipsum faucibus vitae aliquet nec ullamcorper.");
System.out.println(text);
text.getSortedWordsByFirstLetter();
}
}
@@ -1,14 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
public class Letter {
private final char character;
public Letter(char character) {
this.character = character;
}
@Override
public String toString() {
return String.valueOf(character);
}
}
@@ -1,14 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
public class Punctuation implements SentenceElement {
private final String character;
public Punctuation(String character) {
this.character = character;
}
@Override
public String toString() {
return character;
}
}
@@ -1,55 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
import java.util.Arrays;
import java.util.HashSet;
public class Sentence {
private final SentenceElement[] sentenceElements;
private static final String PUNCTUATION = "\\p{Punct}";
public Sentence(String sentences) {
String[] sentenceElement = sentences.split("(?=" + PUNCTUATION + ")| ");
sentenceElements = new SentenceElement[sentenceElement.length];
for (int i = 0; i < sentenceElement.length; i++) {
if (sentenceElement[i].matches(PUNCTUATION)) {
sentenceElements[i] = new Punctuation(sentenceElement[i]);
} else {
sentenceElements[i] = new Word(sentenceElement[i]);
}
}
}
public static void getSortedWordsByFirstLetter(Sentence[] sentences) {
StringBuilder allWords = new StringBuilder();
for (Sentence sentence : sentences) {
allWords.append(sentence).append(" ");
}
String[] words = allWords.toString().split("\\W+");
HashSet<String> uniqueWords = new HashSet<>();
for (String word : words) {
uniqueWords.add(word.toLowerCase());
}
String[] uniqueSortedWords = uniqueWords.toArray(new String[0]);
Arrays.sort(uniqueSortedWords);
for (String word : uniqueSortedWords) {
System.out.println(word);
}
}
@Override
public String toString() {
StringBuilder out = new StringBuilder();
for (SentenceElement se : sentenceElements) {
if (se.getClass().isAssignableFrom(Word.class)) {
out.append(" ");
}
out.append(se);
}
return out.toString();
}
}
@@ -1,5 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
public interface SentenceElement {
// Об'єднуєм два типа
}
@@ -1,26 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
public class Text {
private final Sentence[] sentences;
public Text(String text) {
String[] splitText = text.split("(?=[.!?]+)| ");
sentences = new Sentence[splitText.length];
for (int i = 0; i < splitText.length; i++) {
sentences[i] = new Sentence(splitText[i]);
}
}
public void getSortedWordsByFirstLetter() {
Sentence.getSortedWordsByFirstLetter(sentences);
}
@Override
public String toString() {
StringBuilder out = new StringBuilder();
for (Sentence sentence : sentences) {
out.append(sentence.toString());
}
return out.toString().strip();
}
}
@@ -1,21 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab5;
public class Word implements SentenceElement {
private final Letter[] letters;
public Word(String word) {
letters = new Letter[word.length()];
for (int i = 0; i < word.length(); i++) {
letters[i] = new Letter(word.charAt(i));
}
}
@Override
public String toString() {
StringBuilder out = new StringBuilder();
for (Letter let : letters) {
out.append(let.toString());
}
return out.toString();
}
}
@@ -1,7 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab6;
public class Comfort extends Tariff {
public Comfort(String name, int price, int customers) {
super(name, price, customers);
}
}
@@ -1,8 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab6;
public class Economy extends Tariff {
public Economy(String name, int price, int customers) {
super(name, price, customers);
}
}
@@ -1,48 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab6;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Lab6 {
public static void main(String[] args) {
Comfort tariff1 = new Comfort("Comfort", 100, 5000);
Economy tariff2 = new Economy("Economy", 25, 10000);
Optimal tariff3 = new Optimal("Optimal", 300, 50000);
Tariff[] tariffs = {tariff1, tariff2, tariff3};
int sum = 0;
System.out.println("Тарифи мобільної мобільної компанії:");
for (int i = 0; i < tariffs.length; i++) {
System.out.printf("\t%d. %s%n", i + 1, tariffs[i].getName());
sum += tariffs[i].getCustomers();
}
System.out.println("\nЗагальна кількість користувачів: " + sum + ";");
System.out.println("\nТарифи мобільної компанії відсортовані за вартістю:");
Arrays.sort(tariffs, Comparator.comparing(Tariff::getPrice));
for (int i = 0; i < tariffs.length; i++) {
System.out.printf("\t%d. %s%n", i + 1, tariffs[i]);
}
System.out.println("\nВведіть діапазон цін, в якому бажаєте підібрати тариф: ");
Scanner scan = new Scanner(System.in);
System.out.print("\tМінімальна ціна: ");
int minSum = scan.nextInt();
System.out.print("\tМаксимальна ціна: ");
int maxSum = scan.nextInt();
scan.close();
int n2 = 0;
System.out.println("\nПідібрані тарифи: ");
for (int i = 0; i < tariffs.length; i++) {
if (minSum <= tariffs[i].getPrice() && tariffs[i].getPrice() <= maxSum) {
System.out.printf("\t%d. %s%n", i + 1, tariffs[i]);
n2 += 1;
}
}
if (n2 == 0) {
System.out.println("\tНе знайдено тарифів в заданому діапазоні цін;");
}
}
}
@@ -1,7 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab6;
public class Optimal extends Tariff {
public Optimal(String name, int price, int customers) {
super(name, price, customers);
}
}
@@ -1,30 +0,0 @@
package IO_24._02_Бондаренко_Тарас_Андрійович.lab6;
public class Tariff {
private final String name;
private final int price;
private final int customers;
public Tariff(String name, int price, int customers) {
this.name = name;
this.price = price;
this.customers = customers;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public int getCustomers() {
return customers;
}
@Override
public String toString() {
return "Тариф " + name + ", коштує " + price + " грн.";
}
}
@@ -0,0 +1,5 @@
package encapsulationInheritancePolymorphism.inheritance;
public class ElectricEngine extends Engine {
private String batteryType;
}
@@ -0,0 +1,5 @@
package encapsulationInheritancePolymorphism.inheritance;
public class Engine {
private int power;
}
@@ -0,0 +1,7 @@
package encapsulationInheritancePolymorphism.inheritance;
public class Main {
public static void main(String[] args) {
ElectricEngine electricEngine = new ElectricEngine();
}
}