Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

2. Логические выражения и условный оператор

Предыдущий раздел:

Следующий раздел:

2.6. Оформление текста программ

Как известно, людям свойственно ошибаться. Особенно это верно в отношении программистов. По некоторым оценкам ядро системы Linux содержит порядка 15000 пока еще не исправленных ошибок (источник). Практически любой написанный вами текст программы будет содержать ошибки и значительная часть времени будет уходить на их поиск и исправление.

Отсюда вытекает преставление о стиле программирования. Существуют определенные правила написания программ, соблюдение которых позволяет уменьшить вероятность появления ошибок. Программы (особенно такие простые, как вам придется писать на начальном этапе) могут правильно работать и при нарушении этих правил, однако все же следует их соблюдать. Дополнительное время и усилия, которые будут на это потрачены, многократно окупятся впоследствии.

Простейшее, но при этом очень важное стилистическое правило описывает то, как надо располагать текст программы. Существует несколько вариантов соглашений о правильном расположении текста. В данном пособии мы будем следовать Object Pascal Style Guide — стандарту, выработанному разработчиками языка Delphi. Итак, следует действовать следующим образом:

1) Слово var пишется на отдельной строчке. Следующие за ним описания переменных начинаются с новой строки. При этом у всех описаний делается отступ слева в два пробела. Переменные разных типов описываются на разных строках.

Правильно:

  var  {Слово var на отдельной строке без отступа слева}
    x, y: real;  {Описания переменных с новой строки.
                 Отступ слева в два пробела}
    i: integer;  {Переменная другого типа на отдельной строке,
                 с тем же отступом}

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

3) Слова begin и end, ограничивающие раздел операторов пишутся без отступа. Весь же текст программы между ними снова пишется с отступом в два пробела.

4) На одной строке должен располагаться только один оператор. Так, хотя допустимо писать, например:

  begin
    x:=1; y:=2; z:=3; writeln(x, y, z);
  end.

следует все же писать:

  begin
    x:=1;
    y:=2;
    z:=3;
    writeln(x, y, z);
  end.

5) Условный оператор записывается следующим образом:

  begin
    ...
    {Первая строка с отступом в два пробела}
    if <условие> then
    {слов begin с тем же отступом, что и слово if}
    begin
      <Операторы 1>{Отступ на два пробела больше, чем у if и begin}
    {end обязательно с тем же отступом, что и соответствующий begin}
    end else
    begin
      <Операторы 2>{Отступ на два пробела больше, чем у if и begin}
    end;

Пример правильного оформления:

var
  x, y: real;
begin
  readln(x, y);
  if x > y then
  begin
    writeln('Max(x, y) = ', x);
  end else
  begin
    writeln('Max(x, y) = ', y);
  end;
  readln;
end.

Пример НЕправильного оформления:

{Переменные на той же строке, что и var}
var  x, y: real; 
begin
  readln(x, y);
  {Оператор на той же строке, что и if}
  if x > y then writeln('Max(x, y) = ', x)
  else
    {begin с отступом относительно if}
    begin
    writeln('Max(x, y) = ', y);
    end;
 {readln без отступа}
readln;
end.

Данная «неправильная» программа будет работать совершенно также, как и приведенная выше «правильная», однако использовать надо именно правильный вариант.

6) Внутри условного оператора могут располагаться любы другие операторы, в том числе и другие условные операторы. То, что находится внутри них, пишется с еще большим отступом.

Например:

{Переменные на той же строке, что и var}
begin
  readln(x, y, z);
  if x > y then 
  begin
     if x > z then
     begin
        {writeln с еще большим отступом}
        writeln(x);
     end;
  end;
end.

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

Соблюдение данных правил делает визуально очевидной логическую структуру вашей программы. Создание сколько-нибудь сложной программы без этого оказывается невозможным.

Следующий раздел:

Предыдущий раздел:

Добавить комментарий