2012/2013 учебный год Операторы
Чердынцева М.И. мехмат ЮФУ 2 Операторы Чердынцева М.И., мехмат ЮФУ2 Операторы размещаются в разделе операторов и описывают алгоритм решения задачи Составной оператор begin end
Чердынцева М.И. мехмат ЮФУ 3 Операторы Чердынцева М.И., мехмат ЮФУ3 ::= {; } ::= | | | | | | |
Чердынцева М.И. мехмат ЮФУ 4 Оператор присваивания Чердынцева М.И., мехмат ЮФУ4 := Совместимость по присваиванию 1. одинаковый тип 2. восходящее преобразование типа 3. усечение типа
Чердынцева М.И. мехмат ЮФУ 5 Выражение Чердынцева М.И., мехмат ЮФУ5 Конструкция, задающая правила вычисления Операнды и операции Тип выражения Арифметические выражения Логические выражения Символьные и строковые выражения
Чердынцева М.И. мехмат ЮФУ 6 Выражение Порядок вычисления определяется приоритетом операций и может быть изменен с помощью скобок Таблица приоритетов операций языка Pascal + - (унарные) not * / div mod shl shr and + - (бинарные) or xor = = in
Чердынцева М.И. мехмат ЮФУ 7 Выражения В выражениях можно использовать функции. Вычисление функции имеет наивысший приоритет при вычислении выражения
Чердынцева М.И. мехмат ЮФУ 8 abs(x)|x| sqr(x)x2x2 sqrt(x) ln(x)ln x exp(x)eхeх sin(x)sin x cos(x)cos x arctan(x)arctg x trunc(x)целая часть х
Чердынцева М.И. мехмат ЮФУ 9 round(x)округление вещественного х odd(i)i - нечетное Pi Число
Чердынцева М.И. мехмат ЮФУ 10 Переполнение Превышение при вычислениях диапазона допустимых значений Для целых обычно не контролируется. Предполагается, что множество допустимых значений циклически замкнуто
Чердынцева М.И. мехмат ЮФУ 11 var a:integer; begin a:=MaxInt; writeln(MaxInt); a:=a+1; writeln(a); end
Чердынцева М.И. мехмат ЮФУ 12 Для вещественных типов переполнение является ошибкой времени выполнения и прерывает выполнение программы В современных компиляторах вводится понятие бесконечности, прерывание выполнения не происходит, но результат не может быть использован в дальнейших вычислениях
Чердынцева М.И. мехмат ЮФУ 13 var x: real; begin x:=MaxDouble; writeln(x); x:=x*2; writeln(x); x:=x/2; writeln(x); x:=x*0; writeln(x); end E+308 бесконечность NaN
Чердынцева М.И. мехмат ЮФУ 14 Погрешность округления Вещественные числа представляются в памяти компьютера не точно, а приближенно. Погрешность представления вещественных типов в памяти компьютера называется погрешностью округления Значения типа real хранят значащих цифр, поэтому, например, для числа 1.7 погрешность округления составляет около 1E-16
Чердынцева М.И. мехмат ЮФУ 15 Экспоненциальная плотность множества представителей вещественных чисел
Чердынцева М.И. мехмат ЮФУ 16 Вычислительная погрешность При вычислениях погрешность округления может накапливаться; такая погрешность называется вычислительной
Чердынцева М.И. мехмат ЮФУ 17 var x: real; begin x:=0.9-3*0.3 ; writeln(x); x:=(0.9-3*0.3)*1E16; writeln(x); end E
Чердынцева М.И. мехмат ЮФУ 18 Ввиду погрешности округления вещественные числа обычно не сравнивают на равенство Неверно: var x,y: real;... if x=y then... // неверно! Верно: eps:=1E-14; if abs(x-y)