Conversation
|
|
||
| int64_t Addition(int a, int b) { | ||
| throw std::runtime_error{"Not implemented"}; | ||
| int64_t c=static_cast<int64_t>(a)+static_cast<int64_t>(b); |
There was a problem hiding this comment.
лишняя переменная, отсутствуют пробелы вокруг операторов, лишний каст. второй операнд кастовать не нужно, поскольку сработает неявное приведение к нужному типу, нужно использовать такую возможность и не писать лишний код
|
|
||
| size_t CharChanger(char array[], size_t size, char delimiter = ' ') | ||
| { | ||
| char array_fin[size]={}; |
|
|
||
| for (size_t i = 0; i < size-1; ++i) | ||
| { | ||
|
|
| throw std::runtime_error{"Not implemented"}; | ||
| size_t temp_ptr = 0; // переменная для хранения текущего положения данных в массиве | ||
|
|
||
| for (size_t i = 0; i < size-1; ++i) |
| ++temp_ptr; | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
очень много лишнего кода и дублирование
|
|
||
|
|
||
|
|
||
|
|
| throw std::runtime_error{"Not implemented"}; | ||
| uint8_t value = static_cast<uint8_t>(flags); | ||
|
|
||
| if (value > 0b00111111) { // Если установлены биты вне диапазона 0-5 |
There was a problem hiding this comment.
magic value для этого есть ALL
| return value* 2.54L; | ||
| }; | ||
| constexpr long double operator""_ft_to_cm(long double value) { | ||
| return value *30.48L; |
There was a problem hiding this comment.
Очень много magic value и лишних литералов, все нужно выразить через константы которым дать осмысленные имена, например для 12, 2.54 и 30.48, достаточно для преобразований
| throw std::runtime_error{"Not implemented"}; | ||
| std::cout << "0b"; | ||
|
|
||
| for (int i = 8*bytes - 1; i >= 0; --i) |
| std::cout << "no solutions"; | ||
| } | ||
| } else { | ||
| std::cout << static_cast<double>(-c) / static_cast<double>(b); |
There was a problem hiding this comment.
лишний каст, достаточно сделать один
| if (a == 0) { | ||
| if (b == 0) { | ||
| if (c == 0) { | ||
| std::cout << "infinite solutions"; |
There was a problem hiding this comment.
лучше не делать такую вложенность, а объединить соответствующие условия для отдельных случаев и сделать короткие ветви с выводом нужного текста и выхода из функции
| { | ||
| std::cout << std::setprecision(6) << (-b - std::sqrt(discr)) / (2.0 * a); | ||
|
|
||
| } |
There was a problem hiding this comment.
аналогично, лучше вынести условие когда дискриминант равен нулю и выполнить короткую ветвь с выходом для одного корня, после чего выделить отсутствие решения, а уже потом, без лишней проверки и вложенности случай с двумя корнями
| sum += values[i]*values[i]; | ||
| } | ||
|
|
||
| return static_cast<double>(std::sqrt(sum/static_cast<double> (size))); |
There was a problem hiding this comment.
лишние пробелы и недостающие пробелы
| @@ -0,0 +1,16 @@ | |||
| #include <stdexcept> | |||
|
|
|||
| double ApplyOperations(double a, double b, double (*func[])(double x, double y), size_t size) | |||
There was a problem hiding this comment.
Задачи второй и третьей недели прокоментированы через ПР в основной репозиторий
не смог запустить тесты на своем компе. периодически коммитил для того, чтобы посмотреть, прошел ли тесты. по итогу к char_changer дописал функцию main, в которой перебирал тестовые значения. изначально выделял память под массив, сейчас сделал его на стеке. если стоит опасаться переполнения - могу переписать так, чтобы выделялась память на массив из кучи