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

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
pascal:basics [04/07/2015 10:45] ocapascal:basics [04/07/2015 11:04] oca
Строка 7: Строка 7:
  
 <code pascal|Общая структура программы> <code pascal|Общая структура программы>
-__Program__ <правильное имя>;+Program <правильное имя>;
     // Предложение, содержащее **заголовок программы**.      // Предложение, содержащее **заголовок программы**. 
     // Данное предложение может отсутствовать, поскольку в     // Данное предложение может отсутствовать, поскольку в
Строка 16: Строка 16:
     // языка, которые его требуют.     // языка, которые его требуют.
     // Например:     // Например:
-__Program__ //ChoiseSort3v//+Program ChoiseSort3v; 
     // Предложения заканчивается точкой с запятой          // Предложения заканчивается точкой с запятой     
  
-__Uses__ <список подключаемых библиотек>;   +Uses <список подключаемых библиотек>;   
     // **Раздел импорта**,      // **Раздел импорта**, 
     // который всегда состоит из одного предложения!     // который всегда состоит из одного предложения!
Строка 25: Строка 25:
     // используете никаких дополнительных библиотек.     // используете никаких дополнительных библиотек.
     // Например:     // Например:
-__Uses__ //CRT, OGLgraph//;  +Uses CRT, OGLgraph;  
     // Список разделяется запятыми,      // Список разделяется запятыми, 
     // предложения заканчивается точкой с запятой       // предложения заканчивается точкой с запятой  
Строка 38: Строка 38:
     //   не импортируется из библиотек,     //   не импортируется из библиотек,
     //   не является локальным объектом внутри процедуры.     //   не является локальным объектом внутри процедуры.
-    // А именно - **именованные константы****пользовательские типы**+    // А именно - именованные константы, пользовательские типы, 
-    // **переменные** и наконец - имена **меток**+    // переменные и наконец - имена меток. 
     //     //
     // В принципе, этот раздел тоже может отсутствовать.      // В принципе, этот раздел тоже может отсутствовать. 
                                                                                                                                                          
-__Begin__  // Обязательные **операторные скобки** Begin-end+Begin    // Обязательные операторные скобки Begin-end
   <Раздел кода>                            <Раздел кода>                         
     // Операторы, составляющие "главную процедуру"       // Операторы, составляющие "главную процедуру"  
Строка 49: Строка 49:
     // Тогда программа честно ничего не делает.     // Тогда программа честно ничего не делает.
     // Но "скобки" должны быть.     // Но "скобки" должны быть.
-__End.__   // Программа кончается точкой +End    // Программа кончается точкой 
 </code> </code>
  
-В этом примере кода подчёркнуты **служебные слова**, а имена (**идентификаторы**) выделены наклоном. Текст в угловых скобках "<" и ">" требует замены "по смыслу"В последствии мы так делать не будем!+Текст в **угловых скобках** "<" и ">" требует замены "по смыслу"Не путайте с операциями < и >!
  
 Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем.  Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем. 
Строка 62: Строка 62:
 <code pascal|Пример раздела описаний> <code pascal|Пример раздела описаний>
 const                    // Начался раздел констант const                    // Начался раздел констант
-  n = 10;                // Описание константы +  n = 10;                // Описание (именованной) константы 
-    +   
-var                      // Начался раздел переменных, значит - закончился раздел констант+type                     // Начался раздел типов, значит - закончился раздел констант 
 +  A10 = array[1..n] of integer; 
 +                         // Это тип, определённый пользователем.   
 +                         // Обратите внимание мы использовали  
 +                         // ранее описанную константу 
 +                          
 +var                      // Начался раздел переменных, закончился раздел типов
   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. Имеем право.
 +  A,B  : A10;            // 4-е описание переменных пользовательского типа A10 
      
   ...                    // Что-то ещё, возможно - ничего   ...                    // Что-то ещё, возможно - ничего
      
   // Где-то здесь кончается раздел переменных   // Где-то здесь кончается раздел переменных
 +
 +label                    // Раздел меток нужен редко
 +  1, endOfAll;           // список объявленных меток
 +                         // Теперь это "законные" метки
      
   ...                    // Что-то ещё, возможно - ничего   ...                    // Что-то ещё, возможно - ничего
Строка 84: Строка 95:
 </code> </code>
  
-Если что-то, описываемое вами, ссылается на что-то другое, то это другое должно быть описано ранее. Например, если вы используете константу для описания массива, то она должна быть описана заранее. Учтите, что библиотечные объекты, т.е. системные или описанные в библиотеках, подключённых с помощью //uses//, описывать не надо и на них можно ссылаться из любого места. +Запомните правило - если что-то, описываемое вами, ссылается на что-то другое, то это другое должно быть описано заранее. Например, если вы используете константу для описания массива (как в примере), то она должна быть описана выше по коду 
 + 
 +Учтите, что библиотечные объекты, т.е. объекты системные или описанные в библиотеках, подключённых с помощью //uses//, описывать не надо и на них можно ссылаться из любого места. Но, как мы узнаем позже, их имена можно "перекрыть"!
  
 <code pascal|Cвязь между объектами> <code pascal|Cвязь между объектами>