Конспект лекций по информатике для специальностей 2102, 2103 Автор доц., к т. н. Каширская Е. Н
Вид материала | Конспект |
- Конспект лекций бурлачков в. К., д э. н., проф. Москва, 1213.67kb.
- Конспект лекций по курсу "Начертательная геометрия и инженерная графика" Кемерово 2002, 786.75kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
- Конспект лекций для студентов всех специальностей дневной и заочной формы обучения, 1439.07kb.
- Конспект лекций для студентов, магистров и аспирантов всех специальностей, 373.35kb.
- Конспект лекций для студентов по специальности i-25 01 08 «Бухгалтерский учет, анализ, 2183.7kb.
- Конспект лекций организация производства и маркетинг для студентов 3 курса специальностей, 2989.73kb.
- Конспект лекций по дисциплине «психология и педагогика» омск 2005, 2020.42kb.
- Конспект лекций по курсу «Организация производства», 2034.84kb.
- Конспект лекций по курсу «Организация производства», 2032.47kb.
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)Вычисление функции.
- * , / , Div , Mod.
- + , — .
Пример.
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.
В языке Паскаль принято следующее старшинство операций:
- Not
- And
- Or, Xor + -
- Операции сравнения , что это значит?
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. Законы алгебры логики в Паскале
- Закон коммутативности (переместительный)
P Or Q = Q Or P
P And Q = Q And P
- Закон ассоциативности (сочетательный)
(P Or Q) Or R = P Or (Q Or R)
(P And Q) And R = P And (Q And R)
- Закон дистрибутивности (распределительный)
(P And Q) Or R = (P Or R) And (Q Or R)
(P Or Q) And R = (P And R) Or (Q And R)
- Закон де Моргана
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