мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
pascal:basics [04/07/2015 11:30] – oca | pascal:basics [04/07/2015 12:13] (текущий) – oca | ||
---|---|---|---|
Строка 69: | Строка 69: | ||
i, j : integer; | i, j : integer; | ||
r, q : real; // 2-е описание переменных | r, q : real; // 2-е описание переменных | ||
- | k, m : integer; | + | k, m : integer; |
+ | // | ||
Begin | Begin | ||
Строка 76: | Строка 77: | ||
... | ... | ||
End. // Конец всему (в этой программе)! | End. // Конец всему (в этой программе)! | ||
+ | |||
</ | </ | ||
+ | Объекты программы могут быть связаны описанием. | ||
+ | |||
+ | <code pascal|Cвязь между объектами> | ||
+ | const | ||
+ | n = 10; // Константа n определяет длину массива | ||
+ | type | ||
+ | Arr10 = array[1 .. n] of integer; | ||
+ | var | ||
+ | A,B : Arr10; | ||
+ | </ | ||
+ | |||
+ | Запомните правило - **если что-то, | ||
+ | |||
+ | Учтите, | ||
+ | |||
+ | Ниже приведён неправильный код, где ничего не описывается заблаговременно. | ||
+ | |||
+ | <code pascal|Так нельзя! > | ||
+ | |||
+ | var | ||
+ | A,B : Arr10; | ||
+ | | ||
+ | type | ||
+ | Arr10 = array[1 .. n] of integer; | ||
+ | | ||
+ | const | ||
+ | n = 10; | ||
+ | |||
+ | </ | ||
+ | |||
+ | В раздел описаний может входить несколько " | ||
+ | |||
+ | <code pascal|" | ||
+ | |||
+ | var | ||
+ | i, j : integer; | ||
+ | |||
+ | const | ||
+ | n = 10; // Спохватились и описали константу n | ||
+ | |||
+ | var | ||
+ | A,B : array[1 .. n] of integer; | ||
+ | </ | ||
+ | === Полный пример === | ||
- | Подразделы могут следовать в любом порядке, но запомните правило - **если что-то, | + | Подразделы могут следовать в любом порядке и повторяться. |
В примере приводится " | В примере приводится " | ||
Строка 88: | Строка 134: | ||
<code pascal|Пример раздела описаний> | <code pascal|Пример раздела описаний> | ||
+ | ... // Здесь могли бы быть заголовок и раздел импорта | ||
const // Начался 1-й раздел констант | const // Начался 1-й раздел констант | ||
Pi = 4.0; // Описание (именованной) константы | Pi = 4.0; // Описание (именованной) константы | ||
Строка 130: | Строка 177: | ||
- | |||
- | <code pascal|Cвязь между объектами> | ||
- | const | ||
- | n = 10; // Константа n определяет длину массива | ||
- | type | ||
- | Arr10 = array[1 .. n] of integer; | ||
- | var | ||
- | A,B : Arr10; | ||
- | </ | ||
- | |||
- | Из этого правила есть единственное исключение, | ||
- | |||
- | Ниже приведён неправильный код, где ничего не описывается заблаговременно. | ||
- | |||
- | <code pascal|Так нельзя! > | ||
- | |||
- | var | ||
- | A,B : Arr10; | ||
- | | ||
- | type | ||
- | Arr10 = array[1 .. n] of integer; | ||
- | | ||
- | const | ||
- | n = 10; | ||
- | |||
- | </ | ||
- | |||
- | В раздел описаний может входить несколько " | ||
- | |||
- | <code pascal|" | ||
- | |||
- | var | ||
- | i, j : integer; | ||
- | |||
- | const | ||
- | n = 10; // Спохватились и описали константу n | ||
- | |||
- | var | ||
- | A,B : array[1 .. n] of integer; | ||
- | </ | ||
Строка 178: | Строка 185: | ||
<code pascal|Пример 1> | <code pascal|Пример 1> | ||
Begin | Begin | ||
- | | + | // Если убрать этот комментарий, |
- | // минимальная правильная программа на Паскале | + | |
+ | // Впрочем, | ||
End. | End. | ||
</ | </ | ||
- | Данная программа работает (стирает с экрана следы работы предыдущих программ), | + | Данная программа |
<code pascal|Пример 2> | <code pascal|Пример 2> | ||
Строка 204: | Строка 212: | ||
Const // Раздел констант | Const // Раздел констант | ||
n = 5; // В данном случае n - не переменная, | n = 5; // В данном случае n - не переменная, | ||
- | m : integer = 6; // Один из ужасов Паскаля. Это - статическая переменная! Без понимания, | + | m : integer = 6; // Один из ужасов Паскаля. Это - статическая переменная! |
+ | // Без понимания, | ||
+ | // но это - настоящая переменная | ||
| | ||
Var // Раздел переменных | Var // Раздел переменных | ||
i: | i: | ||
| | ||
- | Label // Раздел меток. У меток описывать нечего, | + | Label // Раздел меток. |
- | | + | BeeginProgram, |
+ | EndProgram; | ||
+ | | ||
+ | Type | ||
+ | S100 = string[100]; | ||
Procedure Proc(x: | Procedure Proc(x: | ||
+ | // Данная процедура принимает параметр x | ||
+ | // после чего всегда печатает: | ||
+ | // " | ||
+ | Const | ||
+ | S2 = '. Не мешайте работать!'; | ||
+ | Var | ||
+ | S1 : S100; | ||
+ | | ||
Begin: | Begin: | ||
- | | + | |
+ | S1 := ' | ||
+ | writeln(S1, x, S2 ); | ||
End; | End; | ||
- | Begin | + | Begin |
- | BeginProgram: | + | BeginProgram: |
- | goto EndProgram; | + | ; // Отсюда собираемся работать |
- | Proc(n); | + | goto EndProgram; |
- | EndProgram: | + | Proc(n); |
- | ; | + | goto BeginProgram; |
- | End. | + | EndProgram: |
+ | ; // Перекур после честной работы | ||
+ | End. // Теперь - совсем всё | ||
</ | </ | ||