Читайте также:
|
|
Вкаждом естественном языке, таком как русский, английский, немецкий и т. д., у каждой конструкции есть синтаксис – это правила построенияэтой конструкции языка. Например, предложение в русском языке строится по определенным правилам. Эти правила достаточно сложны, и вы изучаете их в течение многих лет на уроках русского языка.
В искусственных языках, таких как 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» и лабораторного практикума в профильном обучении информатике на основе технологии визуального проектирования способствует совершенствованию процесса обучения и повышению творческой и познавательной активности учащихся.
Дата добавления: 2014-12-20; просмотров: 111 | Поможем написать вашу работу | Нарушение авторских прав |