Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/DynamicArrays_Tasks.txt b/pract_SI/Pract. 08/Dynamic_arrays/DynamicArrays_Tasks.txt
new file mode 100644
index 0000000..8f83e5d
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/DynamicArrays_Tasks.txt
@@ -0,0 +1,16 @@
+#Никола Светославов - Dynamic Arrays
+
+## Задачи
+
+1.Напишете програма, която въвежда от клавиатурата цяло число N и след това създава масив с размер N.
+2.Напишете програма, която въвежда от клавиатурата цели числа N и M и след това създава матрица с размер NxM.
+3.Напишете програма, която въвежда от клавиатурата цели числа N, M, Q и след това създава триизмерен масив с размер NxMxQ.
+4.Напишете функция, която приема като параметър два едномерни сортирани целочислени масива с елементи от тип int и връща като резултат трети масив
+(който съдържа всички елементи на двата масива и само тях), който също е сортиран. Предполага се, че входните масиви са сортирани преди да се извика написаната от вас функция.
+
+5.Напишете програма, която намира сумата на елементите над главния диагонал на квадратна матрица NxN, където N се въвежда от потребителя.
+6.Напишете функция, която приема като параметър матрица NxM и връща транспонирата й матрица.
+7.Напишете функция, която приема като параметър матрица NxM и матрица PxQ и връща тяхното матрично произведение.
+ *Note: NxM . PxQ = NxQ , тоест трябва m == p*
+8.Напишете програма, която приема 2 матрици от конзолата(2 x 2D arrays).
+ Напишете функция, която сравнява 2-те матрици елемент по елемент и връща true, ако са еднакви(аналогично false ако не са). \ No newline at end of file
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/task1.cpp b/pract_SI/Pract. 08/Dynamic_arrays/task1.cpp
new file mode 100644
index 0000000..f02632e
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/task1.cpp
@@ -0,0 +1,39 @@
+#include <iostream>
+#define SEPARATOR " ";
+using namespace std;
+
+int* createArray(size_t N)
+{
+ int* arr = new int[N];
+
+ for (size_t i = 0; i < N; i++)
+ arr[i] = NULL;
+
+ return arr;
+}
+
+void initialize(int *arr,size_t size)
+{
+ for (size_t i = 0; i < size; i++)
+ cin >> arr[i];
+}
+
+void print(int *arr, size_t size)
+{
+ for (size_t i = 0; i < size; i++)
+ cout << arr[i] << SEPARATOR;
+}
+
+void Free(int *arr)
+{
+ delete[] arr;
+}
+
+int main()
+{
+ int N; cin >> N;
+ int *arr = createArray(N);
+ initialize(arr, N);
+ print(arr, N);
+ free(arr);
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/task2.cpp b/pract_SI/Pract. 08/Dynamic_arrays/task2.cpp
new file mode 100644
index 0000000..0a9ddb0
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/task2.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+using namespace std;
+
+int** createMatrix(size_t rows, size_t columns)
+{
+ int **matrix = new int*[rows]; //Step 1
+
+ for (size_t i = 0; i < rows; i++) //step2
+ matrix[i] = new int[columns];
+
+ for (size_t i = 0; i < rows; i++)
+ for (size_t y = 0; y < columns; y++)
+ matrix[i][y] = NULL; //default initialization
+
+ return matrix;
+}
+
+void initialize(int **matrix, size_t rows, size_t columns)
+{
+ for (size_t i = 0; i < rows; i++)
+ for (size_t y = 0; y < columns; y++)
+ cin >> matrix[i][y];
+}
+void print(int **matrix, size_t rows, size_t columns)
+{
+ for (size_t i = 0; i < rows; i++)
+ {
+ for (size_t y = 0; y < columns; y++)
+ {
+ cout << matrix[i][y] << " ";
+ }
+ cout << endl;
+ }
+}
+void free(int **matrix, size_t rows)
+{
+ for (size_t i = 0; i < rows; i++)
+ delete[] matrix[i];
+
+ delete[] matrix;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/task5.cpp b/pract_SI/Pract. 08/Dynamic_arrays/task5.cpp
new file mode 100644
index 0000000..721ca93
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/task5.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+using namespace std;
+
+int** createMatrix(size_t size)
+{
+ int **matrix = new int*[size];
+
+ for (size_t i = 0; i < size; i++)
+ matrix[i] = new int[size];
+
+ for (size_t i = 0; i < size; i++)
+ for (size_t y = 0; y < size; y++)
+ cin >> matrix[i][y];
+
+ return matrix;
+}
+
+int sumAboveMainDiagonal(int **matrix, size_t size)
+{
+ int sum = 0;
+ for (size_t i = 0; i < size - 1; i++)
+ for (size_t j = i + 1; j < size; j++)
+ sum += matrix[i][j];
+
+ return sum;
+}
+
+/*
+int sumOfMainDiagonal(int **matrix, size_t size)
+{
+ int sum = 0;
+ for (size_t i = 0; i < size; i++)
+ sum += matrix[i][i];
+
+ return sum;
+}
+*/ \ No newline at end of file
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/task6.cpp b/pract_SI/Pract. 08/Dynamic_arrays/task6.cpp
new file mode 100644
index 0000000..ecf95d9
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/task6.cpp
@@ -0,0 +1,20 @@
+#include <iostream>
+
+int** transposition(int **matrix, size_t _rows, size_t _columns)
+{
+ int rows = _columns;
+ int columns = _rows;
+
+ int** result = new int*[rows]; //result = transposition of matrix (columnsxrows)
+
+ for (size_t i = 0; i < rows; i++)
+ result[i] = new int[columns];
+
+ for (size_t i = 0; i < rows; i++)
+ {
+ for (size_t y = 0; y < columns; y++)
+ result[i][y] = matrix[y][i];
+ }
+
+ return result;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 08/Dynamic_arrays/task7.cpp b/pract_SI/Pract. 08/Dynamic_arrays/task7.cpp
new file mode 100644
index 0000000..3e430f5
--- /dev/null
+++ b/pract_SI/Pract. 08/Dynamic_arrays/task7.cpp
@@ -0,0 +1,28 @@
+#include <iostream>
+using namespace std;
+
+int** createMatrix(size_t rows, size_t columns)
+{
+ int **matrix = new int*[rows]; //Step 1
+
+ for (size_t i = 0; i < rows; i++) //step2
+ matrix[i] = new int[columns];
+
+ for (size_t i = 0; i < rows; i++)
+ for (size_t y = 0; y < columns; y++)
+ matrix[i][y] = NULL; //default initialization
+
+ return matrix;
+}
+
+int** multiplyMatrix(int **A,size_t a_rows,size_t a_col, int **B,size_t b_rows,size_t b_col) //A && B are matrixes
+{
+ int** multiply = createMatrix(a_rows, b_col); //a_rows x b_col -> all Zero's
+
+ for (size_t i = 0; i < a_rows; i++)
+ for (size_t y = 0; y < b_col; y++)
+ for (size_t k = 0; k < a_rows; k++)
+ multiply[i][y] += A[i][k] * B[k][i];
+
+ return multiply;
+} \ No newline at end of file