- Создайте в своём репозитории
2022-polytech-%фамилия%
директорию06_pointers_references
- Cоздайте пустой
README.md
файл - В директории
06_pointers_references/intro
создайте cmake-проект - Завершите программу, написав функцию, которая возвращает длину строки
#include <cassert>
unsigned int length(const char* str)
{
// Решение тут
}
int main()
{
assert(length("a") == 1);
assert(length("ab") == 2);
assert(length("") == 0);
assert(length("hello world") == 11);
assert(length(nullptr) == 0);
return 0;
}
- Отправьте решение на GitHub
- В директории
06_pointers_references/palindrome
создайте cmake-проект - Напишите функцию, которая проверяе является ли строка палиндромом (примеры палиндромов: https://www.dictionary.com/e/palindromic-word/), функция должна возвращать булевое значение
- Приведите тесты с помощью assert (не забудьте проверить
nullptr
и пустую строку) - Отправьте решение на GitHub
- В директории
06_pointers_references/mul
создайте cmake-проект - Напишите функцию, которая перемножает два числа, представленных в виде строк, результат тоже должен возвращаться в виде строки
const char* mul(const char* a, const char* b)
(напрмиер, mul("2", "3") возвращает "6") - Библиотечные функции использовать нельзя
- Приведите тесты с помощью assert
- Отправьте решение на GitHub
- В директории
06_pointers_references/matmul
создайте cmake-проект - Напишите функцию, которая перемножает две матрицы
m x n
(см. матричное умножение),void matmul(int** a, int m_a, int n_a, int** b, int m_b, int n_b, int** c)
- Напишите функцию, которая проверяет равенство двух матриц
bool mateq(int** a, int m_a, int n_a, int** b, int m_b, int n_b)
- Библиотечные функции использовать нельзя
- Приведите тесты матричного умножения с помощью
assert
иmateq
- Оцените сложность матричного умножения, запишите результат в
README.md
файл - Отправьте решение на GitHub
Комментарии
- В этом файле есть опечатки, вы можете их исправить через pull request.
- Всю работу удобно вести в отдельной ветке и затем влить готовый результат в основную ветку.