diff --git a/lab1/lab1.iml b/lab1/lab1.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/lab1/lab1.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab1/out/production/lab1/Main.class b/lab1/out/production/lab1/Main.class new file mode 100644 index 0000000..583d5a2 Binary files /dev/null and b/lab1/out/production/lab1/Main.class differ diff --git a/lab1/src/Main.java b/lab1/src/Main.java new file mode 100644 index 0000000..66546e4 --- /dev/null +++ b/lab1/src/Main.java @@ -0,0 +1,20 @@ +public class Main { + + public static void main(String[] args) { + float s = 0, a = 2, b = 1, m = 6, n = 4; + + for (float i = a; i <= m; i++) { + for (float j = b; j <= n; j++) { + // Перевірка ділення на 0. + if (i == -1) { + System.out.println("Помилка: ділення на нуль не можливе."); + return; + } + s += (i + j) / (i + 1); + } + } + + System.out.println("S = " + s); + } + +} diff --git a/lab1/ООП lab1.pdf b/lab1/ООП lab1.pdf new file mode 100644 index 0000000..fc48c98 Binary files /dev/null and b/lab1/ООП lab1.pdf differ diff --git a/lab2/lab2.iml b/lab2/lab2.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/lab2/lab2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab2/out/production/lab2/Main.class b/lab2/out/production/lab2/Main.class new file mode 100644 index 0000000..546e1ab Binary files /dev/null and b/lab2/out/production/lab2/Main.class differ diff --git a/lab2/src/Main.java b/lab2/src/Main.java new file mode 100644 index 0000000..8a67ad5 --- /dev/null +++ b/lab2/src/Main.java @@ -0,0 +1,59 @@ +public class Main { + + public static void main(String[] args) { + + // Створення матриць. + char[][] a = { + {12, 4, 8, 11}, + {16, 9, 3, 13}, + {7, 11, 16, 15} + }; + char[][] b = { + {15, 12, 4, 5}, + {19, 1, 3, 11}, + {2, 11, 6, 10} + }; + + System.out.println("Матриця A: "); + for (char[] i : a) { + for (char j : i) { + /* При виведенні елементів ми додаємо пробіли на кінці + цілого числа (%-4d) задля легшого читання матриці. + */ + System.out.printf("%-4d", (int) j); + } + System.out.println(); + } + + System.out.println("\nМатриця B: "); + for (char[] i : b) { + for (char j : i) { + System.out.printf("%-4d", (int) j); + } + System.out.println(); + } + + // Перевірка на те, чи є матриці однакових форм. + if (a[0].length != b[0].length || a.length != b.length) { + System.out.println("Матриці А і В мають різні форми."); + } else { + int[][] c = new int[a.length][a[0].length]; + float sum = 0; + + System.out.println("\nМатриця С: "); + for (int i = 0; i < a.length; i++) { + for (int j = 0; j < a[i].length; j++) { + + c[i][j] = (byte) a[i][j] ^ (byte) b[i][j]; + sum += c[i][j]; + System.out.printf("%-4d", c[i][j]); + } + System.out.println(); + } + + float average = sum / (c.length * c[0].length); + System.out.printf("\nСереднє значення матриці С: %.3f", average); + } + } + +} diff --git a/lab2/ООП lab2.pdf b/lab2/ООП lab2.pdf new file mode 100644 index 0000000..bcab6b6 Binary files /dev/null and b/lab2/ООП lab2.pdf differ diff --git a/lab3/lab3.iml b/lab3/lab3.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/lab3/lab3.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab3/out/production/lab3/Main.class b/lab3/out/production/lab3/Main.class new file mode 100644 index 0000000..7f74e52 Binary files /dev/null and b/lab3/out/production/lab3/Main.class differ diff --git a/lab3/src/Main.java b/lab3/src/Main.java new file mode 100644 index 0000000..a70dc05 --- /dev/null +++ b/lab3/src/Main.java @@ -0,0 +1,54 @@ +import java.util.Arrays; +import java.util.Scanner; + +public class Main { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + StringBuffer text = new StringBuffer(scanner.nextLine()); + String str_text = text.toString(); + // Заміна ? й ! на . + str_text = str_text.replaceAll("[?!]", "."); + // Очищення від спеціальних символів. + str_text = str_text.replaceAll("\"", ""); + str_text = str_text.replaceAll("-", ""); + str_text = str_text.replaceAll("[,':;^*&%$#@]", ""); + // Створення масиву з речень. + String[] spl_text = str_text.split("\\."); + + // Перевірка на кількість речень. + if (spl_text.length == 0 || spl_text.length == 1) { + System.out.println("Не вдалося виконати дію з рядками (було введено одне речення або взагалі нічого)"); + return; + } + + System.out.println("Слова першого речення, яких немає у жодному з наступних:"); + for (String st : spl_text[0].split(" ")) { + int index = 0; + for (int i = 1; i < spl_text.length; i++) { + // Усунення кейсу з регістром, усунення пробілів. + if (Arrays.asList(spl_text[i].toLowerCase().trim().split(" ")).contains(st.trim().toLowerCase())) { + index = 1; + break; + } + } + // Перевірка на те, чи було дане слово хоча б в одному реченні. + if (index == 0) { + System.out.println(st.trim().toLowerCase()); + } + } + } + +} + +/* [Input] +"У молодості я взяв собі за правило не пити ні краплі спиртного до обіду. Тепер, коли я вже немолодий, я тримаюся правила не пити ні краплі спиртного до сніданку". - Вінстон Черчилль + [Output] +у +молодості +взяв +собі +за +правило +обіду + */ diff --git a/lab3/ООП lab3.pdf b/lab3/ООП lab3.pdf new file mode 100644 index 0000000..bc891f2 Binary files /dev/null and b/lab3/ООП lab3.pdf differ diff --git a/lab4/lab4.iml b/lab4/lab4.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/lab4/lab4.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab4/out/production/lab4/lab4/Main.class b/lab4/out/production/lab4/lab4/Main.class new file mode 100644 index 0000000..d745b17 Binary files /dev/null and b/lab4/out/production/lab4/lab4/Main.class differ diff --git a/lab4/out/production/lab4/lab4/Sorting$SortByAge.class b/lab4/out/production/lab4/lab4/Sorting$SortByAge.class new file mode 100644 index 0000000..78377e8 Binary files /dev/null and b/lab4/out/production/lab4/lab4/Sorting$SortByAge.class differ diff --git a/lab4/out/production/lab4/lab4/Sorting$SortByAlphabet.class b/lab4/out/production/lab4/lab4/Sorting$SortByAlphabet.class new file mode 100644 index 0000000..b9e52e3 Binary files /dev/null and b/lab4/out/production/lab4/lab4/Sorting$SortByAlphabet.class differ diff --git a/lab4/out/production/lab4/lab4/Sorting.class b/lab4/out/production/lab4/lab4/Sorting.class new file mode 100644 index 0000000..9391c7c Binary files /dev/null and b/lab4/out/production/lab4/lab4/Sorting.class differ diff --git a/lab4/out/production/lab4/lab4/Student.class b/lab4/out/production/lab4/lab4/Student.class new file mode 100644 index 0000000..18f2932 Binary files /dev/null and b/lab4/out/production/lab4/lab4/Student.class differ diff --git a/lab4/src/lab4/Main.java b/lab4/src/lab4/Main.java new file mode 100644 index 0000000..078c893 --- /dev/null +++ b/lab4/src/lab4/Main.java @@ -0,0 +1,40 @@ +package lab4; + +import java.util.Arrays; + +public class Main { + + public static void main(String[] args) { + + // Створення об'єктів класу Student. + Student First = new Student("Михайло", "Гордун", 21, "ІПСА", true); + Student Second = new Student("Дмитро", "Шарій", 19, "ТЕФ", false); + Student Third = new Student("Аліна", "Шарій", 18, "ЕФ", false); + Student Fourth = new Student("Назар", "Лоленко", 17, "ФІОТ", true); + Student Fifth = new Student("Олександра", "Зеленська", 18, "ФМВ", true); + + // Створення масиву об'єктів класу Student. + Student[] ObjArray = new Student[] {First, Second, Third, Fourth, Fifth}; + + // Сортування по алфавіту (прізвище ім'я). + Arrays.sort(ObjArray, new Sorting.SortByAlphabet()); + System.out.println("\nСортування за алфавітом (зростання):"); + for (Student Student : ObjArray) { + System.out.println(Student.lastName + " " + Student.firstName); + } + + /* Сортування по віці (спадання). + Масив сортує масив по зростанню, але в циклі ітерація + проходить навпаки, тим самим виводячи елементи з кінця + до початку. + */ + Arrays.sort(ObjArray, new Sorting.SortByAge()); + System.out.println("\nСортування за віком (спадання):"); + for (int i = ObjArray.length-1; i >= 0; i--) { + System.out.print(ObjArray[i].lastName + " "); + System.out.print(ObjArray[i].firstName); + System.out.println(", вік: " + ObjArray[i].age); + } + } + +} diff --git a/lab4/src/lab4/Sorting.java b/lab4/src/lab4/Sorting.java new file mode 100644 index 0000000..41c22fe --- /dev/null +++ b/lab4/src/lab4/Sorting.java @@ -0,0 +1,52 @@ +package lab4; + +import java.util.Comparator; + +public class Sorting { + + // Непорушний клас, створений на основі абстратного класу Comparator. + public static class SortByAlphabet implements Comparator { + + /* Реалізація методу compare(). + Метод compare(Object o1, Object 02) є одним із абстрактних методів + класу Comparator. Нам потрібно або зробити наш клас абстактним, або + реалізувати даний метод. Якщо ж оголосити клас SortByAlphabet + абстрактним, ми не зможемо створити на основі його об'єкт, тому + вибір очевидний - реалізація методу. + */ + @Override + public int compare(Student st1, Student st2) { + /* Якщо в нас буде 2 однакових прізвища на порівняння, нам потрібно + порівнювати імена аби сортування по алфавіту було правильним. + */ + if (st1.lastName.compareTo(st2.lastName) == 0) { + return st1.firstName.compareTo(st2.firstName); + } else { + return st1.lastName.compareTo(st2.lastName); + } + } + + } + + // Непорушний клас, створений на основі абстратного класу Comparator. + public static class SortByAge implements Comparator { + + // Аналогічно тут, реалізуємо метод compare(). + @Override + public int compare(Student st1, Student st2) { + /* Метод compareTo() приймає лише дані типу String, тому + ми перетворюємо вік з int в String. Звісно ж це може привести + до неточності. Числа будуть порівнюватись спочатку по перших + цифрах, потім по других і тд. Якщо в нас буде, наприклад вік + 107 і 18 на порівнянні, прогрма порахує, що 18 > 107 по + порядку. Тут цим знехтується, адже я сумніваюсь що існують + студенти яким >100 років. + */ + String age1 = Integer.toString(st1.age); + String age2 = Integer.toString(st2.age); + return age1.compareTo(age2); + } + + } + +} diff --git a/lab4/src/lab4/Student.java b/lab4/src/lab4/Student.java new file mode 100644 index 0000000..8f5146a --- /dev/null +++ b/lab4/src/lab4/Student.java @@ -0,0 +1,44 @@ +package lab4; + +public class Student { + + // Створення полів класу. + public String firstName; + public String lastName; + public int age; + private String faculty; + private boolean hasStipend; + + // Конструктор класу. + public Student(String fn, String ln, int age, String fac, boolean wealth) { + setValues(fn, ln, age, fac, wealth); + getValues(); + } + + /* Метод, який нічого не повертає. + Визначає поля класу. + */ + private void setValues(String fn, String ln, int age, String fac, boolean wealth) { + this.firstName = fn; + this.lastName = ln; + this.age = age; + this.faculty = fac; + this.hasStipend = wealth; + } + + /* Метод, який нічого не повертає. + Виводить значення полів. + */ + private void getValues() { + System.out.println("Прізвище та ім'я: " + this.lastName + " " + this.firstName); + System.out.println("Вік: " + this.age); + System.out.println("Факультет: " + this.faculty); + System.out.print("Наявність стипендії: "); + if (this.hasStipend) + System.out.println("є"); + else + System.out.println("немає"); + System.out.println("~".repeat(40)); + } + +} diff --git a/lab4/ООП lab4.pdf b/lab4/ООП lab4.pdf new file mode 100644 index 0000000..a4040cd Binary files /dev/null and b/lab4/ООП lab4.pdf differ diff --git a/lab6/lab6.iml b/lab6/lab6.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/lab6/lab6.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab6/out/production/lab6/lab6/Bmw.class b/lab6/out/production/lab6/lab6/Bmw.class new file mode 100644 index 0000000..8f13b34 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Bmw.class differ diff --git a/lab6/out/production/lab6/lab6/Car.class b/lab6/out/production/lab6/lab6/Car.class new file mode 100644 index 0000000..0846fcc Binary files /dev/null and b/lab6/out/production/lab6/lab6/Car.class differ diff --git a/lab6/out/production/lab6/lab6/Ford.class b/lab6/out/production/lab6/lab6/Ford.class new file mode 100644 index 0000000..67a1028 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Ford.class differ diff --git a/lab6/out/production/lab6/lab6/Lexus.class b/lab6/out/production/lab6/lab6/Lexus.class new file mode 100644 index 0000000..fdfbfbc Binary files /dev/null and b/lab6/out/production/lab6/lab6/Lexus.class differ diff --git a/lab6/out/production/lab6/lab6/Main.class b/lab6/out/production/lab6/lab6/Main.class new file mode 100644 index 0000000..9fcc33b Binary files /dev/null and b/lab6/out/production/lab6/lab6/Main.class differ diff --git a/lab6/out/production/lab6/lab6/Peguot.class b/lab6/out/production/lab6/lab6/Peguot.class new file mode 100644 index 0000000..d49a3a2 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Peguot.class differ diff --git a/lab6/out/production/lab6/lab6/Skoda.class b/lab6/out/production/lab6/lab6/Skoda.class new file mode 100644 index 0000000..36cfa98 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Skoda.class differ diff --git a/lab6/out/production/lab6/lab6/Toyota.class b/lab6/out/production/lab6/lab6/Toyota.class new file mode 100644 index 0000000..f25a3b2 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Toyota.class differ diff --git a/lab6/out/production/lab6/lab6/Volkswagen.class b/lab6/out/production/lab6/lab6/Volkswagen.class new file mode 100644 index 0000000..621aa57 Binary files /dev/null and b/lab6/out/production/lab6/lab6/Volkswagen.class differ diff --git a/lab6/src/lab6/Bmw.java b/lab6/src/lab6/Bmw.java new file mode 100644 index 0000000..dd266c2 --- /dev/null +++ b/lab6/src/lab6/Bmw.java @@ -0,0 +1,17 @@ +package lab6; + +public class Bmw extends Car { + + public String mark = "BMW"; + + public Bmw(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: BMW"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Car.java b/lab6/src/lab6/Car.java new file mode 100644 index 0000000..8bfb1a5 --- /dev/null +++ b/lab6/src/lab6/Car.java @@ -0,0 +1,40 @@ +package lab6; + +import java.util.Comparator; + +public class Car { + + protected String _model; + protected float speed; + protected int price; + protected int year; + protected float fuel; + protected float engineCapacity; + protected String country; + + public Car(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + setValues(_model, speed, price, year, fuel, engineCapacity, country); + printValues(); + } + + public void setValues(String _m, float s, int p, int y, float f, float e, String c) { + this._model = _m; + this.speed = s; + this.price = p; + this.year = y; + this.fuel = f; + this.engineCapacity = e; + this.country = c; + } + + public void printValues() { + System.out.println("Модель: " + _model + " " + year); + System.out.println("Максимальна швидкість: " + speed + "км/год"); + System.out.println("Ціна: " + price + "$"); + System.out.println("Витрати палива: " + fuel + "л/100км"); + System.out.println("Об'єм двигуна: " + engineCapacity); + System.out.println("Країна-виробник: " + country); + System.out.println("~".repeat(40)); + } + +} diff --git a/lab6/src/lab6/Ford.java b/lab6/src/lab6/Ford.java new file mode 100644 index 0000000..27ce969 --- /dev/null +++ b/lab6/src/lab6/Ford.java @@ -0,0 +1,17 @@ +package lab6; + +public class Ford extends Car { + + public String mark = "Ford"; + + public Ford(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Ford"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Lexus.java b/lab6/src/lab6/Lexus.java new file mode 100644 index 0000000..3c88486 --- /dev/null +++ b/lab6/src/lab6/Lexus.java @@ -0,0 +1,17 @@ +package lab6; + +public class Lexus extends Car { + + public String mark = "Lexus"; + + public Lexus(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Lexus\nМатеринська компанія: Toyota"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Main.java b/lab6/src/lab6/Main.java new file mode 100644 index 0000000..20900f3 --- /dev/null +++ b/lab6/src/lab6/Main.java @@ -0,0 +1,55 @@ +package lab6; + +/* +Номер заліковї книжки - 2518. + +Завдання: +9)Визначити ієрархію легкових автомобілів. Створити таксопарк. +Порахувати вартість автопарку. Провести сортування автомобілів +парку за витратами палива. Знайти автомобіль у компанії, що +відповідає заданому діапазону швидкості автомобіля. + */ + +import java.util.Scanner; + +public class Main { + + public static void main(String[] args) { + System.out.println(" ".repeat(15) + "Таксопарк" + " ".repeat(15)); + System.out.println("~".repeat(40)); + + Volkswagen Car1 = new Volkswagen("Golf 4", 224, 5000, 2001, 6.8f, 1.6f, "Німеччина"); + Volkswagen Car2 = new Volkswagen("Passat", 240, 15000, 2007, 7.0f, 2.0f, "Німеччина"); + Toyota Car3 = new Toyota("Prius", 231, 12500, 2014, 4.3f, 1.8f, "Японія"); + Peguot Car4 = new Peguot("308", 220, 12000, 2007, 6.1f, 1.6f, "Франція"); + Lexus Car5 = new Lexus("LS", 250, 80000, 2022, 10.9f, 3.5f, "Японія"); + Skoda Car6 = new Skoda("Octavia", 220, 25000, 2022, 6.2f, 1.5f, "Чехія"); + Ford Car7 = new Ford("Focus", 242, 7800, 2014, 6.9f, 2.0f, "США"); + Bmw Car8 = new Bmw("5-Series", 250, 50000, 2018, 8.3f, 3.0f, "Німеччина"); + Car[] CarList = new Car[] {Car1, Car2, Car3, Car4, Car5, Car6, Car7, Car8}; + /* + Використовується лямбда функція, щоб описати компаратор в Arrays.sort(). + */ + java.util.Arrays.sort(CarList, (a, b) -> Float.compare(a.fuel, b.fuel)); + + System.out.println("Сортування автомобілів за витратами палива:"); + for (Car Car : CarList) { + System.out.println(Car._model + ": " + Car.fuel + "л/100км"); + } + + Scanner scanner = new Scanner(System.in); + System.out.print("\nВведіть діапазон швидкості автомобіля:\nвід "); + float speed_down = scanner.nextFloat(); + System.out.print("до "); + float speed_up = scanner.nextFloat(); + System.out.println("Автомобілі із заданою швидкістю:"); + for (Car Car : CarList) { + if ((Car.speed >= speed_down) && (Car.speed <= speed_up)) { + + System.out.println(Car._model + ": " + Car.speed + " км/год"); + } + } + } + +} + diff --git a/lab6/src/lab6/Peguot.java b/lab6/src/lab6/Peguot.java new file mode 100644 index 0000000..0f600c9 --- /dev/null +++ b/lab6/src/lab6/Peguot.java @@ -0,0 +1,17 @@ +package lab6; + +public class Peguot extends Car { + + public String mark = "Peguot"; + + public Peguot(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Peguot"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Skoda.java b/lab6/src/lab6/Skoda.java new file mode 100644 index 0000000..ac8076c --- /dev/null +++ b/lab6/src/lab6/Skoda.java @@ -0,0 +1,17 @@ +package lab6; + +public class Skoda extends Car { + + public String mark = "Skoda"; + + public Skoda(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Skoda\nМатеринська компанія: Volkswagen"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Toyota.java b/lab6/src/lab6/Toyota.java new file mode 100644 index 0000000..aba7de8 --- /dev/null +++ b/lab6/src/lab6/Toyota.java @@ -0,0 +1,17 @@ +package lab6; + +public class Toyota extends Car { + + public String mark = "Toyota"; + + public Toyota(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Toyota"); + super.printValues(); + } + +} diff --git a/lab6/src/lab6/Volkswagen.java b/lab6/src/lab6/Volkswagen.java new file mode 100644 index 0000000..81e8228 --- /dev/null +++ b/lab6/src/lab6/Volkswagen.java @@ -0,0 +1,17 @@ +package lab6; + +public class Volkswagen extends Car { + + public String mark = "Volkswagen"; + + public Volkswagen(String _model, float speed, int price, int year, float fuel, float engineCapacity, String country) { + super(_model, speed, price, year, fuel, engineCapacity, country); + } + + @Override + public void printValues() { + System.out.println("Марка: Volkswagen"); + super.printValues(); + } + +}