Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная 4 ВЫРАЖЕНИЯ И ОПЕРАТОРЫ ПРИСВАИВАН...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
269 Кб
Скачать
☆

Логические выражения

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

Таблица 6

a и b

a и b

a и b

Fortran

QuickBasic

Turbo Pascal

a.AND.b

a AND b

a AND b

a.OR.b

a OR b

a OR b

a.EQV.b

a EQV b

-

a.NEQV.b

a XOR b

a XOR b

-

a IMP b

-

Оба имеют значение "истина"

истина

истина

истина

Ложь

истина

Один "истина", другой "ложь"

ложь

Истина

ложь

Истина

?

Оба имеют значение "ложь"

ложь

Ложь

истина

Ложь

истина

Первый "истина", а второй "ложь"

ложь

истина

ложь

Истина

ложь

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

Примеры.

Fortran

Значение выражения -2..LT.x.AND.x.LT.2. истинно тогда и только тог­да, когда -2 < x < 2 .

QuickBasic, Visual Basic

Значение выражения -2.< x AND x < 2. истинно тогда и только тогда, ко­гда -2 < x < 2 .

Turbo Pascal

Значение выражения (-2.< x) AND (x < 2.) истинно тогда и только тогда, ко­гда -2 < x < 2 .

Оператор присваивания

Учитывая, что выражения чаще всего используются в операторах при­сваивания, рас­смотрим операторы присваивания. Общая форма следующая:

Общая форма операторов присваивания

Fortran

QuickBasic,

Visual Basic

Turbo Pascal

A=B

A=B

A:=B;

Здесь A - переменная или элемент массива, B – выражение, которое вы­чис­ляется и полученное значение присваивает­ся A. Тип A должен быть совместим по присвоению с типом B, иначе оператор недопустим. Необ­ходимое условие допустимости оператора присваивания для Turbo Pascal, чтобы множество возможных значений В было подмножеством возможных значении А.

Для вычислительных задач можно выделить следующие слу­чаи.

1. Если A имеет числовой тип, тогда B тоже должно иметь число­вой тип; оператор при этом традиционно называется "арифметическим опе­ра­тором присваивания".

2. Если A имеет логический тип, то B тоже должен иметь логи­ческий тип. Оператор в этом случае называется "логическим операто­ром присваивания". Логические выражения любого размера могут прис­ваиваться логическим переменным любого размера.

3. Если выражение B имеет тип символьный (строковой), то A дол­жен иметь тип символьный (строковой). В этом случае оператор на­зы­вает­ся "сим­вольным оператором присваивания".

Особенности

Fortran

Все арифметические, логические и символьные операторы при­сваи­ва­ния допустимы.

При арифметическом операторе присваивания значение выражения B преобразуется к типу A по таблице 7.

Таблица 7

Тип

A

тип B

INTEGER

REAL

COMPLEX

INTEGER

+

присваивается целая часть

присваивается це­лая часть дей­ствительной части

REAL

преобразуется

+

действительная часть

COMPLEX

преобразуется и при­сваивается дей­ствительной части

присваивается действительной части

+

Логические выражения любого размера могут присваиваться логи­ческим переменным любого размера.

Для символьных операторов присваивания, если длина B не соответ­ствует размеру A, то B выравнивается следующим образом:

А) если переменная A длиннее B, тогда B дополняется пробелами справа;

Б) если переменная A короче B, то крайние символы справа в B иг­но­рируются.

Задание начальных значении можно осуществить и оператором DATA. Он предназначен для определения значений переменных, мас­сивов и элементов массивов. Может располагаться в любом месте про­грам­мы после операторов описания типа.

Общая форма.

DATA k1/d1/,k2/d2/,...,kn/dn/

где ki - список имен переменных, элементов массивов (в этом случае ин­дексные величины задаются в виде целых беззнаковых констант) или мас­сивов; имена разделяются запятыми; список не должен содержать име­на формальных параметров, а также имена данных из неиме­но­ван­ной области COMMON; di - список констант (целых, действительных, ком­п­лексных, логических, текстовых), разделенных запятыми; каждой конс­танте может предшествовать i* , указывающее, что константа долж­на быть повторена i раз (i - целая беззнаковая константа). Типы конс­тант и типы переменных должны согласовываться.

Пример.

DATA a,b/1.,-3./,c/4.5/

QuickBasic

Отсутствует логический оператор присваивания. Все арифмети­чес­кие и символьные операторы присваивания допустимы.

Visual Basic

Основные правила присваивания совпадают с QuickBasic. Существуют все традиционные виды операторов присваивания. Более того, существуют другие виды операторов присваивания.

Turbo Pascal

В арифметическом операторе присваивания если типы данных A и B не совпадают, то возможны следующие случаи:

1) A и B имеют целый тип и значение B входит в диапазон значений типа A, то оператор допустим;

2) A и B имеют вещественный тип и значение B входит в диапазон зна­чений типа A, то оператор допустим;

3) A имеет вещественный тип, а B - целый тип, тогда оператор допу­с­тим. Значение B автоматически преобразуется к типу A;

4) A имеет целый тип, а B вещественный. Такой присваивание недо­пус­тимо. Однако, если это нужно сделать, то нужно использовать функ­цию Round к выражению B, которая округляет до ближайшего целого, на­при­мер, A:=Round(B), или функцию Trunc, которая отсекает дробную часть, например, A:=Trunc(B). Обе функции возвращяют значение типа Longint.

Контрольные вопросы

  1. Что такое выражение?

  2. Что из себя представляет операции и опе­ран­ды?

  3. Как используется функция в выражении?

  4. Перечислите тра­диционные виды выражений.

  5. Каков порядок выполнения операций в выражений?

  6. Перечислите арифметические операции.

  7. Перечислите операции отношения (сравнения).

  8. Перечислите логические операции.

  9. Перечислите строковая операция (конкатенция).

  10. Что и как получается при вычислении арифметического выражения?

  11. Что и как получается при вычислении символьного (текстового) выражения?

  12. Что и как получается при вычислении выражения отношения?

  13. Что и как получается при вычислении логического выражения?

  14. Как записывается и выполняется оператор присваивания?