Вещественные выражения
В выражениях вещественного типа допускаются следующие операции: + - сложение; - - вычитание; * - умножение; / - деление. Наряду с вещественными операндами в вещественных выражениях могут использоваться операнды целого типа. Кроме того, рассмотренные функции Abs и Sqr приусловии вещественного аргумента дают вещественный результат. Приведем функции, которые дают вещественный результат вне зависимости от аргумента: Sin(x), Cos(x) - вычисляют одноименные тригонометрические функции (значение аргумента передается в функцию в радианах – вещественный тип). ArcTan(х) - вычисляет обратную тригонометрическую функцию – арктангенс (значение угла возвращается в радианах.); тип аргумента х - Real. Ln(x) - вычисляет натуральный логарифм – вещественный тип; тип аргумента х - Real. Exp(x) - вычисляет экспоненту – вещественный тип; тип аргумента х- Real. Sqrt(x) - вычисляет квадратный корень – вещественный тип; тип аргумента х - Real. Необходимо отметить, что операция возведения в степень в Паскале отсутствует, но для вещественных выражений эта проблема легко решается, если воспользоваться свойствами функций Exp (экспонента) и Ln (натуральный логарифм). Из математики известны тождества: и Отсюда следует, что . Для вычисления логарифмов по другим основаниям можно применять формулу: . Здесь a > 0 и a ≠ 1. Приведём пример. Пусть мы имеем математическое выражение: Средствами языка Паскаль это выражение следует записать так: (x*x-a)/(sqr(sin(x)/cos(x))-sin(x)*sin(x)*sin(x))* exp(-b*b/x)-exp((x*x-b)*ln(a))*(b-x)/(a-x*x*x)
Хотя вещественный тип относится к скалярным, но на переменные и выражения данного типа накладываются некоторые ограничения. В частности, к вещественным аргументам нельзя применить функции порядка. - Pred и Succ. Нельзя использовать вещественные значения при индексации массивов, в качестве параметра цикла типа for и т. п. Логические выражения Понятие логического выражения или выражения типа Boolean во многом базируется на понятии операций отношения. Сами эти операции используют в качестве операндов выражения практически всех скалярных и базовых типов: вещественного, целого, логического, символьного и строкового. При выполнении этих операций допускается смешение типов Real (всех вещественных), Integer (всех целых). Результат операции отношения для любых операндов всегда логического типа - {false, true}. В Паскале реализованы следующие операции отношения: = - равно; <> - не равно; > - больше чем; < - меньше чем; >= - больше или равно; <= - меньше или равно. Примеры: А = В {результат равен true, если А равно В и false, если А не равно В} А <> В {результат равен true, если А не равно В и false, если А равно В} А > В {результат равен true, если А больше В и false в противном случае} А > 0 {результат равен true, если А больше нуля и false в противном случае} В операциях сравнения для символов и строк необходимо вспомнить, что у каждого элемента скалярного, перечислимого типа есть свой код - порядковый номер. Его можно получить, используя функцию Ord. Заведомо известно, что коды всех латинских и русских букв упорядочены согласно таблице ASCII (смотри п.3.5.4), а коды всех цифр упорядочены по их арифметическим значениям. Данное отношение порядка и позволяет сравнивать любые символы и строки. Пример:
'А' < 'D' ‘X’ < ‘Y’ ‘2’ < ‘5’ ‘ABCD’ < ‘АВСЕ’ 'ABC' < 'ABCD' Кроме операций отношения в логических выражениях используются скобки и логические связки (операции с операндами типа Boolean): - унарная (имеющая один операнд): not; - бинарные (имеющие два операнда): and, or, xor. Запись бинарных логических связок осуществляется следующим образом:
<логическое выражение - первый операнд> <логическая связка> <логическое выражение - второй операнд> ;
При использовании логических связок необходимо большое внимание уделять расстановке скобок так, как при совместном использовании операций сравнения и логических связок можно легко ошибиться. Логические связки имеют более высокий приоритет, чем операции сравнения. Примеры логических выражений со связками: (А>5) and (Т<10) ((М<3) or (Х<0)) and Z. С помощью произвольных логических выражений X и Y можно легко показать смысл логических связок. Напомним, что выражения X и Y могут иметь только одно из двух значений {false, true}. X and Y - ("конъюнкция") данное логическое выражение истинно, тогда и только тогда, когда X и Y одновременно истинны. X or Y - ("дизъюнкция") данное логическое выражение истинно, когда по крайней мере одно из выражений X или Y истины. X xor Y - ("исключающая дизъюнкция") данное логическое выражение истинно, когда X<>Y и ложно в обратном случае. not Х - ("отрицание") данное логическое выражение истинно, когда X— ложно и ложно, когда X— истинно. Используя операции отношения на множестве логических значений можно определить и другие операции математической логики. Например: (X, Y:Boolean) Х<= Y- импликация; Х = Y— эквивалентность; Х <> Y— исключающее или. Сами логические операции очень удобно определять с помощью таблиц истинности, в которых единица соответствует логическому значению true, а ноль - false. Пусть X и Y это логические операнды. Для всевозможных комбинаций их значений построим таблицу истинности логических выражений X and Y, X or Y, X xor Y, not X, X<=Y , Х = Y.
При анализе сложных логических выражений тоже очень удобно пользоваться таблицами истинности, предварительно разбив выражение на элементарные части. Пример: для выражения (A and В) or (A and (not В)) составим следующую таблицу:
При вычислении логических выражений можно воспользоваться установкой компилятора {$В-} или {$В+}. Она отвечает за режим оптимизации вычисления логических выражений. Например, в логическом выражении (2<>2) and (a<y) and (t<z) достаточно вычислить первый элемент конъюнкции, чтобы сказать, что всё логическое выражение ложно. Но в некоторых случаях режим оптимизации приводит к ошибкам. Например, в той части логического выражения, которая была отброшена в результате оптимизации вызывалась функция, имеющая логическое значение и выполняющая полезную работу, но в результате оптимизации функция не будет вызвана и это приведет к ошибке.
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1116)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |