Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 140.docx
Скачиваний:
16
Добавлен:
30.04.2022
Размер:
209.86 Кб
Скачать

3. Операции и выражения

Все операции в языке Турбо Паскале можно разделить на четыре группы:

- арифметические;

- логические;

- операции отношения;

- операции со строками.

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

    1. Арифметические операции

Арифметические операции применимы только к величинам целых и вещественных типов (табл.3).

Отметим, что три первые операции дают результат целого типа, если конструкции (константы, переменные, стандартные функции), над которыми выполняются эти действия, целого типа; в противном случае результат имеет вещественный тип (табл.3). При использовании знаков операций DIV или MOD они должны быть отделены от операндов хотя бы одним пробелом.

Пример:

A MOD B {если, например A=10 и B=3, то результат =1}

C DIV D {если, например C=10 и D=3, то результат =3}

13 DIV - 4 = - 3 13 MOD -4 = 1

Всегда А MOD В = А- (А DIV В) * В

Таблица 3

Зависимость типа результата от типа операндов

Знак

Операция

Тип операндов

Тип результата

+

-

*

/

DIV

MOD

сложение

вычитание

умножение

деление

деление целых чисел

вычисление остатка от деления целых чисел

целый

хотя бы один вещественный

целый

хотя бы один вещественный

целый

хотя бы один вещественный

целый или вещественный

целый

целый

целый

вещественный

целый

вещественный

целый

вещественный

вещественный

целый

целый

    1. Логические операции

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

Под высказыванием понимается всякое предложение, в котором содержится смысл утверждения (истинности) или отрицания (ложности). Одно и то же высказывание не может быть одновременно истинным и ложным или не истинным и не ложным. Отдельные высказывания можно обозначить заглавными буквами латинского алфавита A, B, C, … Если высказывание (суждение) А истинно, то, например, А = 1. Если С = 0, то высказывание С ложно.

Итак, рассматриваются только два значения высказывания: истинное или ложное (1 или 0). Такое условие алгебры логики приводит к соответствию между логическими высказываниями в математической логике и двоичными цифрами в двоичной системе счисления, что позволяет описывать работу схем и блоков машины и проводить их анализ и синтез с помощью алгебры логики.

Основными логическими операциями являются логическое отрицание, логическое умножение, логическое сложение, сложение по модулю 2.

Логические операции применяются к величинам логического типа, результат операций также логического типа.

В Паскале используются следующие логические операции:

NOT («не» - отрицание), AND («и» - логическое умножение, конъюнкция), OR («или» - логическое сложение, дизъюнкция), XOR (исключающее или). Операнды и результат могут принимать одно из значений: TRUE (истина) или FALSE (ложь).

Результаты операций определяются таблицей истинности (табл.4)

Таблица 4

Таблица истинности

X

Y

NOT X

X AND Y

X OR Y

X XOR Y

TRUE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

FALSE

TRUE

TRUE

TRUE

FALSE

FALSE

FALSE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

FALSE

Логическое отрицание (операция НЕ, инверсия).

Пусть имеется некоторое высказывание А. Отрицание этого высказывания обозначается , которое принято читать: не А.

Если высказывание А истинно (А=1), то высказывание ложно ( = 0). Если высказывание А ложно (А=0), то высказывание истинно ( =1 ). Таким образом, для логического отрицания справедливо следующее правило: = 1; = 0.

Логическое умножение (операция И, конъюнкция).

Операцию логического умножения двух переменных А и В обозначают А/\В (принято читать: А и В). Высказывание А/\В истинно только в том случае, если А истинно (А=1) и В истинно (В=1), то есть А/\В =1. Во всех остальных случаях это высказывание ложно, т.е. А/\В = 0. Следовательно, при логическом умножении справедливо следующее правило: 0/\0 =0; 0/\1=0; 1/\0=0; 1/\ 1 =1.

Правила логического умножения справедливы не только для двух сомножителей, но и для любого их количества, т.е. А/\В/\С/\D/\ ….

Логическое сложение (операция ИЛИ, дизъюнкция).

