Директория GOLD.FND (Золотой фонд)

- программы на PASCAL'е, написанные в соответствие с требованиями, предъявляемыми в проекте "Шифровка-95"

Основные разделы:

..

CODES - шифры;

UNCODES - взломщики шифров;

ANALIS - анализ и преобразование текстов;

LINGVIST - лингвистический анализ текстов;

UTILS - вспомогательные программные модули;

OTHERS - прочие, еще не расклассифицированные программы.

Ряд программ использует модуль help (скомпилированная версия есть в Pascal.rar, исходники - в UTILS).

Требования к программе,

которые необходимо выполнить, чтобы программа была включена в "Золотой фонд" (GOLD.FND)

  1. Программа должна работать.
  2. Программа должна работать ПРАВИЛЬНО!
  3. В начале программы должен стоять краткий комментарий, в котором должны содержаться следующие сведения:
    - имя автора программы;
    - назначение программы (что делает данная программа, когда ее имеет смысл использовать, откуда берутся параметры программы и т.п.);
    - время создания программы и номер версии (если есть).
    Можно также включить список используемой литературы и другую информацию, которую автор программы считает нужным.
  4. Программа должна быть написана "лесенкой".
  5. Вычислительная часть программы должна быть организована наиболее оптимальным образом с точки зрения экономии времени работы и памяти машины.
  6. Число меток в программе должно быть минимально (как правило, в программе нужна не более, чем одна метка).
  7. В программе не должно быть не используемых переменных и меток.
  8. Каждая переменная программы должна быть описана (откомментирована). При этом описаний типа "Вспомогательная переменная" должно быть как можно меньше.
  9. Программа должна быть разбита на отдельные части (подпрограммы или законченные части главной программы), объемом, как правило, не больше 20 (в крайнем случае 40) строк, каждая из которых осуществляет какое-либо законченное действие (например, присваивает начальные значения переменным; открывает файл для работы; считывает данные из файла в массив и т.д.). каждая из таких частей должна быть откомментирована (как правило, заголовком в начале).
  10. Кроме того, должны быть откомментированы все "темные места", все маленькие (и большие) программистские хитрости.
  11. Каждая подпрограмма (процедура или функция) должна быть откомментирована следующим образом:
    - должно быть описано назначение подпрограммы;
    - должны быть описаны все входные и выходные параметры;
    - должны быть описаны все изменения глобальных переменных в ходе выполнения подпрограммы;
    - если подпрограмма получилась большой, необходимо разбить ее на части в соответствии с п. 9.
  12. В программе не должно быть комментариев типа: x:=x+1; { К x прибавляем единицу }. Правильный комментарий к такой строке (если он необходим): x:=x+1; {Увеличиваем на единицу число найденных простых чисел}.

Помните, что лучшим описанием программы должна быть сама программа!

Березин А.В.

Дополнительные требования к программе,

которые необходимо выполнить, чтобы программа была включена в "Золотой фонд" (GOLD.FND)

(Предъявляются только на второй год совместной работы.)

  1. Программа, как правило, должна начинать свою работу с выдачи на экран текстового меню, в котором должны быть следующие пункты:
    - имя входного файла (если нужно);
    - имя выходного файла (если нужно);
    - имя файла с дополнительными параметрами (если нужно);
    - тип работы (если есть выбор, например - шифровать или расшифровывать);
    - дополнительные параметры (на каждый параметр по отдельному пункту меню);
    - пункт "Начать работу";
    - пункт "Выход из программы".

    При выборе какого-либо пункта должна осуществляться соответствующая деятельность:
    - запрашиваться и вводиться с экрана имя соответствующего файла либо значение дополнительного параметра;
    - меняться тип работы (либо выводиться меню с выбором конкретного типа работы);
    - начинаться работа, если это возможно либо выдаваться сообщение о невозможности работы с указанием причины;
    - при выборе пункта "Выход из программы" или нажатии клавиши "Esc" - заканчиваться работа программы.

  2. У программы должны быть данные, задаваемые по умолчанию (имена входного, выходного и файла с дополнительными параметрами; тип работы; необходимые дополнительные параметры), соответствующие самому распространенному с точки зрения автора программы случаю. Именно эти данные должны высвечиваться в первоначальном меню (если оное существует).

  3. Все введенные параметры должны контролироваться:
    - имя входного файла и файла с дополнительными параметрами - на существование таких файлов;
    - имя выходного файла - на отсутствие такого файла;
    - дополнительные параметры - на определенные границы.

    В случае, если какой-либо параметр не соответствует требованиям (либо даже синтаксису - вместо числа ввели букву) нужно выдать сообщение об ошибке и вернуться в первоначальное меню, не изменив заданный параметр на неправильно введенный).

    Исключение - уже существующий выходной файл. В этом случае должно выдаваться только предупреждение о том, что файл существует и будет изменен.

  4. При выполнении программы не должны возникать "ошибки выполнения" (Например, если вместо числа ввести букву, то программа должна выдать сообщение об осуществлении неправильного ввода, а не прерывать свою работу). Если какие-либо параметры, заданные по умолчанию либо введенные с экрана неверны, работа программы не должна начинаться, а должно выдаваться сообщение об ошибке и возвращаться первоначальное меню.

  5. Все параметры, задаваемые по умолчанию, а также все размерности массивов должны описываться только через константы.

Березин А.В.

Требования к программе,

которые необходимо выполнить, чтобы программа была включена в "Шифровальный блокнот"
  1. Программа должна удовлетворять требованиям А.В.Березина, которые он предъявляет к программам, включаемым в "Золотой фонд".
  2. К каждой программе должен прилагаться текстовый файл, с информацией о том, что делает данная программа, когда ее имеет смысл использовать и т.д. (Например, к программе шифрования способом замены должен прилагаться файл, в котором подробно написано, в чем заключается данный способ, откуда берутся параметры замены и т.п.). Можно также указать автора программы, время ее создания, список используемой литературы и другая информация, которую автор программы считает нужным указать.

  3. В тексте программы все фрагменты, связанные с пользовательским интерфейсом (т. е. с диалогом с пользователем), проверка имени файла, обработка параметров командной строки и т.п., должны быть оформлены следующим образом: данные фрагменты должны начинаться строкой комментариев:
    (* User Interface: Begin *)
    и кончаться
    (* User Interface: End *) .

    В начале программы должна быть строка
    (* User Interface: Strings: a1-b1 ; a2-b2 ; ... ;ai-bi *)
    где
    an - номер n-ой строки (* User Interface: Begin *),
    bn - номер n-ой строки (* User Interface: End *).

  4. В программе не должен использоваться оператор Halt - его следует заменить на оператор Exit, который имеет близкое значение (см. Help Turbo-Pascal'я).

Солнцев С.