Требования к хранению и написанию кода
- Для каждой задачи следует создавать отдельную папку.
- Открывающую фигурную скобку не следует переносить на новую строку. Перед ней должен быть пробел.
- Если после блока
if
следует блок else
, то else
должно быть на той же строке, что и закрывающая скобка блока if
.
if (a >= 0) {
return a;
} else {
return -a;
}
- Каждый блок должен быть заключён в фигурные скобки, даже если он состоит из единственного оператора:
for (int i = 0; i < N; i++) {
value[i]++;
}
- Вложенные блоки следует выделять отступами:
if (!was[to]) {
if (dist[to] > dist[from] + w[from][to]) {
dist[to] = dist[from] + w[from][to];
}
}
- Размер отступа должен составлять два или четрые пробела.
Важное примечание: используйте один и тот же размер отступов внутри всего документа.
- Вокруг знаков арифметических операций ставятся пробелы:
a = b * 5;
Примечание: знаки унарных операций (например b = -a
) пробелами не обособляются.
- Вокруг знака присваивания и составного присваивания ставятся пробелы.
sum += value;
- Вокруг знаков логических операций (
&&, ||, ^, == , >, <=
и т.д.) ставятся пробелы.
- Функции разделяются пустыми строками. Логические блоки внутри функций (например, отдельные циклы, не вложенные друг в друга) разделяются пустыми строками.
- После запятой ставится пробел:
int left, right;
- Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробел не ставится:
void search(int left, int right, int value)
- Каждый новый оператор должен находиться на отдельной строке.
- Переменные разных типов объявляются в разных строках.
- Переменным следует давать осмысленные названия. При этом желательно использовать английские слова (и их сокращения), а не транслитерированные русские
(
double a123, long long summa, int kolvo
— плохие примеры;
long long sum, int cnt
(сокращение от count
) — хорошие).
- Оператор
goto
использовать запрещено!
- Внутри программы не должны встречаться числовые величины, содержащие больше одного знака в десятичной записи: используйте константы.
- Для записи числовых констант, содержащих много знаков в десятичной записи, используйте экспоненциальную форму записи вещественного числа:
const int MAXN = int(1e8); // вместо 100000000
const double EPS = 1e-6; // вместо 0.000001
- Название констант должны быть написаны ЗАГЛАВНЫМИ буквами
- Нельзя давать переменным имена O, I, l (большая о, большая i, маленькая L).
Рекомендации
- Для хранения вещественных чисел следует использовать типы double или long double: тип float всегда, когда объёма памяти достаточно, использовать не рекомендуется ввиду его низкой точности.
Перечень требований и рекомендаций со временем может пополняться: заглядывайте в него почаще!