Требования к хранению и написанию кода
- Для каждой задачи следует создавать отдельную папку.
- Открывающую фигурную скобку не следует переносить на новую строку.
- Каждый блок должен быть заключён в фигурные скобки, даже если он состоит из единственного оператора:
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];
}
}
- Размер отступа должен составлять два или четыре пробела.
Важное примечание: используйте один и тот же размер отступов внутри всего документа.
- Вокруг знаков арифметических операций ставятся пробелы:
sum += value;
- Вокруг знака присваивания ставятся пробелы.
- Если возможно использовать оператор
++, --, +=, -=, *=, и т.д.,
то следует использовать именно его, а запись вида:
sum = sum + value;
недопустима.
Примечание: знаки унарных операций (например b = -a) пробелами не обособляются.
- Вокруг знаков логических операций (
&&, ||, ^, == , >, <= и т.д.) ставятся пробелы.
- Функции разделяются пустыми строками. Логические блоки внутри функций (например, отдельные циклы, не вложенные друг в друга) разделяются пустыми строками.
- После запятой ставится пробел:
int l, r;
- Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробел не ставится:
void search(int l, int r, int value)
- Каждый новый оператор должен находиться на отдельной строке.
- Переменные разных типов объявляются в разных строках.
- Переменным следует давать осмысленные названия. При этом желательно использовать английские слова (и их сокращения), а не транслитерированные русские
(
double a123, long long summa, int kolvo — плохие примеры;
long long sum, int cnt (сокращение от count) — хорошие).
- Оператор
goto использовать запрещено!
- Внутри программы не должны встречаться числовые величины, содержащие больше одного знака в десятичной записи: используйте константы.
- Для записи числовых констант, содержащих много знаков в десятичной записи, используйте экспоненциальную форму записи вещественного числа:
const int N = int(1e8); // вместо 100000000
const double eps = 1e-6; // вместо 0.000001
Рекомендации
- Для хранения вещественных чисел следует использовать типы double или long double: тип float всегда, когда объёма памяти достаточно, использовать не рекомендуется ввиду его низкой точности.
Перечень требований и рекомендаций со временем может пополняться: заглядывайте в него почаще!