49785 (597462), страница 2
Текст из файла (страница 2)
•Секция типов. Начинается с зарезервированного слова type. Как уже говорилось выше, в языке Pascal все должно быть описано. В том числе, должны быть описаны все ячейки памяти, которые используются в программе. Такие ячейки памяти называются переменными, Каждая переменная имеет тип, показывающий, что именно может в ней находиться, К примеру, переменная может иметь тип «целое число, либо «нецелое число», либо «строка» и т. д. В языке Pascal имеется много стандартных типов переменных (к примеру, все вышеперечисленные типы являются стандартными). Однако может возникнуть необходимость описать нестандартный, «пользовательский» тип. Поэтому данная секция применяется для описания нестандартных типов. Мы пока не знакомы даже со стандартными типами, поэтому пока эта секция нам не понадобится.
•Секция переменных. Начинается с зарезервированного слова var. Понятие переменной в программировании исключительно важно, поэтому этому понятию будет посвящен отдельный раздел. Пока же определим применив следующим образом: переменная – это ячейка памяти, имеющая имя и тип и способная хранить некоторое значение. Еще раз подчеркнем, что все переменные, используемые в программе, должны быть предварительно объявлены.
Пример секции переменных
var A:integer;
Секция пользовательских процедур и функций. Начинается с одного из зарезервированных слов procedure либо function. В языке Object Pascal имеется большое количество стандартных функций: для вычисления квадратного корня, модуля, целой части числа, синуса, косинуса и так далее. Функция - это отдельная часть программы, вычисляющая некоторое значение и возвращающая в программу соответствующий результат. Процедура напоминает функцию, но она только выполняет некоторые действия, не возвращая никакого результата. Мы пока не знакомы со стандартными процедурами и функциями. Заметим, что обработчик события является процедурой.
Секция операторов. Начинается с зарезервированного слова begin и заканчивается зарезервированным словом end. Данная секция описывает действия, выполняемые программой либо обработчиком события.
Обратим внимание, что секций с описаниями четыре, а секция, задающая действия, только одна. Это одна из особенностей языка Pascal: правильные описания важнее, чем действия, выполняемые программой.
Пример
Обобщим теперь то, что мы знаем про Pascal, в следующем обработчике:
Обработчик события с секциями описания;
procedure TForral.ButtonlClick(Sender:TObject); const DaysInWeek = 7; var A:integer; begin
AEdit.Text:='Vasya' end;
Это обработчик события «нажатие на кнопку с именем Buttonl». В нем описывается константа DaysInWeek и переменная А – При нажатии на кнопку Buttonl обработчик обращается к объекту AEdit, который является текстовым редактором, и устанавливает текст в нем в 'Vasya'.
1.3 Идентификаторы, зарезервированные слова и комментарии
В предыдущей главе мы давали имена константе и переменной. В языке Pascal существуют четкие правила относительно того, какие имена можно использовать, а какие нет.
В языке Pascal любое имя называется идентификатором. Это может быть имя константы, типа, переменной, объекта и так далее.
Перечислим правила, по которым создаются идентификаторы.
-
Идентификатор должен состоять из латинских букв, цифр и символов подчеркивания.
-
Идентификатор должен начинаться с буквы или символа подчеркивания.
-
Идентификатор никогда не содержит пробелов.
-
Идентификатор может иметь любую длину, но учитываются только первые 255 символов.
-
В языке Pascal прописные и строчные буквы не различаются. Поэтому идентификаторы Vasya, VASYA и vasya одинаковы.
-
Хорошим тоном считается начинать идентификатор с прописной буквы, а остальные буквы делать строчными. Если же идентификатор состоит из нескольких слов, то каждое слово начинается с прописной буквы. Например, идентификаторы DaysInWeek, А и AEdit соответствуют этой рекомендации.
Пример
procedure TForml.ButtonlClick(Sender:TObject); const First = 34;
Second = 2; var FirstVar:integer;
SecondVar:extended; begin
end;
В данном примере объявляются две константы и две переменные. Константы называются First и Second и равны соответственно 1 и 2. Переменные называются FirstVar и SecondVar и имеют типы integer и extended соответственно. Тип integer – это стандартный тип для хранения целых чисел, а тип extended - для вещественных.
Заметим, что если в секции делается несколько объявлений, то повторять начало секции (const, var и т. д.) второй раз не надо. Однако это не запрещено. Несколько переменных одинакового типа можно объявить через запятую.
Количество и порядок секций описания в языке Object Pascal значения не имеют.
Заметим также, что каждое объявление заканчивается точкой с запятой. Где они ставятся, а где нет, мы тоже поясним позже.
Кроме идентификаторов, в языке Pascal важны также зарезервированные слова. Это слова, которым в языке придается самостоятельный смысл. Например, мы уже знаем зарезервированные слова const, type» var, procedure, function, begin, end. В среде Delphi зарезервированные слова выделяются жирным шрифтом.
Отметим, что идентификатор не может называться так же, как зарезервированное слово.
Мы не будем сейчас перечислять все зарезервированные слова, а будем их вводить по мере изучения языка.
Как мы уже говорили, в языке Pascal прописные и строчные буквы не различаются. Однако хорошим тоном считается зарезервированные слова писать строчными буквами.
Комментарий – это часть программы, игнорируемая компилятором.
Комментарии пишутся программистами для хранения информации о программе прямо внутри программы. Выделим 2 основных вида комментариев:
-
Вводные комментарии. Хранят информацию о конкретном обработчике либо обо всей программе целиком: автор, дата создания, решаемая задача;
-
Поясняющие комментарии. Это комментарии, поясняющие конкретные действия программы.
В Object Pascal есть 3 способа создания комментариев:
-
комментарий заключается в фигурные скобки: {комментарий}
-
комментарий заключается в скобки со звездочкой: (комментарий *)
-
комментарий начинается с двух slash и длится до конца строки: // комментарий
Наиболее популярный способ – первый, использующийся с момента создания языка.
Писать комментарии очень желательно – это облегчает понимание программы.
Как мы уже упоминали, понятие переменной является исключительно важным в программировании, поэтому рассмотрим его подробнее.
Рассматривая структуру компьютера, мы видели, что вся информация находится в памяти. Однако в языке Pascal нельзя положить какое-либо значение «просто в память». Есть четкое правило: все, что используется, должно быть предварительно описано.
Поэтому любая используемая ячейка памяти требует описания. При описании мы даем ячейке имя (идентификатор), по которому затем с ней будем работать, и тип, показывающий, какие значения могут находиться в данной ячейке.
Ячейка памяти, имеющая имя и тип, называется переменной.
Отметим, что термин «переменная» – исторический и не совсем точно отражает смысл этого понятия. Здесь может возникнуть путаница с математическим термином «переменная», означающим «неопределенное значение». В программировании же «переменная», напротив, в каждый момент времени имеет четко определенное значение, которое может быть изменено только явным указанием того, что значение надо изменить. Возможно, термин «изменяемая константа» подошел бы больше, но в программировании за термином «константа» также закреплен четкий смысл: это значение, которое нельзя изменять.
Когда переменная объявлена, в ней изначально находится «мусор» – произвольное значение. Нужно быть осторожным, чтобы не использовать этот мусор в вычислениях, а вовремя изменить значение переменной на правильное.
Для изменения значения переменной используется оператор присваивания.
1.4 Понятие синтаксиса
В каждом естественном языке, таком как русский, английский, немецкий и т. д., у каждой конструкции есть синтаксис – это правила построения этой конструкции языка. Например, предложение в русском языке строится по определенным правилам. Эти правила достаточно сложны, и вы изучаете их в течение многих лет на уроках русского языка.
В искусственных языках, таких как Object Pascal, также имеется синтаксис, но он значительно проще. Но нужно помнить, что он есть, и его необходимо придерживаться при построении конструкций такого языка. Вы не можете на Object Pascal писать так, как вам хочется, надо соблюдать синтаксис.
Основной конструкцией Object Pascal, так же как и многих других языков программирования, является оператор. Оператор – это аналог предложения в естественном языке. Он выражает некоторое действие, которое необходимо выполнить. Операторы разделяются точкой с запятой.
У каждого оператора Object Pascal есть строго определенный синтаксис- правила построения. При описании оператора мы будем обязательно приводить его синтаксис. При описании синтаксиса мы будем использовать следующие условные обозначения:
– то, что указано в угловых скобках, должно здесь обязательно находиться;
[ ] – то, что указано в квадратных скобках, может здесь находиться, но не обязательно находится.
Синтаксис оператора присваивания:
Итак, перейдем к синтаксису оператора присваивания
:=;
Оператор присваивания работает следующим образом: сначала вычисляется выражение в правой части, а затем результат вычисления кладется в переменную, стоящую в левой части.
-
При присваивании производится жесткий контроль: переменная
-
и выражение должны быть обязательно одного типа!
Примеры присваивания
А: =10; – В данном случае в переменную А кладется значение10.
В:=А; – В данном случае в переменную В кладется то же самое значение, что и было в переменной А, т. е. 10.
Это происходит потому, что при присваивании сначала вычисляется правая часть, а затем результат кладется в переменную, что стоит слева. Правая часть в данном примере очевидно равна 10, это значение и кладется в переменную, стоящую слева, т. е. в переменную В.
В: =А+1; – В данном случае в переменную В кладется 11, а значение А не изменяется.
Это происходит по той же причине: вычисляется выражение справа, оно равно 11, и это значение кладется в переменную, стоящую слева, т. е. в переменную В.
Значение переменной, участвующей в вычислении выражения, не меняется. Значение переменной может измениться, только если она находится в левой части оператора присваивания.
А:=А+1; – В данном случае А становится равно 11.
Это происходит в точности по той же причине, что и в предыдущем примере.
Целые и вещественные типы
Приступим теперь к изучению типов, которые есть в языке Object Pascal. Начнем с типов, используемых для хранения чисел.
Числовые типы данных в языке Object Pascal делятся на 2 группы: целые и вещественные. Целые типы – это типы для переменных, хранящих целые числа, а вещественные - это типы для переменных, хранящих нецелые числа. Все типы языка Object Pascal делятся на фундаментальные и адаптивные. Фундаментальные типы не изменятся в будущих версиях Delphi. Адаптивные типы могут в будущих версиях Delphi измениться. Целых типов в Object Pascal много: их 9. Различаются они количеством памяти, которую занимают, и диапазоном значений. Мы рассмотрим подробнее тип integer.
Тип integer занимает в памяти 4 байта, диапазон его значений примерно от -2*109 до 2*109. Тип является адаптивным. Это связано с тем, что с изменением разрядности процессора (размера чисел, которые процессор способен обработать за одну операцию) меняется и размер типа integer, чтобы наиболее эффективно использовать процессор.
Пример
В данном примере внутри обработчика событий объявлены две переменные А и В, имеющие тип integer.
procedure TForml.ButtonlClick (Sender:TObject);
var A,B:integer; begin
end;