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





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

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