Сравнение версий Информатика / Правила Написания Программ





Следующая правка →

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. При сдаче задачи в ejudge проводится автоматическая проверка на соответствие программы PEP8 (возможны отступления в части некоторых правил).
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 &lt;< n; ++i)
169 {
170     statements...
171 }
… …
191 Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции.
192
193 ====Использование констант===
194 Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима.
195
196 ====Ввод-вывод===
197 Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так:
198
199 %%(java)cerr &lt;&lt; "Неверные входные данные" &lt;&lt;<< "Неверные входные данные" << endl;%%
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