[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Тактика на командных олимпиадах
Автор Сообщение
Гомель-3

Темы: 2
Сообщений: 18

Мой профиль
Выбор паскаля.
Начнём всё с выбора паскаля. На компьютере по стандарту стоит fpc-3.0.0 . У
Антона есть свой ярлык с настройками для паскаля. За основу берем этот ярлык.

Названия файлов для олимпиады.
Используем короткие названия файлов, т.е. A.pas , F.pas, D.pas . Никаких
лишних добавок. Исключения: другое решение на эту задача. Т.е. Ar.pas , Fr.pas
и т.д.

Правила написания типов и констант+проставление директив
Все константы прописываются с новой строки по типу:
const MAXSIZE = 100;
const MINSIZE = -1;
Для констант используем только CAPS.
Проставление директив идёт только на страх и риск пишущего код.
На время написания задачи, стараемся обойтись без директив(так как они
мало несут пользы).
Любимое сокращение Антона не трогаем.
Названия переменных должны соответствовать их использования(размер = size).
Исключение, простые задачи, где в условии используются a,b,c,d и т.д.

Правила написания процедур, функций.
Каждая процедура или функция разделяется пустой строкой. Стараемся указать
нормальное название функции или процедуры, для того, чтобы легче было понять
для чего она.
Большие функции и процедуры не стоит лепить в 1 строку.
Исключения: такие функции как max, min, swap(Для Антона swap расписывать отдельно).

Правила написания самого кода
Не лепим много лишних функций в одну строку. Обнуление переменных допускается в 1 строке
Стараемся не лепить всё в 1 строчку. Использовать по стандарту 2 проблема для отступа.
Example:
if(boolean)
--then solve
--else solve
if(boolean)
--then begin
---------solve
-------end
--else begin
---------solve
-------end;
Попытаться убрать из использования следующее выражение:
x+=1; x-=1; Использовать inc(),dec();
Ещё раз, не лепим всё в 1 строку. Никогда. Ломать пальцы за такое.
Не писать длинные выражения в 1 строку,использовать переносы
Example:
if(boolean)and(boolean)and(verylongandnootbeatifulboolean)
--then solve; Не стоит так писать.
if(boolean)and(boolean)
and(verylongandnootbeatifulboolean)
-------then solve;
Или писать каждый and(or и т.д.) с новой строки.


Проверка своего кода
Каждую функцию стоит проверять изначально, а не сразу в блоке. Например проверять сортировку
(Любимая вещь Антона) или пузырёк(Любимая вещь Антона). Лучше немного больше времени потратить на
проверку изначально, чем потом искать час ошибку.



ЗОЛОТОЕ ПРАВИЛО РАЗРАБОТЧИКОВ:
ЧИТАБЕЛЬНОСТЬ >>>>>>>>> КОМПАКТНОСТЬ

Смысл заключается в том, чтобы не лепить всё в строку. Так как проверяет код Антона чаще
всего Артём, а ему совсем неудобно с ним работать.
(P.S. будут доработки после субботы/воскресенья.)
 
Индекс форума ->Олимпиадное программирование ->Тактика на командных олимпиадах
Time:0,046