version 3.2, 2013/10/11 15:39:35
|
version 3.0, 2008/03/23 17:50:50
|
Line 1
|
Line 1
|
%$Id$ |
%$Id$ |
%$Log$ |
%$Log$ |
%Revision 3.2 2013/10/11 15:39:35 boris |
%Revision 3.0 2008/03/23 17:50:50 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 |
%Added Lev's corrections |
% |
% |
%Revision 2.7 2005/02/20 03:24:43 boris |
%Revision 2.7 2005/02/20 03:24:43 boris |
Line 66
|
Line 60
|
|
|
\title{Программа для обработки писем в ИГП и ИЧБ} |
\title{Программа для обработки писем в ИГП и ИЧБ} |
\author{Boris Veytsman, \texttt{borisv@lk.net}} |
\author{Boris Veytsman, \texttt{borisv@lk.net}} |
\date{Март 2008} |
\date{Февраль 2005} |
\maketitle |
\maketitle |
\thispagestyle{empty} |
\thispagestyle{empty} |
\tableofcontents |
\tableofcontents |
Line 212 Subject: Otvety komandy "Stop", 222
|
Line 206 Subject: Otvety komandy "Stop", 222
|
|
|
\subsection{Формат таблицы результатов} |
\subsection{Формат таблицы результатов} |
|
|
У таблицы результатов есть три формата. |
У таблицы результатов есть два формата. |
\begin{enumerate} |
\begin{enumerate} |
\item Длинный формат |
\item Длинный формат |
\begin{verbatim} |
\begin{verbatim} |
Line 221 Subject: Otvety komandy "Stop", 222
|
Line 215 Subject: Otvety komandy "Stop", 222
|
436 + + + + + + + + + + + + 12.02 359 Venera II |
436 + + + + + + + + + + + + 12.02 359 Venera II |
[...] |
[...] |
\end{verbatim} |
\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 Короткий формат |
\item Короткий формат |
\begin{verbatim} |
\begin{verbatim} |
N 123456789012 О Р КОМАНДА |
N 123456789012 О Р КОМАНДА |
Line 251 Subject: Otvety komandy "Stop", 222
|
Line 232 Subject: Otvety komandy "Stop", 222
|
таблица ``Рейтинг''. В графе ``О'' стоят набранные командой очки в |
таблица ``Рейтинг''. В графе ``О'' стоят набранные командой очки в |
данном зачёте (до десятичной точки) и в предыдущем (после точки). |
данном зачёте (до десятичной точки) и в предыдущем (после точки). |
|
|
При печати незачетных вопросов взятый вопрос помечается буквой |
|
\prog{X}, а невзятый, как обычно, \prog{-}. |
|
|
|
\subsection{Формат собрания сочинений} |
\subsection{Формат собрания сочинений} |
|
|
Собрание ответов на каждый вопрос имеет следующую структуру: |
Собрание ответов на каждый вопрос имеет следующую структуру: |
Line 262 Subject: Otvety komandy "Stop", 222
|
Line 240 Subject: Otvety komandy "Stop", 222
|
\begin{verbatim} |
\begin{verbatim} |
ВОПРОС NN: |
ВОПРОС NN: |
\end{verbatim} |
\end{verbatim} |
\item По три заголовка подразделов: |
\item По два заголовка подразделов: |
\begin{verbatim} |
|
ЗАСЧИТАНО: |
|
\end{verbatim} |
|
|
|
\begin{verbatim} |
\begin{verbatim} |
НЕ ЗАСЧИТАНО: |
ЗАСЧИТАНЫ ОТВЕТЫ: |
\end{verbatim} |
\end{verbatim} |
и |
и |
\begin{verbatim} |
\begin{verbatim} |
НЕ ЯСНО: |
НЕ ЗАСЧИТАНЫ ОТВЕТЫ: |
\end{verbatim} |
\end{verbatim} |
\item Каждый ответ имеет формат: |
\item Каждый ответ имеет формат: |
\begin{verbatim} |
\begin{verbatim} |
Line 280 s Текст ответа
|
Line 254 s Текст ответа
|
Текст ответа |
Текст ответа |
... [f] |
... [f] |
\end{verbatim} |
\end{verbatim} |
Здесь \prog{s}---один из символов \prog{+}, \prog{-}, или \prog{?}, |
Здесь \prog{s}---один из символов \prog{+} или \prog{-}, |
\prog{f}---частота ответа, которая печатается только если она не равна |
\prog{f}---частота ответа, которая печатается только если она не равна |
единице. |
единице. |
\end{enumerate} |
\end{enumerate} |
|
|
По умолчанию, заголовки всех подразделов выводятся даже если для данного |
|
вопроса нет ответов, попадающих в какой-либо подраздел (подраздел пуст). |
|
Это предсказуемо и удобно, но не всегда удобочитаемо с точки зрения |
|
читателя-человека, поэтому по желанию возможна генерация промежуточного |
|
или короткого вариантов собрания сочинений. От описанного выше полного |
|
формата они отличаются режимом печати пустых подразделов: |
|
\begin{enumerate} |
|
\item В промежуточном формате подразделы \prog{ЗАСЧИТАНО} и |
|
\prog{НЕ ЗАСЧИТАНО} показываются всегда (даже пустые), а подраздел |
|
\prog{НЕ ЯСНО}---только если он не пуст. |
|
\item В коротком формате все подразделы выводятся только если они |
|
не пусты (исключения для \prog{ЗАСЧИТАНО} и \prog{НЕ ЗАСЧИТАНО} |
|
не делаются). |
|
\end{enumerate} |
|
|
|
По мнению автора, промежуточный формат представляет собой оптимальный |
|
компромисс между читаемостью и полнотой (и действительно, зачем |
|
печатать пару десятков пустых \prog{НЕ ЯСНО} в официальной сводке, |
|
в которой уже давно все ясно?) |
|
|
|
|
|
|
|
|
|
\section{Пользовательский интерфейс} |
\section{Пользовательский интерфейс} |
Line 317 s Текст ответа
|
Line 270 s Текст ответа
|
Настройки программы хранятся в файле \prog{parameters.pl}. Пример |
Настройки программы хранятся в файле \prog{parameters.pl}. Пример |
этого файла приведен ниже: |
этого файла приведен ниже: |
\begin{verbatim} |
\begin{verbatim} |
# В этом файле собраны ЛОКАЛЬНЫЕ параметры -- "настройки" |
|
# |
|
# Количество зачётов |
# Количество зачётов |
$ROUNDS=2; |
$ROUNDS=2; |
|
|
Line 338 $NAME[1]="Спринт";
|
Line 289 $NAME[1]="Спринт";
|
$MINQUEST[1]=1; |
$MINQUEST[1]=1; |
$MAXQUEST[1]=12; |
$MAXQUEST[1]=12; |
|
|
# Файлы раунда. Следующий перекрывает предыдущий. |
# Файлы раунда. Следующий перекрывает предыдущий: |
# Список заключён в квадратные скобки, отдельные файлы разделены ЗАПЯТЫМИ. |
|
# $FILES[1] = [ "sprint.mail", "sprint-extra.mail" ]; |
|
# |
|
# ВНИМАНИЕ: формат этого параметра изменился с предыдущей версии! |
|
|
|
$FILES[1]= [ 'sprint.mail' ]; |
|
|
|
# Внезачётные вопросы раунда. В квадратных скобках, номера разделены ЗАПЯТЫМИ. |
|
# Во втором раунде эти вопросы тоже будут вне зачёта (но можно будет и |
|
# учесть, см. ниже описание $NOCOUNT[2]). |
|
# $NOCOUNT[1] = []; |
|
# $NOCOUNT[1] = [ 2, 3, 4 ]; |
|
|
|
$NOCOUNT[1]= []; |
$FILES[1]='sprint.mail'; |
|
|
|
|
# Второй раунд |
# Второй раунд |
Line 366 $NAME[2]="Стайер";
|
Line 305 $NAME[2]="Стайер";
|
$MINQUEST[2]=1; |
$MINQUEST[2]=1; |
$MAXQUEST[2]=18; |
$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'; |
|
|
######################################################### |
######################################################### |
# Теперь общие настройки |
# Теперь общие настройки |
Line 398 $address = 'z-info@chgk.info';
|
Line 323 $address = 'z-info@chgk.info';
|
# |
# |
# Обратный адрес дежурной команды и ее название |
# Обратный адрес дежурной команды и ее название |
# |
# |
$fromaddress = 'Boris Veytsman <borisv@lk.net>'; |
$fromaddress = 'borisv@lk.net'; |
$DK = '"Дракоша"'; |
$DK = '"Дракоша"'; |
# |
# |
# $date -- системная процедура, которая вычисляет МОСКОВСКОЕ |
# $date -- системная процедура, которая вычисляет МОСКОВСКОЕ |
# время. В Линуксе zdump это делает хорошо. В других операционных |
# время. В Линуксе zdump это делает хорошо. В других операционных |
# системах надо как-то исхитряться... На самый худой конец, используйте |
# системах надо как-то исхитряться... |
# $date=''; |
|
# |
# |
$date = "export TZ='Europe/Moscow'; date"; |
$date = "export TZ='Europe/Moscow'; date"; |
|
|
Line 441 Good luck
|
Line 365 Good luck
|
END |
END |
|
|
} |
} |
|
|
\end{verbatim} |
\end{verbatim} |
|
|
|
|
Line 478 reminder.pl [-r номер_раунда]
|
Line 403 reminder.pl [-r номер_раунда]
|
|
|
Итоговая таблица и собрание сочинений генерируются программами |
Итоговая таблица и собрание сочинений генерируются программами |
\begin{verbatim} |
\begin{verbatim} |
createtable.pl [-d] [-s|-m] [-t table_file] [-o results] |
createtable.pl [-d] [-s] [-t table_file] [-o results] |
collection.pl [-d] [-s|-m] [-t table_file] [-o results] |
collection.pl [-d] [-t table_file] [-o results] |
\end{verbatim} |
\end{verbatim} |
Ключи имеют тот же смысл, что и у программы \prog{processmail.pl}. |
Ее ключи имеют то же смысл, что и у программы \prog{processmail.pl}. |
Флаг \prog{-s} означает выбор короткой формы вывода, а флаг \prog{-m} |
Флаг \prog{-s} означает выбор короткой формы таблицы. |
означает выбор промежуточной формы. |
|
|
|
\section{Программа} |
\section{Программа} |
|
|
Line 498 collection.pl [-d] [-s|-m] [-t table_fi
|
Line 422 collection.pl [-d] [-s|-m] [-t table_fi
|
полями: |
полями: |
\begin{description} |
\begin{description} |
\item[\prog{regnum}] регистрационный номер |
\item[\prog{regnum}] регистрационный номер |
\item[\prog{numletters}] количество писем с ответами |
\item[[\prog{numletters}] количество писем с ответами |
\item[\prog{answers}] ссылка на массив из ответов |
\item[\prog{answers}] ссылка на массив из ответов |
\item[\prog{score}] общий итог |
\item[\prog{score}] общий итог |
\item[\prog{rating}] общий рейтинг |
\item[\prog{rating}] общий рейтинг |
Line 518 collection.pl [-d] [-s|-m] [-t table_fi
|
Line 442 collection.pl [-d] [-s|-m] [-t table_fi
|
\section{Благодарности} |
\section{Благодарности} |
|
|
Я благодарен Якову Зайдельману, Льву Горенштейну, Алексу Покрасу и |
Я благодарен Якову Зайдельману, Льву Горенштейну, Алексу Покрасу и |
Дмитрию Рубинштейну за помощь в разработке этой программы. Версия~3 |
Дмитрию Рубинштейну за помощь в разработке этой программы. |
программы (поддержка незачетных вопросов и промежуточного формата |
|
таблицы) была написана Львом Горенштейном. |
|
|
|
\end{document} |
\end{document} |
|
|