Расположение операторов в программе
Текст любой программы можно записать многими разными способами.
Пример. Определить длину стороны треугольника по двум другим и углу между ними.
Первый вариант.
program length;
Var side1,side2,side3,angle: real;
Begin
Read(side1,side2,side3,angle);
Side3 :=sqrt(sqr(side1)+sqr(side2)-2*side1*side2*cos(angle));
Write (‘third side=’,side3)
End.
Второй вариант. Все то же записано в строчку: Var side1,side2,side3,angle: real; Begin Read(side1,side2,side3,angle); Side3 :=sqrt(sqr(side1)+sqr(side2)-2*side1*side2*cos(angle)); Write (‘third side=’,side3) End.
Большинство программистов предпочтет 1-ый вариант, поскольку он нагляднее выражает структуру программы. Такую программу легче читать и понимать. Наконец, она красивее.
С точки зрения. ЭВМ совершенно безразлично, как записана программа, важно лишь, чтобы она была правильной. Если принять эту точку зрения, то говорить о стиле программирования становится просто бессмысленно. Но программы пишутся все-таки и для людей. Да, они выполняются на вычислительной машине, но разбираться в них, использовать, модифицировать должны программисты. Поэтому писать программы необходимо так, чтобы читатель программы затрачивал наименьшие усилия на ее понимание. Поэтому важно расположение операторов в программе. Для усвоения хорошего стиля можно дать некоторые рекомендации, цель которых заключается в том, чтобы текст программы имел хорошую структуру и его легко было бы читать.
Правила форматирования
1. Составной оператор
BEGIN здесь S1, S2,…,Sn - операторы
S1;
S2;
….
Sn
End;
2. Условный оператор
if B
then S1
else S2; В- логическое выражение(условие); S1,S2- операторы
Если S1,S2 - составные операторы, то надо использовать такое расположение:
If B
Then
S1
Else
S2;
3. Операторы цикла
while B DO
begin
S1;
S2;
….
Sn;
End;
Если один из операторов S1 есть снова оператор цикла WHILE, то рекомендуется расположение:
While B DO
Begin
S1;
S2;
While B1 DO
Begin
S3;
S4;
End;
S5
End;
Оператор REPEAT располагается так:
Repeat
S1;
S2;
….
Sn;
Until B;
Оператор FOR располагается следующим образом:
For i:=A1 to A2 DO A1,A2- выражения
S1;
4. Оператор выбора
CASE C OF
A1: S1;
A2: S2;
……..
An: Sn;
End;
5. Оператор WITH
with k DO
S1; k - идентификатор поля
6. Служебные (зарезервированные) слова PROGRAM, LABEL, CONST, TYPE, VAR, PROCEDURE ,FUNCTION записываются в самой левой позиции. При использовании вложенных процедур и функций соответствующие им слова PROCEDURE, FUNCTION записываются правее. Соответственно сдвигаются вправо и тела вложенных процедур и функций. Итак, при написании программ вложенную конструкцию рекомендуется располагать правее на 3-5 позиций объемлющей ее конструкции.
Отдельные логические части программы часто выделяют пустой строкой. К отдельным логическим частям относятся все разделы программы, а также отдельные процедуры и функции. При этом обычно разделы программы отделяют друг от друга строкой пробелов, а процедуры и функции - строкой из подчеркивания.
Все сказанное о расположении операторов в программе носит рекомендательный характер. Этим рекомендациям желательно следовать, поскольку они обобщают уже довольно большой опыт не одного поколения программистов. Вместе с тем к ним не надо относиться как к догмам. Например, не будет ошибкой запись в одну строку трех операторов присваивания. И другие операторы можно записывать в строку, если это не затрудняет чтения.
Но могут быть ошибки в форматировании записи, вводящие в заблуждение.