mirror of
https://github.com/ASDjonok/OOP_IO-2x_2023.git
synced 2026-04-01 21:21:50 +03:00
Compare commits
3 Commits
ІО-21/31-Ц
...
master_old
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
399941844f | ||
|
|
f385bff73d | ||
|
|
6d8171ad4c |
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" 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" />
|
||||
</component>
|
||||
</project>
|
||||
58
src/Lab1.java
Normal file
58
src/Lab1.java
Normal file
@@ -0,0 +1,58 @@
|
||||
public class Lab1 {
|
||||
public static void main(String[] args) {
|
||||
// char c = 'a' + '1';
|
||||
char c = 97;
|
||||
// char c = '1';
|
||||
System.out.println(c);
|
||||
System.out.println((int) c);
|
||||
c++;
|
||||
System.out.println(c);
|
||||
System.out.println((int) c);
|
||||
System.out.println((double)'1'/'3');
|
||||
|
||||
// System.out.println( (double) 0 / 0 );
|
||||
// System.out.println( Math.sqrt(-1) );
|
||||
double s = 0;
|
||||
/*for (int i = 1; i <= 3; i++) { // 1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> i = 1, 2) <20><><EFBFBD><EFBFBD> <20> <= 3, 3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䳿 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
System.out.println(i); // 4) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> 1, 5) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 2
|
||||
// s = s + i;
|
||||
s += i;
|
||||
}*/
|
||||
/*int[] array = new int[2];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
|
||||
}*/
|
||||
final int A = -3;
|
||||
final int B = 0;
|
||||
final int N = 2;
|
||||
final int M = 2;
|
||||
|
||||
final int C = 1;
|
||||
// boolean wasDivisionByZero = false;
|
||||
// todo char
|
||||
// todo[clear code] think about avoiding brackets
|
||||
if ((A <= -C && -C <= N) || (B <= 0 && 0 <= M)) {
|
||||
System.out.println("Division by zero!");
|
||||
return;
|
||||
}
|
||||
/*myLabel:*/for (int i = A; i <= N /*&& !wasDivisionByZero*/; i++) {
|
||||
/*if (i + C == 0) { // todo optimize
|
||||
System.out.println("Division by zero!");
|
||||
wasDivisionByZero = true;
|
||||
break; //todo flag vs return;
|
||||
}*/
|
||||
for (int j = B; j <= M; j++) {
|
||||
/*if (j == 0) {
|
||||
System.out.println("Division by zero!");
|
||||
return;
|
||||
// wasDivisionByZero = true;
|
||||
// break myLabel;
|
||||
}*/
|
||||
s += (double) (i / j) / (i + C);
|
||||
}
|
||||
}
|
||||
// if (!wasDivisionByZero) {
|
||||
System.out.println("s = " + s);
|
||||
// }
|
||||
}
|
||||
}
|
||||
102
src/Lab2.java
Normal file
102
src/Lab2.java
Normal file
@@ -0,0 +1,102 @@
|
||||
public class Lab2 {
|
||||
public static void main(String[] args) {
|
||||
final int A = 2;
|
||||
final int[][] MATRIX_B = {
|
||||
{1, 202, 1, 1, 202, 3, 1, 202, 3,},
|
||||
{1, 202, 1, 1, 202, 3, 1, 202, 3,},
|
||||
{1, 1, 3, 1, 202, 3, 1, 202, 3,},
|
||||
// {4, 5, 6,},
|
||||
};
|
||||
|
||||
int[][] MATRIX_C = multiplication(A, MATRIX_B);
|
||||
|
||||
print(MATRIX_C);
|
||||
|
||||
System.out.println("Sum of smallest elements in every column: " + sumOfSmallestElementsInEveryColumn(MATRIX_C));
|
||||
|
||||
/*int[] array = {1, 2, 3};
|
||||
int[] array2 = new int[3];
|
||||
Object[] array3 = new String[3];
|
||||
System.out.println(array3[0]); //nothing, trash from the memory, null || null
|
||||
System.out.println(array2[0]); //nothing, trash from the memory, null || 0
|
||||
System.out.println(array[0]); // || 1
|
||||
|
||||
int[][] matrix2 = new int[2][3];
|
||||
matrix2[0] = new int[2];
|
||||
matrix2[1] = new int[1];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
if (i % 2 == 0) {
|
||||
System.out.println("!" + array[i]);
|
||||
} else {
|
||||
System.out.println("?" + array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < array.length; i+=2) {
|
||||
System.out.println("!" + array[i]);
|
||||
}
|
||||
|
||||
for (int i = 1; i < array.length; i+=2) {
|
||||
System.out.println("?" + array[i]);
|
||||
}
|
||||
|
||||
// зубчасті матриці
|
||||
int[][] matrix = {
|
||||
{1, 2},
|
||||
{3}
|
||||
};
|
||||
|
||||
// C=a×B, a - const
|
||||
|
||||
|
||||
// final int[][] MATRIX_C = int;
|
||||
|
||||
|
||||
MATRIX_B[0][0] = 2;
|
||||
MATRIX_B[0] = new int[]{1, 2};
|
||||
System.out.println(MATRIX_B[0][0]);
|
||||
MATRIX_B = new int[][]{
|
||||
{1, 2},
|
||||
{3}
|
||||
};*/
|
||||
}
|
||||
|
||||
private static int sumOfSmallestElementsInEveryColumn(final int[][] MATRIX_C) {
|
||||
// todo check different length of rows
|
||||
// todo try to change i and j
|
||||
// todo check repetition of minimal elements
|
||||
int sum = 0;
|
||||
for (int i = 0; i < MATRIX_C[0].length; i++) {
|
||||
int tmpSmallest = MATRIX_C[0][i];
|
||||
for (int j = 1; j < MATRIX_C.length; j++) {
|
||||
if (MATRIX_C[j][i] < tmpSmallest) {
|
||||
tmpSmallest = MATRIX_C[j][i];
|
||||
}
|
||||
}
|
||||
sum += tmpSmallest;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
private static void print(final int[][] MATRIX_C) {
|
||||
for (int i = 0; i < MATRIX_C.length; i++) {
|
||||
for (int j = 0; j < MATRIX_C[i].length; j++) {
|
||||
// System.out.print(MATRIX_C[i][j] + "\t");//printf("%4d",
|
||||
System.out.printf("%4d ", MATRIX_C[i][j]);//printf("%4d",
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
private static int[][] multiplication(int A, final int[][] MATRIX_B) {
|
||||
final int[][] MATRIX_C = new int[MATRIX_B.length][/*MATRIX_B[0].length*/]; // todo !!!DANGER different lengths of rows
|
||||
// final int[][] MATRIX_C = MATRIX_B;
|
||||
for (int i = 0; i < MATRIX_B.length; i++) {
|
||||
MATRIX_C[i] = new int[MATRIX_B[i].length];
|
||||
for (int j = 0; j < MATRIX_B[i].length; j++) {
|
||||
MATRIX_C[i][j] = MATRIX_B[i][j] * A;
|
||||
}
|
||||
}
|
||||
return MATRIX_C;
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
Reference in New Issue
Block a user