Сравнение версий Информатика / Правила Написания Программ
|
|
Следующая правка →
|
| 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 | 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 | %% | 5 | %% |
| 6 | 6 | ||
| 7 | Для Python используется утилита ((https://github.com/jcrocholl/pep8 pep8.py)) с ключами | 7 | Для Python используется утилита ((https://github.com/ShashkovS/flake8_ejudge flake8_ejudge)) |
| 8 | %% | 8 | |
| 9 | pep8.py -r --show-source --ignore=W391,E251,E501,W292,W291,W293 | 9 | Очень полное и подробное описание требований к коду на C++ содержится в ((https://tproger.ru/translations/stanford-cpp-style-guide/ руководстве по оформлению кода на С++ от Стэнфордского университета)) |
| 10 | %% | ||
| 11 | |||
| 12 | 10 | ||
| 13 | ===Python=== | 11 | ===Python=== |
| 14 |
Помимо сформулированных ниже правил, программы должны соответствовать документу ((http://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code)) из официальной документации языка Python |
12 | Помимо сформулированных ниже правил, программы должны соответствовать документу ((http://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code)) из официальной документации языка Python (возможны отступления в части некоторых правил). |
| 15 | 13 | ||
| 16 | ====Символы и отступы=== | 14 | ====Символы и отступы=== |
| 17 | Величина отступа - четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается. | 15 | Величина отступа - четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается. |
| … | … | … | … |
| 59 | %% | 57 | %% |
| 60 | 58 | ||
| 61 | ====Использование констант=== | 59 | ====Использование констант=== |
| 62 |
|
||
| 63 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while i < 179 или c = c + 32 недопустима. | 60 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while i < 179 или c = c + 32 недопустима. |
| 61 | |||
| 62 | ====Комментарии==== | ||
| 63 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. | ||
| 64 | |||
| 65 | ====Комментарии==== | ||
| 66 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. | ||
| 64 | 67 | ||
| 65 | ===C++=== | 68 | ===C++=== |
| 66 | 69 | ||
| … | … | … | … |
| 106 | %% | 109 | %% |
| 107 | 110 | ||
| 108 | ====Стиль отступов=== | 111 | ====Стиль отступов=== |
| 109 |
|
||
| 110 | =====if==== | 112 | =====if==== |
| 111 |
|
||
| 112 | Оператор if без else записывается так: | 113 | Оператор if без else записывается так: |
| 113 | %%(java) | 114 | %%(java) |
| 114 | if (test) | 115 | if (test) |
| … | … | … | … |
| 164 | 165 | ||
| 165 | =====for==== | 166 | =====for==== |
| 166 | %%(java) | 167 | %%(java) |
| 167 |
for (int i = 0; i |
168 | for (int i = 0; i < n; ++i) |
| 168 | { | 169 | { |
| 169 | statements... | 170 | statements... |
| 170 | } | 171 | } |
| … | … | … | … |
| 190 | Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции. | 191 | Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции. |
| 191 | 192 | ||
| 192 | ====Использование констант=== | 193 | ====Использование констант=== |
| 193 |
|
||
| 194 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима. | 194 | Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима. |
| 195 | 195 | ||
| 196 | ====Ввод-вывод=== | 196 | ====Ввод-вывод=== |
| 197 | Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так: | 197 | Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так: |
| 198 | 198 | ||
| 199 |
%%(java)cerr |
199 | %%(java)cerr << "Неверные входные данные" << endl;%% |
| 200 | 200 | ||
| 201 | При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных. | 201 | При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных. |
| 202 | 202 | ||
| 203 | ====Комментарии==== | ||
| 204 | Комментарии в программах нужны для пояснения работы кода. Недопустимо использование комментариев для других целей, например, для удаления ненужного кода или для ASCII-арта. | ||
| 205 | |||
| 206 | ====#define==== | ||
| 207 | Никакие #define не нужны. Для определения констант нужно использовать const, вместо макросов нужно использовать функции, #define int long long не нужно вообще. | ||
| 208 | |||
| 209 | ====typedef==== | ||
| 210 | typedef скорее всего не нужны ни в каком виде. Нельзя переопределять стандартные типы при помощи typedef, а больше ни для чего typedef не нужен. | ||
| 211 | |||
| 212 | |||