#8.2 Начальные сведения о форматировании кода. Отступы в теле программы. Паскаль

В этом уроке рассмотрим самый простой случай форматирования - форматирование кода на первом уровне вложенности в теле программы.

В предыдущих урока мы уже писали код, например:

var a, b, c: string; // объявляем списком три переменные строкового типа
begin
  a := 'abc'; // строковый литерал из 3 символов
  b := a; // теперь b равно 'abc' (хранит в себе строку 'abc')
  с := b; //  теперь c равно 'abc'
end.

-- почему в этой программе перед, например, begin нет пробела, а перед строкой a := 'abc'; сразу два?

Разберем этот вопрос ниже ;)

Блоки и базовый отступ

Форматирование нужно, чтобы показать к какому блоку относится код, пока что из блоков мы знаем только один - это тело программы.

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

Для единообразия будем использовать базовый отступ равный двум пробелам, например:

var a:integer;
begin   // нулевой отступ (ноль пробелов слева)
  a := 2; // одинарные отступ (два пробела слева)
  a := 3 + 5;  // одинарные отступ (два пробела слева)
end; 
 

-- помимо величины отступа важно также, что:

Разбор практических примеров

Пример №1 -- неправильное форматирование

var a:integer;
begin
  a := 2;
   readln();
end; 

-- здесь отступ перед второй строкой тела программы readln(); больше, чем перед первой строкой a := 2;, что неправильно - отступы для элементов на одном уровне вложенности должны быть одинаковыми, правильно будет:

var a:integer;
begin
  a := 2;
  readln()
end;

Самостоятельная работа (необязательный раздел)

  1. Сдавать/выладывать решение не обязательно:
    Есть код:
    var a: integer;
      begin
    writeln('vvedite celoe chislo');
    readln(a);
    
        readln();
    end. 

    Если он отфроматирован неправильно - исправьте это, и объясните для себя почему нужно исправить именно так.

  2. Сдавать/выладывать решение не обязательно:
    Есть код:
    var a,b : integer;
    begin
      a:=2;
    b:=3;
    
    readln();
    end.

    Если он отфроматирован неправильно - исправьте это, и объясните для себя почему нужно исправить именно так.