diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..6a85229 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++.exe build active file", + "command": "C:\\MinGW\\bin\\g++.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/HomeWorks/HW1.cpp b/HomeWorks/HW1.cpp new file mode 100644 index 0000000..c3a4248 --- /dev/null +++ b/HomeWorks/HW1.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +int main01() +{ + int a, b, c; + cout << "a="; + cin >> a; + cout << "b="; + cin >> b; + /* //A + c=a; + a=b; + b=c;*/ + + /* //B + a+=b; + b=a-b; + a-=b;*/ + + /* //C + a*=b; + b=a/b; + a/=b;*/ + return 0; + +} \ No newline at end of file diff --git a/HomeWorks/HW13.cpp b/HomeWorks/HW13.cpp new file mode 100644 index 0000000..498b3dc --- /dev/null +++ b/HomeWorks/HW13.cpp @@ -0,0 +1,137 @@ +#include +using namespace std; + +#define Element int + +struct ArrayStack +{ + Element* data; + int n; + int sp; +}; + +void arrStackCreate(ArrayStack*& stack, int n) +{ + stack = new ArrayStack(); + stack->data = new int[n]; + stack->n = n; + stack->sp = -1; + for (int i = 0; i < n; i++) + { + stack->data[i] = 0; + } +} + + +bool arrStackPush(ArrayStack* stack, Element element) +{ + bool result = (stack->sp < stack->n - 1); + if (result) + { + stack->sp++; + stack->data[stack->sp] = element; + } + return result; +} + + +bool arrStackPushs(ArrayStack* stack, Element* element, int n) +{ + bool result = true; + for (int i = 0; result && (i < n); i++) + { + result = arrStackPush(stack, element[i]); + } + if (!result) + { + cout << "ERROR: Stack Overflow" << endl; + } + return result; +} + +bool arrStackIsEmpty(ArrayStack* stack) +{ + return (stack->sp < 0); +} + +Element* arrStackPop(ArrayStack* stack, bool* result = NULL) +{ + Element* element = NULL; + bool status = arrStackIsEmpty(stack); + if (result == NULL) + { + result = &status; + } + else + { + *result = status; + } + if (!*result) + { + element = &stack->data[stack->sp]; + stack->sp--; + } + return element; +} + +void arrStackDelete(ArrayStack* stack) +{ + delete[] stack->data; + delete stack; +} + +void arrStackPrint(ArrayStack* stack, const char* Message) +{ + cout << "\nStack: " << Message << endl; + cout << "n = " << stack->n << endl; + cout << "sp = " << stack->sp << endl; + for (int i = 0; i <= stack->sp; i++) + { + cout << "element[" << i << "] = " << stack->data[i] << endl; + } +} +void arrPrintStack(ArrayStack* stack) { + int size = stack->n; + if (size == 0) { + cout << "Stack is empty" << endl; + return; + } + for (int i = 0; i < size; i++) { + cout << stack->data[i] << " "; + } + cout << endl; +} + +int main() +{ + int n1 = 12, n2 = 10, n3 = n1 + n2; + ArrayStack* stack1 = NULL; + ArrayStack* stack2 = NULL; + ArrayStack* stack3 = NULL; + Element* elemArray1 = new Element[n1]{ 2, 2, 3, 4, 3, 6, 7, 1, 9, 10,66,101 }; + Element* elemArray2 = new Element[n2]{ 7, 2, 4, 4, 5, 6, 7, 8, 9, 10 }; + arrStackCreate(stack1, n1); + arrStackCreate(stack2, n2); + arrStackCreate(stack3, n3); + arrStackPushs(stack1, elemArray1, n1); + arrStackPushs(stack2, elemArray2, n2); + arrStackPushs(stack3, elemArray1, n1); + arrStackPushs(stack3, elemArray2, n2); + //arrStackPrint(stack1, "After Add Array of Elements"); + cout << "stack 1 = "; + arrPrintStack(stack1); + cout << "stack 2 = "; + arrPrintStack(stack2); + cout << "stack 3 = "; + while (!arrStackIsEmpty(stack3)) + { + cout << *arrStackPop(stack3)<< " "; + } + cout << endl; + arrStackDelete(stack1); + arrStackDelete(stack2); + arrStackDelete(stack3); + // + cout << "\ndone" << endl; + return 0; +} \ No newline at end of file diff --git a/HomeWorks/HW14.cpp b/HomeWorks/HW14.cpp new file mode 100644 index 0000000..c07a4e2 --- /dev/null +++ b/HomeWorks/HW14.cpp @@ -0,0 +1,59 @@ +#include +using namespace std; + +class Queue { + int size; + int* queue; + +public: + Queue() { + size = 0; + queue = new int[100]; + } + void add(int data) { + queue[size] = data; + size++; + } + void remove() { + if (size == 0) { + cout << "Queue is empty" << endl; + return; + } + else { + for (int i = 0; i < size - 1; i++) { + queue[i] = queue[i + 1]; + } + size--; + } + } + void print() { + if (size == 0) { + cout << "Queue is empty" << endl; + return; + } + for (int i = 0; i < size; i++) { + cout << queue[i] << " <- "; + } + cout << endl; + } + Queue operator+(Queue& obj) { + Queue q3; + q3.size = this->size; + q3.queue = this->queue; + for (int i = 0; i < obj.size; i++) { + q3.add(obj.queue[i]); + } + return q3; + } +}; + +int main() { + Queue q1; + q1.add(42); q1.add(2); q1.add(8); q1.add(1); + Queue q2; + q2.add(3); q2.add(66); q2.add(128); q2.add(5); q2.add(16); q2.add(2222); + Queue q3 = q1 + q2; + q3.print(); + + return 0; +} \ No newline at end of file diff --git a/HomeWorks/HW2.cpp b/HomeWorks/HW2.cpp new file mode 100644 index 0000000..da8def4 --- /dev/null +++ b/HomeWorks/HW2.cpp @@ -0,0 +1,16 @@ +#include +using namespace std; + +int main02(){ + int year; + cout << "year : "; + cin >> year; + if(year%4==0){ + if(year%100==0 && year%400==0) cout << "A leap year\n"; + else if(year%100!=0) cout << "A leap year\n"; + else cout << "Is not a leap year\n"; +} + else cout << "Is not a leap year\n"; + system("PAUSE"); + return 0; +} \ No newline at end of file diff --git a/HomeWorks/HW3_1.cpp b/HomeWorks/HW3_1.cpp new file mode 100644 index 0000000..30a8cf3 --- /dev/null +++ b/HomeWorks/HW3_1.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +int main03() +{ + int n, sum = 1, temp_sum = 0, count = 0, l = 1; + cout << "n="; + cin >> n; + for (int i = 1; i <= n; i++) { + if (count == l) { + sum *= temp_sum; + cout << "tem_sum1 = " << temp_sum << " i=" << i << endl; + temp_sum = 0; + count = 0; + l++; + } + if (i == n) { + temp_sum += i; + sum *= temp_sum; + cout << "tem_sum2 = " << temp_sum << " i=" << i << endl; + } + count++; + temp_sum += i; + cout << "tem_sum4 = " << temp_sum << " i=" << i<< endl; + } + cout << "sum=" << sum; +} diff --git a/HomeWorks/HW3_2.cpp b/HomeWorks/HW3_2.cpp new file mode 100644 index 0000000..1d72557 --- /dev/null +++ b/HomeWorks/HW3_2.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; + +int fact(int n); + +int main04() +{ + int n, sum = 0, factor_sum, count = 0, l = 1; + cout << "n="; + cin >> n; + for (int i = 1; i <= n; i++) { + factor_sum = fact(i); + sum += factor_sum; + } + cout << "sum=" << sum; + +} + +int fact(int n) { + int fact_sum = 1; + for (int i = 1; i <= n; i++) { + fact_sum *= i; + } + return fact_sum; + +} diff --git a/HomeWorks/HW3_3.cpp b/HomeWorks/HW3_3.cpp new file mode 100644 index 0000000..63d126d --- /dev/null +++ b/HomeWorks/HW3_3.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; + +int fact(int n,int l); + +int main05() +{ + unsigned long long int n, sum = 0; + cout << "n="; + cin >> n; + for (int i = 1; i <= n; i++) { + cout << "sum= " << sum << endl; + sum += fact(i*i,i); + } + + cout << "sum=" << sum; + return 0; +} + +int fact(int n,int l) { + int fact_sum = 1; + for (int i = l; i <= n; i++) { + fact_sum *= i; + } + return fact_sum; +} diff --git a/HomeWorks/HW4.cpp b/HomeWorks/HW4.cpp new file mode 100644 index 0000000..7f686ca --- /dev/null +++ b/HomeWorks/HW4.cpp @@ -0,0 +1,62 @@ +#include +using namespace std; + +void create_matr(int n, int** matrix); +void print_matr(int n, int** matrix); +void sum_matr(int** matr1, int** matr2, int** matr3, int** matr_result, int n); +void fill_matr(int n, int** matrix); + +int main05() +{ + int n; + cout << "n="; + cin >> n; + int** A = new int* [n]; + int** B = new int* [n]; + int** C = new int* [n]; + int** D = new int* [n]; + create_matr(n, A); cout << "Matrix A:" << endl; fill_matr(n, A); + create_matr(n, B); cout << "Matrix B:" << endl; fill_matr(n, B); + create_matr(n, C); cout << "Matrix C:" << endl; fill_matr(n, C); + create_matr(n, D); + sum_matr(A, B, C, D, n); + cout << "Matrix D:" << endl; + print_matr(n,D); + + return 0; +} + +void create_matr(int n, int** matrix) { + for (int i = 0; i < n; i++) + matrix[i] = new int[n]; +} + +void fill_matr(int n, int** matrix) { + unsigned int k; + for (int i = 0; i < n; i++) + for (int j = 0; j < n; j++) { + cin >> k; + matrix[i][j] = k; + } + cout << "\n\n"; +} + + +void print_matr(int n, int** matrix) { + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + cout << matrix[i][j] << " "; + } + cout << endl; + } + cout << "\n\n\n"; +} + +void sum_matr(int** matr1, int** matr2,int** matr3,int**matr_result,int n) { + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + matr_result[i][j] = matr1[i][j] + matr2[i][j] + matr3[i][j]; + } + } + +} diff --git a/HomeWorks/HW5_1_a.cpp b/HomeWorks/HW5_1_a.cpp new file mode 100644 index 0000000..af779d2 --- /dev/null +++ b/HomeWorks/HW5_1_a.cpp @@ -0,0 +1,32 @@ +#include +#include +using namespace std; + +double rec_vkl(int n); + +int main() { + int n; + cout << "n="; + cin >> n; + cout << "sin1 " << sin(1) << endl << "sin2 " << sin(sin(1)) + sin(2) << endl << "sin3 " << sin(sin(sin(1))) + sin(sin(2)) + sin(3) << endl; + cout << "sin4 " << sin(sin(sin(sin(1)))) + sin(sin(sin(2))) + sin(sin(3)) + sin(4) <=1;j--) { + k = sin(k); + } + n--; + sum += k; + } + return sum; +} + diff --git a/HomeWorks/HW5_1_b.cpp b/HomeWorks/HW5_1_b.cpp new file mode 100644 index 0000000..8179708 --- /dev/null +++ b/HomeWorks/HW5_1_b.cpp @@ -0,0 +1,31 @@ +#include +#include +using namespace std; + +double rec_sin1(int n,int k); +double rec_sin2(int n,int k); + +int main() { + int n,k; + cout << "n="; + cin >> n; + k = n; + cout << "sin1 " << sin(1) << endl << "sin2 " << sin(sin(1)) + sin(2) << endl << "sin3 " << sin(sin(sin(1))) + sin(sin(2)) + sin(3) << endl; + cout << "sin4 " << sin(sin(sin(sin(1)))) + sin(sin(sin(2))) + sin(sin(3)) + sin(4)<< endl<< "sin5 "< +using namespace std; + +int recursive_sum(int n); + +int main(){ + int n; + cout << "n="; + cin >> n; + cout << "sum= " << recursive_sum(n) << endl; + system("PAUSE"); + return 0; +} + +int recursive_sum(int n){ + if(n<=2) return n; + return recursive_sum(n-2)+n; + +} \ No newline at end of file diff --git a/HomeWorks/HW6_1.cpp b/HomeWorks/HW6_1.cpp new file mode 100644 index 0000000..6b5dc71 --- /dev/null +++ b/HomeWorks/HW6_1.cpp @@ -0,0 +1,87 @@ +#include +using namespace std; + +void create_matr(int** matrix, int n); +void fill_matr(int** matrix, int n); +void diff_matr(int** matr1, int** matr2, int** matr3, int n); +void square_matr(int** matr1, int** matr2, int n); +void print_matr(int** matr, int n); +void delete_matr(int** matr, int n); + +int main() { + int n; + cout << "n="; + cin >> n; + int** A = new int* [n]; + int** B = new int* [n]; + int** C = new int* [n]; + int** D = new int* [n]; + create_matr(A, n); cout << "Matrix A:" << endl; fill_matr(A, n); + create_matr(B, n); cout << "Matrix B:" << endl; fill_matr(B, n); + create_matr(C, n); + create_matr(D, n); + diff_matr(A, B, C, n); + cout << "Matrix C:" << endl; + print_matr(C, n); + square_matr(C,D, n); + cout << "Matrix C^2:" << endl; + print_matr(D, n); + delete_matr(A, n); + delete_matr(B, n); + delete_matr(C, n); + delete_matr(D, n); + system("PAUSE"); + return 0; +} + +void delete_matr(int** matr, int n) { + for (int i = 0; i < n; i++) + delete[] matr[i]; + delete[] matr; +} + +void create_matr(int** matrix, int n) { + for (int i = 0; i < n; i++) + matrix[i] = new int[n]; +} + +void fill_matr(int** matrix, int n) { + unsigned int k; + for (int i = 0; i < n; i++) + for (int j = 0; j < n; j++) { + cin >> k; + matrix[i][j] = k; + } + cout << "\n\n"; +} + +void print_matr(int** matr, int n) { + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) + cout << matr[i][j] << " "; + cout << endl; + } + cout << endl; +} + +void diff_matr(int** matr1, int** matr2, int** matr3, int n) { + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + matr3[i][j] = matr1[i][j] - matr2[i][j]; + } + } + +} + +void square_matr(int** matr1, int** matr2, int n) { + int sum; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + sum = 0; + for (int k = 0; k < n; k++) { + sum += matr1[i][k] * matr1[k][j]; + } + matr2[i][j] = sum; + } + } +} \ No newline at end of file diff --git a/HomeWorks/HW6_2.cpp b/HomeWorks/HW6_2.cpp new file mode 100644 index 0000000..2386ae7 --- /dev/null +++ b/HomeWorks/HW6_2.cpp @@ -0,0 +1,49 @@ +#include +using namespace std; + +void create_matr(int** matrix, int n); +void fill_matr(int** matrix, int n); +bool diagonal_matr(int** matrix, int n); + +int main() { + int n; + cout << "n="; + cin >> n; + int** A = new int* [n]; + create_matr(A, n); fill_matr(A, n); + if (diagonal_matr(A, n)) cout << "Yes" << endl; + else cout << "No" << endl; + system("PAUSE"); + return 0; +} + +bool diagonal_matr(int** matrix, int n) { + int count = 0, J = 0; + int abs_sum; + for (int i = 0; i < n; i++) { + abs_sum = 0; + for (int j = 0; j < n; j++) { + if (j != i) abs_sum += matrix[i][j]; + } + if (matrix[i][J] >= abs_sum) count++; + J++; + } + cout << "count = " << count << endl; + if (count == n) return true; + return false; +} + +void create_matr(int** matrix, int n) { + for (int i = 0; i < n; i++) + matrix[i] = new int[n]; +} + +void fill_matr(int** matrix, int n) { + unsigned int k; + for (int i = 0; i < n; i++) + for (int j = 0; j < n; j++) { + cin >> k; + matrix[i][j] = k; + } + cout << "\n\n"; +} \ No newline at end of file diff --git a/HomeWorks/HW7_1.cpp b/HomeWorks/HW7_1.cpp new file mode 100644 index 0000000..a9a1967 --- /dev/null +++ b/HomeWorks/HW7_1.cpp @@ -0,0 +1,56 @@ +#include +using namespace std; + +void create_matr(int **matrix,int n); +void fill_matr(int **matrix,int n); +void t_matr(int **matrix1,int** matrix2,int n); +void print_matr(int** matr, int n); + +int main(){ + int n; + cout << "n="; + cin >> n; + int** A = new int* [n]; + int** AT = new int* [n]; + create_matr(A,n); fill_matr(A,n); + create_matr(AT,n); + t_matr(A,AT,n); + cout << "transported matrix:\n"; + print_matr(AT,n); + system("PAUSE"); + return 0; +} + +void t_matr(int **matrix1,int** matrix2,int n){ + for(int i=0;i> k; + matrix[i][j] = k; + } + cout << "\n\n"; +} diff --git a/HomeWorks/HW7_2.cpp b/HomeWorks/HW7_2.cpp new file mode 100644 index 0000000..fab3a74 --- /dev/null +++ b/HomeWorks/HW7_2.cpp @@ -0,0 +1,38 @@ +#include +using namespace std; + +void create_matrix(int ** matrix,int n); +bool symmetrical_matrix(int **matrix,int n); + +int main(){ + int n; + cout << "n="; + cin >> n; + int** A = new int* [n]; + create_matrix(A,n); + if(symmetrical_matrix(A,n)) cout << "Yes, matrix is symmetrical about the diagonal \n"; + else cout << "No matrix is not symmetrical about the diagonal\n"; + system("PAUSE"); + return 0; +} + + +bool symmetrical_matrix(int **matrix,int n){ + for(int i=0;i> k; + matrix[i][j] = k; + } + cout << "\n\n"; +} \ No newline at end of file