мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
pascal:basics [04/07/2015 10:32] – oca | pascal:basics [04/07/2015 11:30] – oca | ||
---|---|---|---|
Строка 4: | Строка 4: | ||
== Структура программы == | == Структура программы == | ||
- | Общая структура программы на языке Паскаль задана жёстко и выглядит так:. | + | Общая структура программы на языке Паскаль задана жёстко и выглядит так: |
<code pascal|Общая структура программы> | <code pascal|Общая структура программы> | ||
- | __Program__ | + | Program |
// Предложение, | // Предложение, | ||
- | // Данное предложение может отсутствовать, | + | // Данное предложение может отсутствовать, |
- | // и большинстве (во всех?) современных версий Паскаля никакой роли не играет. | + | // используемой нами |
- | // Оно оставлено для совместимости с другими версиями языка | + | // и большинстве (во всех?) современных версий Паскаля |
+ | // никакой роли не играет. | ||
+ | // Оно оставлено для совместимости с другими версиями | ||
+ | // языка, которые его требуют. | ||
// Например: | // Например: | ||
- | __Program__ //ChoiseSort3v//; | + | Program |
// Предложения заканчивается точкой с запятой | // Предложения заканчивается точкой с запятой | ||
- | __Uses__ | + | Uses < |
- | // **Раздел импорта**, | + | // **Раздел импорта**, |
- | // Данное предложение может отсутствовать, | + | // который всегда состоит из одного предложения! |
- | // никаких дополнительных библиотек. | + | // Данное предложение может отсутствовать, |
+ | // используете никаких дополнительных библиотек. | ||
// Например: | // Например: | ||
- | __Uses__ //CRT, OGLgraph//; | + | Uses CRT, OGLgraph; |
- | // Список разделяется запятыми, | + | // Список разделяется запятыми, |
+ | // предложения заканчивается точкой с запятой | ||
| | ||
< | < | ||
Строка 29: | Строка 34: | ||
// но все они должны быть здесь - перед кодом. | // но все они должны быть здесь - перед кодом. | ||
// | // | ||
- | // Этот раздел содержит описание всего, что не задано изначально | + | // Этот раздел содержит описание всего, что |
- | // импортируется из | + | // не задано изначально, |
+ | // не импортируется из библиотек, | ||
+ | // не является локальным объектом внутри процедуры. | ||
+ | // А именно - именованные константы, | ||
+ | // переменные и наконец - имена меток. | ||
// | // | ||
- | // В принципе, | + | // В принципе, |
| | ||
- | __Begin__ | + | Begin |
< | < | ||
- | // Операторы, | + | // Операторы, |
+ | // Чисто теоретически, | ||
// Тогда программа честно ничего не делает. | // Тогда программа честно ничего не делает. | ||
- | __End.__ | + | // Но " |
+ | End. // Программа кончается точкой | ||
</ | </ | ||
+ | Текст в **угловых скобках** (символы < и >) требует замены "по смыслу" | ||
- | Обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем. | + | Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем. |
== Раздел описаний == | == Раздел описаний == | ||
- | Раздел описаний может состоять из нескольких подразделов, | + | Раздел описаний может состоять из нескольких подразделов, |
+ | |||
+ | <code pascal|Простой пример раздела описаний> | ||
- | <code pascal|Пример раздела описаний> | ||
const // Начался раздел констант | const // Начался раздел констант | ||
- | n = 10; // Описание константы | + | n = 10; // Описание |
- | | + | |
- | var // Начался раздел переменных, | + | var // Начался раздел |
+ | // | ||
i, j : integer; | i, j : integer; | ||
r, q : real; // 2-е описание переменных | r, q : real; // 2-е описание переменных | ||
k, m : integer; | k, m : integer; | ||
+ | |||
+ | Begin | ||
+ | | ||
+ | // Обязательный раздел кода | ||
+ | ... | ||
+ | End. // Конец всему (в этой программе)! | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Подразделы могут следовать в любом порядке, | ||
+ | |||
+ | В примере приводится " | ||
+ | |||
+ | Метки описываются там, где это удобно. | ||
+ | |||
+ | <code pascal|Пример раздела описаний> | ||
+ | |||
+ | const // Начался 1-й раздел констант | ||
+ | Pi = 4.0; // Описание (именованной) константы | ||
+ | // Внимание - мы перекрыли системное определение Пи! | ||
+ | |||
+ | var // Начался 1-й раздел глобальных переменных, | ||
+ | // значит - закончился раздел констант | ||
+ | i, j : integer; | ||
+ | r, q : real; // 2-е описание переменных | ||
+ | k, m : integer; | ||
+ | | ||
+ | const // Начался 2-й раздел констант | ||
+ | n = 10; // Описание (именованной) константы | ||
+ | | ||
+ | type // Начался раздел типов | ||
+ | A10 = array[1..n] of integer; | ||
+ | // Это тип, определённый пользователем. | ||
+ | // Обратите внимание - мы использовали | ||
+ | // ранее описанную константу | ||
+ | |||
+ | var // Начался раздел переменных, | ||
+ | A,B : A10; // 4-е описание переменных пользовательского типа A10 | ||
| | ||
... // Что-то ещё, возможно - ничего | ... // Что-то ещё, возможно - ничего | ||
| | ||
// Где-то здесь кончается раздел переменных | // Где-то здесь кончается раздел переменных | ||
+ | |||
+ | label // Раздел меток нужен редко | ||
+ | 1, endOfAll; | ||
+ | // Теперь это " | ||
| | ||
... // Что-то ещё, возможно - ничего | ... // Что-то ещё, возможно - ничего | ||
Строка 72: | Строка 129: | ||
</ | </ | ||
- | Если что-то, | + | |
<code pascal|Cвязь между объектами> | <code pascal|Cвязь между объектами> |