Реализуйте функцию stringCopy
char* stringCopy(const char*);
const char * p = "some string";
char * newString = stringCopy(p);
p[0] = 'S';
std::cout << p << std::endl; // Some string
std::cout << newString << std::endl; // some string
Реализуйте функцию stringConcatinate
char* stringConcatinate(const char*, const char*);
const char * p = "Hello,";
const char * p1 = " world!";
char * newString = stringConcatinate(p, p1);
p[0] = 'S';
p1[0] = 'S';
std::cout << newString << std::endl; // Hello, world!
struct Matrix
{
float ** matrix;
int n;
int m;
};
Реализуйте функцию создания двумерного массива newMatrix
Matrix newMatrix(int, int);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m); // создаем матрицу N x M
Реализуйте функцию освобождения двумерного массива deleteMatrix
void deleteMatrix(Matrix&);
int n = 10;
int m = 15;
Matrix matrix = newMatrix(n, m); // создаем матрицу N x M
deleteMatrix(matrix); // освобождаем память
bool b = matrix.matrix == nullptr; // true
// matrix.n == 0
// matrix.m == 0
Реализуйте функцию заполнения матрицы N x M
змейкой
0 | 1 | 5 | 6 | ... |
---|---|---|---|---|
2 | 4 | 7 | ... | ... |
3 | 8 | ... | ... | ... |
9 | ... | ... | ... | ... |
void snake(Matrix&);
int n = 10;
int m = 15;
Matrix matrix = newMatrix(n, m);
snake(matrix);
deleteMatrix(matrix);
Реалезуйте функцию копирования матрицы
Matrix copy(const Matrix&);
int n = 10;
int m = 10;
Matrix matrixA = newMatrix(n, m);
// ...
Matrix matrixB = copy(matrixA);
deleteMatrix(matrixA);
deleteMatrix(matrixB);
Реализуйте функцию транспонирования матрицы
Matrix transpose(const Matrix&);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m);
// ...
Matrix matrixT = transpose(matrix);
deleteMatrix(matrix);
Реализуйте функцию нахождения обратной матрицы
Matrix inverse(const Matrix&);
int n = 10;
Matrix matrix = newMatrix(n, n);
// ...
Matrix inv = inverse(matrix);
deleteMatrix(matrix);
Реализуйте функцию нахождения определителя матрицы
float determinant(const Matrix&);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m);
// ...
float d = determinant(matrix);
deleteMatrix(matrix);
Реализуйте функцию создания единичной матрицы
Matrix ones(int n);
int n = 10;
int m = 10;
Matrix matrix = ones(n);
float d = determinant(matrix);
// d == 1
deleteMatrix(matrix);
Реализуйте функцию перемножения матриц
Matrix mult(const Matrix&, const Matrix&);
int n = 10;
int m = 10;
int k = 10;
Matrix matrixOne = newMatrix(n, m);
Matrix matrixTwo = newMatrix(m, k);
// ...
Matrix matrixThree = mult(matrixOne, matrixTwo);
// ...
deleteMatrix(matrixOne);
deleteMatrix(matrixTwo);
deleteMatrix(matrixThree);
Реализуйте функцию сравнения матриц
bool equal(const Matrix&, const Matrix&);
int n = 10;
Matrix matrixOne = newMatrix(n, m);
Matrix matrixTwo = newMatrix(n, m);
// ...
bool d = equal(matrixOne, matrixTwo);
deleteMatrix(matrixOne);
deleteMatrix(matrixTwo);