Расположение операторов в программе

Текст любой программы можно записать многими разными способами.

Пример. Определить длину стороны треугольника по двум другим и углу между ними.

Первый вариант.

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 позиций объемлющей ее конструкции.

Отдельные логические части программы часто выделяют пустой строкой. К отдельным логическим частям относятся все разделы программы, а также отдельные процедуры и функции. При этом обычно разделы программы отделяют друг от друга строкой пробелов, а процедуры и функции - строкой из подчеркивания.

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

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