Идентификаторы, зарезервированные слова и комментарии
В предыдущей главе мы давали имена константе и переменной. В языке 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 нельзя положить какое-либо значение «просто в память». Есть четкое правило: все, что используется, должно быть предварительно описано.
Поэтому любая используемая ячейка памяти требует описания. При описании мы даем ячейке имя (идентификатор), по которому затем с ней будем работать, и тип, показывающий, какие значения могут находиться в данной ячейке. Ячейка памяти, имеющая имя и тип, называется переменной. Отметим, что термин «переменная» – исторический и не совсем точно отражает смысл этого понятия. Здесь может возникнуть путаница с математическим термином «переменная», означающим «неопределенное значение». В программировании же «переменная», напротив, в каждый момент времени имеет четко определенное значение, которое может быть изменено только явным указанием того, что значение надо изменить. Возможно, термин «изменяемая константа» подошел бы больше, но в программировании за термином «константа» также закреплен четкий смысл: это значение, которое нельзя изменять. Когда переменнаяобъявлена, в ней изначально находится «мусор»– произвольное значение. Нужно быть осторожным, чтобы не использовать этот мусор в вычислениях, а вовремя изменить значение переменной на правильное. Для изменения значения переменной используется оператор присваивания. Понятие синтаксиса
Вкаждом естественном языке, таком как русский, английский, немецкий и т. д., у каждой конструкции есть синтаксис – это правила построенияэтой конструкции языка. Например, предложение в русском языке строится по определенным правилам. Эти правила достаточно сложны, и вы изучаете их в течение многих лет на уроках русского языка. В искусственных языках, таких как 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; Все переменные, объявляемые внутри обработчика, существуют только пока этот обработчик работает, а потом уничтожаются. Такие переменные будем называть «локальными». Приведем операции, которые можно выполнять с переменными целого типа. + – Сложение. - – Вычитание либо изменение знака числа (например:-5). * – Умножение. / – Деление. Заметим, что результат деления двух целых чисел имеет вещественный тип, даже если получается целое число. Div – Целая часть от деления двух чисел (дробная часть просто отбрасывается). Mod – Остаток от деления двух целых чисел (например, остаток от деления 26 на 7 равен 5). Обратим внимание на приоритеты операций. Они точно такие же, как и в математике: сначала выполняются изменения знаков чисел, затем по порядку умножения и деления, а затем сложения и вычитания. Для изменения приоритета операций используются скобки. Примеры
А:=10;{А равно 10} В:=А*2;{В равно 20} А:=В+А*2;{А равно 40} А:=А+1;{А равно 41} В:=(А+В) div4; {3 равно 15} А:=А mod 4;{А равно 1}
Переменные вещественных типов предназначены для хранения нецелых чисел. В языке Object Pascal имеются несколько вещественных типов, мы рассмотрим подробнее тип extended. Переменная типа extended занимает в памяти 10 байтов. Диапазон значений данного типа.6 * 10 4961.. 1.1 * 104932, что покрывает все разумные пределы для чисел. Точность типа 19 – 20 цифр. Тип является фундаментальным. Следует иметь в виду, что значения в переменных вещественного типа хранятся приближенно. Это значит, что переменная вещественного типа хранит ограниченное количество значащих цифр (для типа extended 19 – 20 цифр на целую и дробную части в сумме), что может приводить к ошибкам округления. При записи вещественных чисел в языке Pascal целаячасть отделяется отдробной с помощью точки.
Рассмотрим теперь некоторое вещественное число, скажем, 2.37 * 1017. Это число состоит из двух частей: мантиссы, равной в данном случае 2.37, и порядка,равного 17. Поэтому при задании вещественного числа в языке Pascal мы вынуждены отдельно задавать мантиссу, а отдельно порядок. Такой способ задания вещественного числа называется экспоненциальным форматом Формат задания вещественного числа следующий:
<мантисса>Е<порядок>
Пример В:=2.37Е17; Очевидно, что в данном случае В – переменная одного из вещественных типов. Над вещественными типами определены 4 операции: сложение, вычитание, умножение и деление. Операции div и mod над вещественными типами запрещены. Пример
procedure TForral.ButtonlClick {Sender:TObject); var C,D:extended; begin C:=10.28; D:=3.14E-17 + С / 1Е-15 {экспоненциальный формат} end;
Если есть выбор: пользоваться целым типом или вещественным, то надо стараться пользоваться целым. Целые переменные быстрее обрабатываются (так как не надо обрабатывать мантиссу вместе с порядком), представляются в памяти точно, а не приближенно, и занимают меньше места в памяти. Например, для хранения денежных сумм применяется не вещественный тип, а целый, а суммы умножаются на 10 000, чтобы обходиться только целыми числами. Как мы уже говорили, операция присваивания требует, чтобы тип переменной в левой части совпадал с типом выражения в правой части. Однако из данного правила существует исключение: •Вещественной переменной разрешено присваивать значения целого типа, например:
var А:integer; В:extended; В:=А;
• Целой переменной нельзя присваивать значение вещест венного типа:
var A:integer; В:extended; А: =В – нельзя! А: =А/10– тоже нельзя, так как в правой части – выражение вещественного типа А:=100/10 – и даже вот так нельзя А:=А div 10 – можно только так Для выполнения данного присваивания надо воспользоваться одной из функций Round или Trunc. Выводы. Использование ЭОР «Программирование в среде Object Pascal» и лабораторного практикума в профильном обучении информатике на основе технологии визуального проектирования способствует совершенствованию процесса обучения и повышению творческой и познавательной активности учащихся.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|