Операцию логического сложения двух переменных А и В обозначают А\/В (принято читать: А или В). Высказывание А\/В истинно (А\/В =1) в том случае, если хотя бы одно из значений А или В истинно (А =1 или В =1). Если же это условие не выполняется, то высказывание ложно (А\/В =0) Таким образом, при логическом сложении справедливо следующее правило:

0\/0 =0; 0\/1 =1; 1\/0 =1; 1\/1 =1.

Правило логического сложения справедливо не только для двух слагаемых, но и для любого их числа, т.е. А\/В\/С\/D\/….

Сложение по модулю 2 (ИЛИ исключающее).

Операцию сложения двух переменных А и В по модулю 2 обозначают А В. Высказывание А В истинно ( А В =1) в том случае, если только одно из переменных А или В истинно ( А =1, В =0 или А =0, В =1). Если же это условие не выполняется, то высказывание ложно (А В=0). Таким образом, сложение по модулю 2 выполняется по такому правилу:

0 0 =0; 0 1 =1; 1 0 =1; 1 1 =0.

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

В алгебре логики существуют правила, с помощью которых производятся преобразования формул.

Основные правила преобразования следующие:

А /\ = А /\ 0 =0;

А \/ = А \/ 1 =1;

А /\ А = А \/ А = А /\ 1 = А \/ 0 = А;

А /\ В = В /\ А; А \/ В = В \/ А;

(А /\ В) /\ С = А /\ (В /\ С) = А /\ В /\ С;

(А \/ В) \/ С = А \/ (В \/ С) = А \/ В \/ С;

(А /\ В) \/ С = (А \/ С) /\ (В \/ С);

(А \/ В) /\ С = (А /\ С) \/ (В /\ С);

= \/ ; = /\ ;

А В= (А /\ ) \/ ( /\ В) = (А \/ В) /\ ( \/ );

Если подставить в эти выражения значения 0 и 1 для всех переменных, то можно убедиться в справедливости рассмотренных формул алгебры логики.

При разработке узлов ЭВМ смысл ложных или истинных высказываний А, В, С во внимание не принимается; аппарат логики используется для выполнения заданных логических преобразований. Например, арифметические преобразования (сложение, вычитание) задаются в виде совокупности логических преобразований над аргументами.

Упражнения к разделу

Упражнение 1. Какие операции определены над переменными булевского типа?

Упражнение 2. Объясните ошибки в следующих записях:

а) 1 and 0 б) true + false в) true < 0 г) not 2 = 5

д) true or (1/0 > 1) е) x > 0 or y =4 ж) not not b or or d

Упражнение 3. Какие из приведенных ниже записей являются правильными с точки зрения языка Паскаль?

а) ‘A’ < ‘C’ б) ‘1’ < ‘9’ в) FALSE < TRUE

г) ‘A’< ‘B’ and 1 < 2 д) ‘0’ or ‘9’ е) (‘D’ > ‘C’) and (1 < 2)

Упражнение 4. Указать порядок выполнения операций при вычислении выражения:

а) a and b or not c and d

б) (x >= 0) or t and odd(x) or (y*y<> 4)

Упражнение 5. Вычислить следующие выражения при a = true и b = false:

а) a or b and not a б) (a or b) and not a

в) not a and b г) not (a and b)

Упражнение 6. Доказать тождества:

а) a and ( not a) = false б) a or ( not a) = true

в) not (not a) = a г) true or a = true

д) false and a = false е) a or a = a.

Упражнение 7. Записать на Паскале отношение, истинное при выполнении указанного условия и ложное в противном случае:

а) целое к делится на 7;

б) уравнение ax2 + bx + c =0 ( a≠0 ) не имеет вещественных корней;

в) точка ( x,y ) лежит вне круга радиуса r с центром в точке ( 1, 0);

г) 0 < x < 1;

д) x = max (x,y,z);

e) x лежит вне отрезка [ 0,1];

ж) x принадлежит отрезку [ 2,5] или [ -1,1];

з) значение x принадлежит одному из отрезков [ -5, -4], [ 0,3], [ 4.2, 7]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]