Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оформление программ.doc
Скачиваний:
3
Добавлен:
11.11.2019
Размер:
74.75 Кб
Скачать

Вычисления

  1. В операторной части должен быть минимум литеральных констант (т.е. значений, которые сами себя обозначают: 25, 3.14, ‘*’, ‘Файла с таким именем не существует’). Если константа используется хотя бы два раза, опишите ее в разделе констант и используйте именованную константу.

const KolStud= 25;

pi= 3.14;

FileError= ‘Файла с таким именем не существует’;

Даже если константа используется один раз, но имеет выраженный смысл, сделайте ее именованной. Тем самым Вы убьете сразу двух зайцев. Программу будет проще читать (осмысленное имя вместо литерального значения, о смысле которого надо каждый раз догадываться). Программу будет проще модифицировать (вместо того, чтобы рыскать по всему тексту в поисках литерала, достаточно изменить одно определение именованной константы).

  1. Не меняйте счетчик цикла с помощью присваивания (хотя Паскаль это дозволяет)!

  2. Не используйте инициализацию переменных по умолчанию. Во-первых, Вы попадете в зависимость от конкретной реализации (разные реализации относятся к инициализации по- разному). Во-вторых, Вы рискуете перепутать переменные, описанные в разных частях программы. Инициализация может выполняться по-разному для переменных, описанных в главной программе, в процедуре, в интерфейсе модуля и в его реализации. Локальные переменные процедур, как правило, не инициализируются. Если в ходе работы над программой Вы перенесете некий фрагмент из главной программы в процедуру, отсутствие явной инициализации породит ошибку.

  3. В выражении пробелы можно использовать для выделения старшинства операций:

a:= b + c*d

Следует помнить, что сам Паскаль пробелы игнорирует. Поэтому если Вы с помощью пробелов старшинство операций выделите неверно, то Паскаль это «съест», а себя Вы запутаете.

a:= b+c * d

  1. Если выражение не помещается на одной строке, то прерывать его следует на знаке операции таким образом, чтобы эта строка без продолжения содержала бы синтаксическую ошибку:

if (a<b) and (c<d) and

(x=y) and (z>f)

Цель такой разбивки строк – лишняя страховка от ошибок при редактировании текста. Если в ходе редактирования случайно будет потеряна первая строка, на вторую строку транслятор почти наверняка выдаст сообщение об ошибке. А вот первая строка м. оказаться синтаксически правильной

if (a<b) and (c<d)

Тогда при случайной потере второй строки транслятор ошибки не выдаст. Надо позаботиться о том, чтобы выдал.

  1. Если длинное выражение стоит в операторе присваивания, то после переноса продолжать его надо правее знака присваивания:

a:= b + c + d + e + f + g +

h + i + j + k

  1. В операторе присваивания после знака присваивания перед выражением следует вставить пробел:

a:= b+c

Финальные замечания

  1. Программа должна быть оформлена в одном стиле. Если в каких-то правилах допускается вариативность, то в конкретной программе должен применяться всюду какой-то один вариант.

  2. Очень полезна выработка «личных стандартов». Если в каких-то правилах допускается вариативность, выберите для себя какой-то один вариант и всегда используйте только его. Это упрощает как написание программ (не надо каждый раз думать и принимать решение), так и их чтение.

  3. Еще раз повторю. Главная цель оформления программы – представить ее в виде максимально удобном для чтения, максимально понятном.

6