Сравнение версий Информатика / Правила Написания Программ
|
|
Следующая правка →
|
| Merge of Version1 & Version2 | |
|---|---|
| 4 | cpplint.py --filter=-legal,-readability/streams,-build/namespaces,-whitespace/braces,-whitespace/newline,-whitespace/line_length,-runtime/int,-runtime/threadsafe_fn,-readability/casting,-build/include_what_you_use,-runtime/arrays,-runtime/explicit,-build/include,-readability/fn_size,-runtime/printf,-whitespace/comments,-runtime/references,-readability/braces |
| 5 | %% |
| 6 | |
| 7 | Для Python используется утилита ((https://github.com/ShashkovS/flake8_ejudge flake8_ejudge)) |
| 8 | |
| 9 | Очень полное и подробное описание требований к коду на C++ содержится в ((https://tproger.ru/translations/stanford-cpp-style-guide/ руководстве по оформлению кода на С++ от Стэнфордского университета)) |
| 10 | |
| 11 | ===Python=== |
| 12 | Помимо сформулированных ниже правил, программы должны соответствовать документу ((http://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code)) из официальной документации языка Python |
| 13 | |
| 14 | ====Символы и отступы=== |
| 15 | Величина отступа - четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается. |
| … | … |
| 57 | %% |
| 58 | |
| 59 | ====Использование констант=== |
| 60 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while i < 179 или c = c + 32 недопустима. |
| 61 | |
| 62 | ====Комментарии==== |
| 63 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. |
| 64 | |
| 65 | ====Комментарии==== |
| 66 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. |
| 67 | |
| 68 | ===C++=== |
| 69 | |
| … | … |
| 109 | %% |
| 110 | |
| 111 | ====Стиль отступов=== |
| 112 | =====if==== |
| 113 | Оператор if без else записывается так: |
| 114 | %%(java) |
| 115 | if (test) |
| … | … |
| 165 | |
| 166 | =====for==== |
| 167 | %%(java) |
| 168 | for (int i = 0; i |
| 169 | { |
| 170 | statements... |
| 171 | } |
| … | … |
| 191 | Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции. |
| 192 | |
| 193 | ====Использование констант=== |
| 194 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима. |
| 195 | |
| 196 | ====Ввод-вывод=== |
| 197 | Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так: |
| 198 | |
| 199 | %%(java)cerr |
| 200 | |
| 201 | При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных. |
| 202 | |
| 203 | ====Комментарии==== |
| 204 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. |
| 205 | |
| 206 | ====#define==== |
| 207 | Никакие #define не нужны. Для определения констант нужно использовать const, вместо макросов нужно использовать функции, #define int long long не нужно вообще. |
| 208 | |
| 209 | ====typedef==== |
| 210 | typedef скорее всего не нужны ни в каком виде. Нельзя переопределять стандартные типы при помощи typedef, а больше ни для чего typedef не нужен. |
| 211 | |
| 212 | |