мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
pascal:basics [04/07/2015 10:49] ocapascal:basics [04/07/2015 11:26] oca
Строка 52: Строка 52:
 </code> </code>
  
-Текст в **угловых скобках** "<и ">требует замены "по смыслу". Не путайте с операциями < и >!+Текст в **угловых скобках** (символы < и >требует замены "по смыслу". Не путайте с операциями < и >!
  
 Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем.  Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем. 
Строка 58: Строка 58:
 == Раздел описаний == == Раздел описаний ==
  
-Раздел описаний может состоять из нескольких подразделов, разбитых по категориям описываемых объектов - типов, переменных, меток и констант. Отдельными подразделами считаются каждая функция или процедура. +Раздел описаний может состоять из нескольких подразделов, разбитых по категориям описываемых объектов - типов, переменных, меток и констант. Отдельными подразделами считаются каждая функция или процедура
 + 
 +Подразделы могут следовать в любом порядке, но запомните правило - **если что-то, описываемое вами, ссылается на что-то другое, то это другое должно быть описано заранее**. Например, если вы используете константу для описания массива (как в примере), то она должна быть описана выше по коду. Учтите, что библиотечные объекты, т.е. объекты системные или описанные в библиотеках, подключённых с помощью //uses//, описывать не надо и на них можно ссылаться из любого места. Но, как мы узнаем позже, их имена можно "перекрыть"
 + 
 +В примере приводится "канонический" порядок следования подразделов - именованные константы, типы, переменные. За ними часто следуют описания одной или нескольких процедур и функций, которых в примере нет. Затем порядок может повториться. Это делается, чтобы разбить все объекты, используемые в программе "по смыслу" - типы, определённые пользователем, процедуры, работающие с этими типами и вспомогательные объекты - константы и служебные переменные.  
 + 
 +Метки описываются там, где это удобно.
  
 <code pascal|Пример раздела описаний> <code pascal|Пример раздела описаний>
-const                    // Начался раздел констант + 
-  10               // Описание константы +const                    // Начался 1-й раздел констант 
-    +  Pi 4.0             // Описание (именованной) константы 
-var                      // Начался раздел переменных, значит - закончился раздел констант+                         // Внимание - мы перекрыли системное определение Пи! 
 + 
 +var                      // Начался 1-й раздел глобальных переменных,  
 +                         // значит - закончился раздел констант 
   i, j : integer;        // 1-е описание переменных   i, j : integer;        // 1-е описание переменных
   r, q : real;           // 2-е описание переменных   r, q : real;           // 2-е описание переменных
   k, m : integer;        // 3-е описание переменных - снова integer. Имеем право.   k, m : integer;        // 3-е описание переменных - снова integer. Имеем право.
 +  
 +const                    // Начался 2-й раздел констант
 +  n = 10;                // Описание (именованной) константы
 +  
 +type                     // Начался раздел типов
 +  A10 = array[1..n] of integer;
 +                         // Это тип, определённый пользователем.  
 +                         // Обратите внимание - мы использовали 
 +                         // ранее описанную константу
 +                         
 +var                      // Начался раздел переменных, закончился раздел типов
 +  A,B  : A10;            // 4-е описание переменных пользовательского типа A10 
      
   ...                    // Что-то ещё, возможно - ничего   ...                    // Что-то ещё, возможно - ничего
      
   // Где-то здесь кончается раздел переменных   // Где-то здесь кончается раздел переменных
 +
 +label                    // Раздел меток нужен редко
 +  1, endOfAll;           // список объявленных меток
 +                         // Теперь это "законные" метки
      
   ...                    // Что-то ещё, возможно - ничего   ...                    // Что-то ещё, возможно - ничего
Строка 84: Строка 109:
 </code> </code>
  
-Если что-то, описываемое вами, ссылается на что-то другое, то это другое должно быть описано ранее. Например, если вы используете константу для описания массива, то она должна быть описана заранее. Учтите, что библиотечные объекты, т.е. системные или описанные в библиотеках, подключённых с помощью //uses//, описывать не надо и на них можно ссылаться из любого места. +
  
 <code pascal|Cвязь между объектами> <code pascal|Cвязь между объектами>