Skip to content

Instantly share code, notes, and snippets.

@drewxa
Last active November 17, 2017 09:43
Show Gist options
  • Save drewxa/1fe312137483fdf1a7d7a8aacbd4009d to your computer and use it in GitHub Desktop.
Save drewxa/1fe312137483fdf1a7d7a8aacbd4009d to your computer and use it in GitHub Desktop.

Задание 1

Реализуйте функцию 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

Задание 2

Реализуйте функцию 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;
};

Задание 3

Реализуйте функцию создания двумерного массива newMatrix

Matrix newMatrix(int, int);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m); // создаем матрицу N x M

Задание 4

Реализуйте функцию освобождения двумерного массива 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

Задание 5

Реализуйте функцию заполнения матрицы 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);

Задание 6

Реалезуйте функцию копирования матрицы

Matrix copy(const Matrix&);
int n = 10;
int m = 10;
Matrix matrixA = newMatrix(n, m);
// ...
Matrix matrixB = copy(matrixA);
deleteMatrix(matrixA);
deleteMatrix(matrixB);

Задание 7

Реализуйте функцию транспонирования матрицы

Matrix transpose(const Matrix&);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m);
// ...
Matrix matrixT = transpose(matrix);
deleteMatrix(matrix);

Задание 8

Реализуйте функцию нахождения обратной матрицы

Matrix inverse(const Matrix&);
int n = 10;
Matrix matrix = newMatrix(n, n);
// ...
Matrix inv = inverse(matrix);
deleteMatrix(matrix);

Задание 9

Реализуйте функцию нахождения определителя матрицы

float determinant(const Matrix&);
int n = 10;
int m = 10;
Matrix matrix = newMatrix(n, m);
// ...
float d = determinant(matrix);
deleteMatrix(matrix);

Задание 10

Реализуйте функцию создания единичной матрицы

Matrix ones(int n);
int n = 10;
int m = 10;
Matrix matrix = ones(n);
float d = determinant(matrix);
// d == 1
deleteMatrix(matrix);

Задание 11

Реализуйте функцию перемножения матриц

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);

Задание 12

Реализуйте функцию сравнения матриц

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);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment