Конспект лекций по информатике для специальностей 2102, 2103 Автор доц., к т. н. Каширская Е. Н

Вид материалаКонспект

Содержание


3.2. Действительный тип
3.2.1. Операции над данными действительного типа
Trunc (x)
3.3. Логический тип
AND - конъюнкция (логическое умножение), OR
FALSE и TRUE
TRUE (истина) и FALSE
3.3.1. Алгебра логики в Паскале
Boolean. = , < >, < , < = , > , > =. Например
3.3.2. Законы алгебры логики в Паскале
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   25

3.2. Действительный тип


Данные действительного (вещественного) типа используются значительно чаще, чем целого типа.

2 вида представления вещественных констант с фиксированной и с плавающей точкой: 127.3 25.0 -16.003

4Е-5 0.62Е+4 -10.8Е12 -20Е-3

0.52Е+3 = 5.2Е+2 = 52Е+1 = 520Е = 5200Е-1

В разделе описания констант:

Const L = -1/602E-19;

NA=6.022E23;

PI=3.14;

Summa=-5.6;

Описание переменной имеет тип Real:

Var U, I, R: Real;

Z1:Real;

В разделе операторов: Z1:=-0.03E14;

Scorost:=12.6;

I:=5;

Здесь целое число 5 автоматически преобразуется к действительному типу 5.0 для присвоения переменной I.

3.2.1. Операции над данными действительного типа:


+ — * /

Результат - тоже действительное число.

Если в операции ,кроме данных вещественного типа, участвуют и данные целого типа, результат все равно будет вещественный. Степень представляется так: Aх exp(x*LN(A)) приA>0

Формат: Write(x:m:n), где: m - общее поле, n - поле дробной части.

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

1)Вычисление функции.
  1. * , / , Div , Mod.
  2. + , — .

Пример.

25 Mod 3*4=4

25 Div 3*4=32

5*5 Div 3*4=32

5+5 Mod 3-4=3

Вещественные типы

REAL - действительный (вещественный) тип. Абсолютная величина для этого типа изменяется в диапазоне 2.9Е - 39..1.7Е+38, имеет мантиссу с 11 десятичными цифрами. Занимает в памяти 6 байтов.

SINGL - простой точности, 4 байта.

DOUBLE - двойной точности, 8 байт.

EXTENDED - расширенной точности, 10 байт.

При переполнении вещественного типа происходит программное прерывание.

С аргументами вещественного типа могут не пользоваться следующие стандартные функции:

Sin(x), Cos(x) ,Ln(x), Sqrt(x), Arctan(x), Exp(x), Sqr(x), Abs(x). Все они вырабатывают результат вещественного типа.

Определены также стандарты функции преобразования значения вещественного типа в значение целого типа:

TRUNC (X) - вырабатывает результат путем отбрасывания дробной части аргумента;

ROUND (X) - вырабатывает целый результат путем округления до ближайшего целого.

Пример.

x=21.53 trunc (x)=21 round (x)=22

x=-27— trunc (x)=-2 round (x)=-3

3.3. Логический тип


Boolean - логический тип имеет 2 значения: false и true, занимают 1 байт памяти.

Над булевскими переменными определены 3 логические операции:

AND - конъюнкция (логическое умножение),

OR - дизъюнкция (логическое сложение),

NOT - отрицание.

FALSE , поэтому применимы операции отношения.

Значения FALSE и TRUE можно рассматривать как упорядоченное множество, состоящее из двух элементов.

Ord (false)=0 {номер)

Succ (false)=true {следующий)

Ord (true)=1 {номер)

Pred (true)=false {предыдущий)

Логический тип (тип boolean) определяет диапазон логических значений, который содержит 2 элемента: TRUE (истина) и FALSE (ложь).

Type Boolean = (False, True);

Логические переменные описываются в разделе описания переменных так:

Var P, Q, R : Boolean;

Логические переменные могут принимать только 2 значения:True и False.

3.3.1. Алгебра логики в Паскале


Над аргументами логического типа определены следующие операции:

NOT (Не) - отрицание

AND (и) - конъюнкция (логическое умножение)

OR (или) - дизъюнкция (логическое сложение)

XOR (икс ор) - исключающее или

P

Q

Not P

P And Q

P Or Q

P Xor Q

False

False

True

False

False

False

True

False

False

False

True

True

False

True

True

False

True

True

True

True

False

True

True

False

Все операции сравнения дают результат типа Boolean.

= , < >, < , < = , > , > =.

Например, в результате выполнения оператора

P: = X<= 5;

логическая переменная Р получит значение True, если текущее значение переменной Х меньше или равно 5. При Х>5 P = False.

В языке Паскаль принято следующее старшинство операций:
  1. Not
  2. And
  3. Or, Xor + -
  4. Операции сравнения , что это значит?

Not P = Q (Not P) = Q

P < = Q And R P < = (Q And R)

P Or Q And R P Or (Q And Q)

Для задания явного порядка - круглые скобки:

(A - B) AND (C< = D)

3.3.2. Законы алгебры логики в Паскале

  1. Закон коммутативности (переместительный)

P Or Q = Q Or P

P And Q = Q And P
  1. Закон ассоциативности (сочетательный)

(P Or Q) Or R = P Or (Q Or R)

(P And Q) And R = P And (Q And R)
  1. Закон дистрибутивности (распределительный)

(P And Q) Or R = (P Or R) And (Q Or R)

(P Or Q) And R = (P And R) Or (Q And R)
  1. Закон де Моргана

Not (P Or Q) = (Not P) And (Not Q)

Not (P And Q) = (Not P) Or (Not Q)

Правила отрицания:

Not (Not P) = P

Not (A = B) = A <>B

Not (A <= B) = A > B

Not (A< B) = A > = B и.т.д.

Пример.

Not ((A < = B) And (c = D)) = (A > B) Or (C < > D)

Обратим внимание на следующий факт. Логический тип в языке Паскаль задается как перечисляемый тип, содержащий лишь 2 стандартных идентификатора: True и False. Элементы перечисляемого типа упорядочены. Поэтому оказывается, что False меньше, чем True. Этим можно воспользоваться:

For P:=False To True Do S;

S - оператор, он будет выполняться сначала для значения Р, равного False, а затем для значения True. Если надо наоборот, то:

For P:= True Downto False Do S;

Пример.

Написать программу для составления таблицы истинности для логической функции F = P And Not (Q Or R) And T. Для каждого из значений логических переменных P, Q, R, T необходимо вычислить и напечатать значение функции F.

Program logic;

Var P,Q,R,T,F:Boolean;

Begin

For P:=False To True Do

For Q:=False To True Do

For R:=False To True Do

For T:=False To True Do

Begin

F:=P And Not (Q Or T) And T

Write(‘P=’,P,’Q=’,Q,’R=’,R,’T=’,T);

Write(‘F=’,F);

writeln;

End;

End.

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

В языке Паскаль нельзя записать двухстороннее неравенство 1< X <2. Вместо этого надо воспользоваться логическим выражением: (X>1) And (X<2).

Нельзя записать X = Y = Z, а надо: (X = Y) And (X = Z).

Если надо записать, что Х не лежит в диапазоне от - 2 до +2, то:

Not ((X>-2) And (X>=2)) или (X<=-2) Or (X>=2)

Стандартные идентификаторы True и False можно использовать в качестве логических констант. Равноправные операторы.

If P Then S;

If P=True Then S;

Функция Odd(x) = True при X=2n-1, n=1,2,3,...

False при X=2n