Организация данных в ЭВМ и основы программирования (1017140), страница 4
Текст из файла (страница 4)
2. СТАНДАРТНЫЕ ПРОСТЫЕ ТИПЫ
2.1 Целый тип
Целый тип | Диапазон значений | Размер памяти |
Shortint (короткое целое) | -128..127 | 1 байт |
Integer (целое) | -32 768..32 767 | 2 байта |
Longint (длинное целое) | -2147483648..2147483 647 | 4 байта |
Byte (байт) | 0..255 (беззнаковый тип) | 1 байт |
Word (слово) | 0..65536 (беззнаковый тип) | 2 байта |
Данные целого типа используются в тех случаях, когда какую-то величину нужно представить абсолютно точно, например, число живых существ или количество предметов. К данным целого типа относятся константы и переменные.
Константа целого типа – это десятичное число , записанное без точки. Если константа отрицательная, то перед ней должен стоять знак «-» а если положительная ,то знак «+» можно не указывать.
Const k=15;
null=0;
p1=-46;
Описание переменной имеет тип integer.
A: integer;
Summa: integer;
B1, B2, B3: integer;
В разделе операторов указанные переменные должны принимать значения целых десятичных типов:
A: = 25;
Summa: = 0;
2.1.1. Операции над данными целого типа:
+ сложение (результат – целое число)
— вычитание(——«——«——-«—-—)
* умножение (——«——«——«——)
Div – деление с отбрасыванием дробной части (получение целого частного при делении целого данного на целое).
Mod – получение целого остатка при делении целого данного на целое.
Пример. Program delen;
Var A,B,Y,Z: Integer;
Begin
Writeln(‘вв A,B’);
Readln(A,B);
Y: = A Div B;
Z: = A Mod B;
Writeln( Y:3, Z:3);
End.
Переполнение при выполнении арифметических операций не обнаруживается!!!
Формат: Write(A:4)
Пример. A = 25;
B = 5;
C = -3;
A+5 = 30;
B Mod A = 5;
13-A = -20;
A Mod C = 1;
C*15 = -45;
A Mod C = -8;
A Div 7 = 3;
25 Div -3 = 8;
A Mod 7 = 4;
-25 Mod –3 = -1
С аргументами целого типа могут использоваться следующие стандартные функции:
Имя функции | Математическое обозначение | Тип результата |
Sin (x) | Sin x | Real |
Cos(x) | Cos x | Real |
Ln(x) | Ln x | Real |
Sqrt(x) | Real | |
Arctan(x) | Arctg x | Real |
Exp(x) | ex | Real |
Sqr(x) | x2 | Integer |
Abs(x) | |x| | Integer |
Odd(x) | False, x=2n True, x=2n+1 | Boolean |
Succ(x) | x + 1 | Integer |
Pread(x) | x - 1 | Integer |
Inc(x) | x + 1 | Integer |
Inc(x,n) | x + n | Integer |
Dec(x) | x - 1 | Integer |
Dec(x,n) | x - n | Integer |
2.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.
2.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
2.3. Логический тип
Boolean - логический тип имеет 2 значения: false и true, занимают 1 байт памяти.
Над булевскими переменными определены 3 логические операции:
AND - конъюнкция (логическое умножение),
OR - дизъюнкция (логическое сложение),
NOT - отрицание.
FALSE<TRUE , поэтому применимы операции отношения.
Значения 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.
2.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)
2.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;