2022-fall-computer-science

Практика

Разминка

  1. Создайте в своём репозитории 2022-polytech-%фамилия% директорию 06_pointers_references
  2. Cоздайте пустой README.md файл
  3. В директории 06_pointers_references/intro создайте cmake-проект
  4. Завершите программу, написав функцию, которая возвращает длину строки
#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;
}
  1. Отправьте решение на GitHub

Задание

Палиндром

  1. В директории 06_pointers_references/palindrome создайте cmake-проект
  2. Напишите функцию, которая проверяе является ли строка палиндромом (примеры палиндромов: https://www.dictionary.com/e/palindromic-word/), функция должна возвращать булевое значение
  3. Приведите тесты с помощью assert (не забудьте проверить nullptr и пустую строку)
  4. Отправьте решение на GitHub

Умножение

  1. В директории 06_pointers_references/mul создайте cmake-проект
  2. Напишите функцию, которая перемножает два числа, представленных в виде строк, результат тоже должен возвращаться в виде строки const char* mul(const char* a, const char* b) (напрмиер, mul(“2”, “3”) возвращает “6”)
  3. Библиотечные функции использовать нельзя
  4. Приведите тесты с помощью assert
  5. Отправьте решение на GitHub

Домашнее задание

  1. В директории 06_pointers_references/matmul создайте cmake-проект
  2. Напишите функцию, которая перемножает две матрицы m x n (см. матричное умножение), void matmul(int** a, int m_a, int n_a, int** b, int m_b, int n_b, int** c)
  3. Напишите функцию, которая проверяет равенство двух матриц bool mateq(int** a, int m_a, int n_a, int** b, int m_b, int n_b)
  4. Библиотечные функции использовать нельзя
  5. Приведите тесты матричного умножения с помощью assert и mateq
  6. Оцените сложность матричного умножения, запишите результат в README.md файл
  7. Отправьте решение на GitHub

Комментарии