Учебное пособие: Основные понятия языка программирования Турбо Паскаль
- вложенная конструкция записывается смещенной по строке на несколько позиций вправо относительно внешней для нее конструкции.
3. Элементы языка Турбо Паскаль
Алфавит языка состоит из множества символов, включающих:
– Латинские буквы: от A до Z (прописные) и от а до z. (строчные);
– Знак подчеркивания _;
– Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
– Специальные символы: + — * / (знаки арифметических операций), = <> <= >= (операции отношения), : = (операции присваивания), [ ] . , ( ) : ; { } ^ @ $ # ‘ (ограничители). К спецсимволам относятся служебные слова, смысл которых определен однозначно (begin, end, for, div и т.д.).
– Пробел — символ пробела (ASCI1-32) и все управляющие символы кода ASCII (от 0 до 31).
Идентификаторы . Идентификатором называется символическое имя определенного программного объекта. Такими объектами являются имена констант, переменных, типов данных, процедур и функций, программ. Идентификатор — это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx — одно и то же имя. Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.
Комментарии . Конструкции, заключенные в фигурные скобки {} или в скобки вида (* *) являются комментариями, могут занимать несколько строк и игнорируются компилятором.
Строка, начинающаяся с символов {$ или (*$, является директивой компилятора . За этими символами следует мнемоника команды компилятора. Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.
4. Арифметические операции и выражения
Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.) и буквенные операции (например, not, mod, div и т. д.), представляющие собой зарезервированные слова. Операции над данными делятся на унарные (применимые к одному операнду) и бинарные (применимые к двум операндам). Приведем примеры бинарных арифметических операций (в таблице буква I обозначает целые типы, R — вещественные типы):
Знак | Выражение | Типы операндов | Тип результата | Операция |
+ | А+В | R,R I,I I,R; R,I | R I R | Сложение |
- | А-В | R,R I,I I,R; R,I | R I R | Вычитание |
* | А*В | R,R I,I I,R; R,I | R I R | Умножение |
/ | А/В | R,R I,I I,R; R,I | R R R | Вещественное деление |
Div | A div B | I, I | I | Целое деление |
Mod | A mod B | I, I | I | Остаток от деления |
Арифметическое выражение задает порядок выполнения действий над числовыми величинами. Арифметические выражения содержат арифметические операции, функции, операнды, круглые скобки. Одна константа или одна переменная — простейшая форма арифметического выражения.
Порядок выполнения операций в арифметическом выражении подчиняется трем правилам:
1. Правилу скобок. Оно гласит, что первыми выполняются операции в скобках. Если имеется несколько пар вложенных скобок, вычисления начинаются с самых внутренних скобок.
2. Правилу учета приоритета операций: вначале вычисляются значения функций, затем выполняются операции умножения и деления и в последнюю очередь - операции сложения и вычитания.
3. Правилу следования: операции одинакового старшинства (приоритета) выполняются слева направо в порядке их следования.
Пример. Цифрами сверху указан порядок выполнения операций:
Выражение имеет целый тип, если в результате его вычисления получается величина целого типа. Выражение имеет вещественный тип, если результатом его вычисления является вещественная величина.
5. Стандартные функции
В качестве операндов в выражении, кроме констант и переменных, можно использовать стандартные функции. Аргументы функций обязательно заключаются в круглые скобки. Приоритет выполнения функции выше, чем приоритет выполнения арифметических операций. Рассмотрим стандартные функции Турбо Паскаля (в таблице буква I обозначает целые типы, R — вещественные типы):
Обращение | Тип аргумента | Тип результата | Тип действия |
pi | - | R | Число π |
abs(x) | I,R | I,R | Модуль (абсолютная величина) числа х |
sqr(x) | I,R | I,R | Квадрат х |
sqrt(x) | I,R | R | Корень квадратный из х (х≥0) |
sin(x) | I,R | R | Синус х (х в радианах) |
cos(x) | I,R | R | Косинус х (х в радианах) |
arctan(x) | I,R | R | Арктангенс х (результат в радианах) |
exp(x) | I,R | R | Экспонента е в степени х (е≈2,71828) |
ln(x) | I,R | R | Натуральный логарифм х (x>0) |
trunc(x) | R | I | Целая часть х |
int(x) | I,R | R | Целая часть х |
round(x) | R | I | Округление х до ближайшего целого |
frac(x) | I,R | R | Дробная часть х |
random | - | I | Случайное число [0,1) |
random(x) | I | R | Случайное число [0,х) |
dec(x,[n]) | I | I | Уменьшение х на n, при отсутствии n – на 1 |
inc(x,[n]) | I | I | Увеличение х на n, при отсутствии n – на 1 |
odd(x) | Longint | Boolean | true, если значение x нечетное; false, если x четное |
ord(x) | любой порядковый | Longint | Порядковый номер значения х в его типе. Если х – символ, то функция возвращает код символа |
pred(x) | любой порядковый | тот же, что для x | Предыдущее относительно х значение в его типе |
succ(x) | любой порядковый | тот же, что для x | Следующее относительно х значение в его типе |
chr(x) | Byte | Char | Определяет символ с указанным кодом (х – число, определяющее код символа) |
Турбо Паскале не содержит некоторые часто используемые математические функции, поэтому при их вычислении используют эквивалентные математические формулы:
Функция | Эквивалентная математическая формула | Запись в программе |
ax | exp(x*ln(a)) | |
tg(x) | sin(x)/cos(x) | |
arcsin(x) | arctan(x/sqrt(1-x*x)) | |
arccos(x) | arctan(sqrt(1-x*x)/x) | |
logax | ln(x)/ln(a) |
При возведении в небольшую целую степень вместо операции возведения в степень рекомендуется использовать операцию умножения, поскольку возведение в степень выполняется на несколько порядков дольше умножения и не позволяет обрабатывать отрицательные аргументы.
6. Оператор присваивания
Значение переменной может быть задано или изменено с помощью оператора присваивания, который имеет вид:
<имя>:=<выражение>;
где <имя> - это имя переменной или функции;
:= - знак операции присваивания.
Оператор присваивания позволяет заменить текущее значение переменной, стоящей слева от знака присваивания, новым значением, задаваемым выражением, стоящим справа.
С правой стороны располагается выражение, которое после вычисления дает некоторое значение. С левой стороны указывается имя переменной, которой это значение присваивается. Данное обстоятельство позволяет использовать с левой и правой стороны знака присваивания имя одной и той же переменной. Пусть, например, имеются следующие операторы:
Var