Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм.

Выражения

Все вычисления и другие преобразования данных в программе записываются в виде выражений. Они обычно включают несколько операций, которые выполняются в порядке приоритетности. Различают:

1. Арифметические операции: +(сложение), -(вычитание), *(умножение), /(деление вещественное), div (деление целочисленное), mod (остаток целочисленного деления) - все эти операции применяются к вещественным и целым числам, результат - число.

Запись выражений арифметического типа выполнятеся в строку. Порядок выполнения действий регламентируется круглыми скобками. Особое внимание уделяется выражениям, содержащим операции различных приоритетов. Например:

a+b/c

Запсь предполагает, что сначала b/c, затем прибавляется a.

(a+b)/c*d

Запись предполагает, что сумма (a+b) делится на c, затем умножается на d.

Правила выполнения операций в арифметических выражениях:

А. Операции "целочисленного деления" и определения остатка от деления применимы только к операндам целых типов. Например: 6div4 = 1, а 6mod4 = 2. Если в операции участвуют переменные, то они должны быть объявлены как целые, например:

Var i, n:integer;...

n mod 2; ...

Для получения при делении целых значений результата с точностью до дробной части, нужно использовать операцию вещественного деления. Например: 6/4 = 1.5

Б. При выполнении арифметических действий над числами различных типов выполняется неявное преобразование типов:

  • Если один операнд целого типа, а другой - вещественного, то переменная целого типа преобразуется к вещественному типу; результат операции - значение вещественного типа.
  • Если в качестве операндов использованы вещественные или целые переменные различных типов, то их значения преобразуются к типу с наибольшей разрядной сеткой; результат операции того же типа. Так, если в выражении есть переменные: double, extended и real, то значение преобразуется в тип extended и такого же значения будет результат.

2. Операции отношения: >(больше),<(меньше), =(равно), <>(не равно), >=(не меньше), <=(не больше) - эти операции применяют к числам, символам, символьным строкам и другим типам данных, результат - значение логического типа: true (если отношение истинно), false (в противном случае).

Данные операции определены для вещественных и целых чисел, логических значений, кодов символов, строк и множеств.

Следует помнить, что из - за ограниченной разрядной стеки вещественные числа представляются в памяти неточно, следовательно проверка равенства или неравентсва должна выполняться с некоторым допуском. Например:

(x-y)>1e-10; {вместо x<>y}

(x-y)<1e-10; {вместо x=y}

Если допуск не указан, он определяется автоматически, исходя из количества значащих цифр в представлении числа и может оказаться слишком строгим для задачи с неточными данными или методами решения.

3. Логические операции: and (и), or (или), xor (исключающее или), not (не) - данные операции выполняются с логическими переменными и константами, результат - значение логического типа.

Логические операции выполняются над значениями типа boolean. Если в выражении в качестве операндов используют результаты операций отношения, которые имеют более низкий приоритет, то необходимы скобки. Например: записать логическое выражение, которое должно быть истинно, если x попадает в интервал [a; b]. Выражение запишется таким образом:

(x>=a) and (x<=b)

4. Поразрядные операции: and (и), or (или), xor (исключающее или), not (не), shr (сдвиг вправо), shl (сдвиг влево) - операции с целыми числами, результат - целое число.

Данные операции выполняются над целыми числами. Второй операнд операций сдвига определяет количество двоичных разрядов, на которое необходимо сдвинуть первый операнд. Например:

5shl4

Число 5 в своем внутреннем двоичном представлении сдвигатеся влево на 4 двоичных разряда, что соответствует умножению числа 24=16. Следовательно, результат данного выражения - число 80.

5. Строковые операции: +(сцепление строк) - выполняются над символами и строками, результат - строка.

6. Операции над множествами: +(объединение), -(дополнение), *(пересечение) - результат - множество. In (определение принадлежности элемента множетсву) - результат - значение логического типа.

7. Операции над указателями: @ (определение адреса программного объекта) - результат - адрес.

Приоритет операций
ОперацияПриоритет
@, not1
*, /, div, mod, and, shr, shl2
+, -, or, xor3
>, <, <>, =, <=, >=, in4

Для изменения порядка выполнения операций, в выражении используются круглые скобки, также допускается использование стандартных и определенных программистом функций. Им присваивается высший приоритет.

Hosted by uCoz