Тестирующая система ejudge использует автоматические скрипты проверки стиля кода. Для C++ используется утилита ((http://google-styleguide.googlecode.com/svn/trunk/cpplint/ cpplint)) с ключами
Величина отступа – четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается.
Последняя строка должна завершаться символом конца строки. Пустых строк в конце файла быть не должно. В конце любой строки не должно быть пробелов.
Функции должны отделяться пустыми строками. Отдельные смысловые блоки в программе должны отделяться пустыми строками.
====Имена переменных====
Имена переменных, функций, типов должны быть осмысленными и отражать назначение. Слишком длинные имена, однако, не рекомендуются. В именах допускаются сокращения, которые не затрудняют понимание имени и назначения функций и переменных.
Допускается использование односложных имен переменных для счетчиков (i, j, k), а также если это имя фигурирует в условии задачи (N, M, K, L).
В именах должны использоваться только английские слова. Транслитерации русских слов не допускаются.
Если имя переменной или функции состоит из нескольких слов, то они должны разделяться символом подчеркивания или заглавными буквами. Например: Calc****Sqrt – допустимо calc_sqrt – допустимо calculate_square_root – допустимо, но нежелательно (слишком длинное имя) vychislenie_kornya – недопустимо (используются русские имена) f – недопустимо (непонятно назначение функции)
Имена констант записываются полностью заглавными буквами. Если имя константы состоит из нескольких слов, для их разделения используются подчеркивания. Например, EPSILON, MAX_SIZE.
Имена массивов и названия типов структур должны записываться с заглавной буквы.
====Арифметические операции====
В одной строчке записывается одна арифметическая операция. Например:
%%(php) a = b; b = c; %%
Бинарные операции разделяются пробелом. После запятой и после точки с запятой в цикле for ставится пробел. Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробелы не ставятся
%%(php) a = b + 2 * c; a = (b + 2) * c; x = power(a, n); %%
====Стиль отступов====
=====if=====
Оператор if без else записывается так: %%(php) if (test) { statements... } %%
Оператор if c else записывается так: %%(php) if (test) { statements... } else { statements... } %%
Последовательность if ... else if ... else if ... else записывается так: %%(php) if (test1) { statements... } else if (test2) { statements... } else { statements... } %%
=====while=====
%%(php) while (test) { statements... } do while do { statements... } while (test); for for (int i = 0; i < n; ++i) { statements... } %%
====Описание структуры====
%%(php) struct Person { string Name; int Age; }; %%
====Реализация функции====
%%(php) double power(double a, int n) { statements... } %%
Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции.
====Использование констант====
Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима. Ввод-вывод Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так:
При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных.
---- адрес оригинала: ((/Информатика/Архив/2014/8Б1/с/PravilaNapisanijaProgramm))