--- processmail/process.tex 2005/02/20 03:24:43 2.7 +++ processmail/process.tex 2013/10/11 15:39:35 3.2 @@ -1,5 +1,14 @@ -%$Id: process.tex,v 2.7 2005/02/20 03:24:43 boris Exp $ +%$Id: process.tex,v 3.2 2013/10/11 15:39:35 boris Exp $ %$Log: process.tex,v $ +%Revision 3.2 2013/10/11 15:39:35 boris +%Lev's changes +% +%Revision 3.1 2008-03-23 18:04:51 boris +%documentation update +% +%Revision 3.0 2008-03-23 17:50:50 boris +%Added Lev's corrections +% %Revision 2.7 2005/02/20 03:24:43 boris %Wrote readme % @@ -57,7 +66,7 @@ \title{Программа для обработки писем в ИГП и ИЧБ} \author{Boris Veytsman, \texttt{borisv@lk.net}} -\date{Февраль 2005} +\date{Март 2008} \maketitle \thispagestyle{empty} \tableofcontents @@ -203,7 +212,7 @@ Subject: Otvety komandy "Stop", 222 \subsection{Формат таблицы результатов} -У таблицы результатов есть два формата. +У таблицы результатов есть три формата. \begin{enumerate} \item Длинный формат \begin{verbatim} @@ -212,6 +221,19 @@ Subject: Otvety komandy "Stop", 222 436 + + + + + + + + + + + + 12.02 359 Venera II [...] \end{verbatim} + +\item Промежуточный формат +\begin{verbatim} + N 12345 67890 12 О Р КОМАНДА + 111 +++++ +++++ ++ 12.04 359 Марсиане + 436 +++++ +++++ ++ 12.04 359 Venera II +[...] +Рейтинг + 1 2 3 4 5 6 7 8 9 10 11 12 +24 21 34 24 41 43 18 31 26 32 36 29 +\end{verbatim} + + \item Короткий формат \begin{verbatim} N 123456789012 О Р КОМАНДА @@ -229,6 +251,9 @@ Subject: Otvety komandy "Stop", 222 таблица ``Рейтинг''. В графе ``О'' стоят набранные командой очки в данном зачёте (до десятичной точки) и в предыдущем (после точки). +При печати незачетных вопросов взятый вопрос помечается буквой +\prog{X}, а невзятый, как обычно, \prog{-}. + \subsection{Формат собрания сочинений} Собрание ответов на каждый вопрос имеет следующую структуру: @@ -237,13 +262,17 @@ Subject: Otvety komandy "Stop", 222 \begin{verbatim} ВОПРОС NN: \end{verbatim} -\item По два заголовка подразделов: +\item По три заголовка подразделов: +\begin{verbatim} +ЗАСЧИТАНО: +\end{verbatim} + \begin{verbatim} -ЗАСЧИТАНЫ ОТВЕТЫ: +НЕ ЗАСЧИТАНО: \end{verbatim} и \begin{verbatim} -НЕ ЗАСЧИТАНЫ ОТВЕТЫ: +НЕ ЯСНО: \end{verbatim} \item Каждый ответ имеет формат: \begin{verbatim} @@ -251,11 +280,32 @@ s Текст ответа Текст ответа ... [f] \end{verbatim} -Здесь \prog{s}---один из символов \prog{+} или \prog{-}, +Здесь \prog{s}---один из символов \prog{+}, \prog{-}, или \prog{?}, \prog{f}---частота ответа, которая печатается только если она не равна единице. \end{enumerate} +По умолчанию, заголовки всех подразделов выводятся даже если для данного +вопроса нет ответов, попадающих в какой-либо подраздел (подраздел пуст). +Это предсказуемо и удобно, но не всегда удобочитаемо с точки зрения +читателя-человека, поэтому по желанию возможна генерация промежуточного +или короткого вариантов собрания сочинений. От описанного выше полного +формата они отличаются режимом печати пустых подразделов: +\begin{enumerate} +\item В промежуточном формате подразделы \prog{ЗАСЧИТАНО} и + \prog{НЕ ЗАСЧИТАНО} показываются всегда (даже пустые), а подраздел + \prog{НЕ ЯСНО}---только если он не пуст. +\item В коротком формате все подразделы выводятся только если они + не пусты (исключения для \prog{ЗАСЧИТАНО} и \prog{НЕ ЗАСЧИТАНО} + не делаются). +\end{enumerate} + +По мнению автора, промежуточный формат представляет собой оптимальный +компромисс между читаемостью и полнотой (и действительно, зачем +печатать пару десятков пустых \prog{НЕ ЯСНО} в официальной сводке, +в которой уже давно все ясно?) + + \section{Пользовательский интерфейс} @@ -267,6 +317,8 @@ s Текст ответа Настройки программы хранятся в файле \prog{parameters.pl}. Пример этого файла приведен ниже: \begin{verbatim} +# В этом файле собраны ЛОКАЛЬНЫЕ параметры -- "настройки" +# # Количество зачётов $ROUNDS=2; @@ -286,9 +338,21 @@ $NAME[1]="Спринт"; $MINQUEST[1]=1; $MAXQUEST[1]=12; -# Файлы раунда. Следующий перекрывает предыдущий: +# Файлы раунда. Следующий перекрывает предыдущий. +# Список заключён в квадратные скобки, отдельные файлы разделены ЗАПЯТЫМИ. +# $FILES[1] = [ "sprint.mail", "sprint-extra.mail" ]; +# +# ВНИМАНИЕ: формат этого параметра изменился с предыдущей версии! -$FILES[1]='sprint.mail'; +$FILES[1]= [ 'sprint.mail' ]; + +# Внезачётные вопросы раунда. В квадратных скобках, номера разделены ЗАПЯТЫМИ. +# Во втором раунде эти вопросы тоже будут вне зачёта (но можно будет и +# учесть, см. ниже описание $NOCOUNT[2]). +# $NOCOUNT[1] = []; +# $NOCOUNT[1] = [ 2, 3, 4 ]; + +$NOCOUNT[1]= []; # Второй раунд @@ -302,10 +366,24 @@ $NAME[2]="Стайер"; $MINQUEST[2]=1; $MAXQUEST[2]=18; -# Файлы раунда. Следующий перекрывает предыдущий. Файлы разделены -# ПРОБЕЛАМИ +# Список заключён в квадратные скобки, отдельные файлы разделены ЗАПЯТЫМИ. +# $FILES[2] = [ 'predvarit.mail', 'osnovn.mail' ]; +# +# ВНИМАНИЕ: формат этого параметра изменился с предыдущей версии! + +$FILES[2]= [ 'stayer.mail' ]; + +# Внезачётные вопросы в этом раунде. В квадратных скобках, через ЗАПЯТУЮ. +# Этот список ДОБАВЛЯЕТСЯ к уже перечисленным в $NOCOUNT[1]. Однако +# если вы хотите исключить какой-то из ранее указанных вопросов (например, +# в гипотетической ситуации "вопрос номер 5 был исправлен слишком поздно, +# поэтому в Спринте не учитывается, а для Стайера используется"), то +# укажите его номер со знаком минус: "3 -5 6" +# $NOCOUNT[2] = []; +# $NOCOUNT[2] = [ 3, -5, 6 ]; + +$NOCOUNT[2]= []; -$FILES[2]='stayer.mail'; ######################################################### # Теперь общие настройки @@ -320,12 +398,13 @@ $address = 'z-info@chgk.info'; # # Обратный адрес дежурной команды и ее название # -$fromaddress = 'borisv@lk.net'; +$fromaddress = 'Boris Veytsman '; $DK = '"Дракоша"'; # # $date -- системная процедура, которая вычисляет МОСКОВСКОЕ # время. В Линуксе zdump это делает хорошо. В других операционных -# системах надо как-то исхитряться... +# системах надо как-то исхитряться... На самый худой конец, используйте +# $date=''; # $date = "export TZ='Europe/Moscow'; date"; @@ -362,7 +441,6 @@ Good luck END } - \end{verbatim} @@ -400,11 +478,12 @@ reminder.pl [-r номер_раунда] Итоговая таблица и собрание сочинений генерируются программами \begin{verbatim} -createtable.pl [-d] [-s] [-t table_file] [-o results] -collection.pl [-d] [-t table_file] [-o results] +createtable.pl [-d] [-s|-m] [-t table_file] [-o results] +collection.pl [-d] [-s|-m] [-t table_file] [-o results] \end{verbatim} -Ее ключи имеют то же смысл, что и у программы \prog{processmail.pl}. -Флаг \prog{-s} означает выбор короткой формы таблицы. +Ключи имеют тот же смысл, что и у программы \prog{processmail.pl}. +Флаг \prog{-s} означает выбор короткой формы вывода, а флаг \prog{-m} +означает выбор промежуточной формы. \section{Программа} @@ -419,7 +498,7 @@ collection.pl [-d] [-t table_file] [-o полями: \begin{description} \item[\prog{regnum}] регистрационный номер - \item[[\prog{numletters}] количество писем с ответами + \item[\prog{numletters}] количество писем с ответами \item[\prog{answers}] ссылка на массив из ответов \item[\prog{score}] общий итог \item[\prog{rating}] общий рейтинг @@ -439,7 +518,9 @@ collection.pl [-d] [-t table_file] [-o \section{Благодарности} Я благодарен Якову Зайдельману, Льву Горенштейну, Алексу Покрасу и -Дмитрию Рубинштейну за помощь в разработке этой программы. +Дмитрию Рубинштейну за помощь в разработке этой программы. Версия~3 +программы (поддержка незачетных вопросов и промежуточного формата +таблицы) была написана Львом Горенштейном. \end{document}