Label 14,99
Структура программы
Pred, succ, ord
Begin
Var
Type
Перечисляемый тип
Вещественный тип (real)
Var
Type
workdays=mon..fri;
d:workdays;
N:1..30;
Стандартные процедуры ввода-вывода не умеют вводить-выводить значения перечисляемого и диапазонного типов.
Подмножество вещественных чисел. Хранится в формате с плавающей точкой; обычно занимает 4 байта. Все операции над вещественным типом приближенные, точность определяется машиной.
var x: real
Определение вещественного типа с константой
<число с фиксированной точкой>::=<целое>.<целое без знака>
15.74, -15.05 – правильно
.05, 15. – неправильно
<число с плавающей точкой>::=<число с фиксированной точкой>E<целое>
15.72E+2 – правильно (1572)
.75E2 – неправильно
При условии, что хоть один из операндов вещественный, следующие операции дают вещественный результат. Операция деления всегда дает вещественный результат.
Функции
sin(x)
cos(x)
arctan(x)
ln(x)
exp(x)
sqrt(x)
sqt(x)
abs(x)
Вещественные типы Вorland Pascal
Тип | Кол-во занимаемой памяти (байт) | Количество десятичных разрядов |
single | 7-8 | |
real | 11-12 | |
double | 15-16 | |
extended | 19-20 |
Перечисляемый тип представляет собой множество значений, которые задаются путем перечисления значений-констант.
<перечисляемый тип>::=(<имя>,{<имя>})
color=(white,black,red);
c1:color;
c2:(white,blue);
D:(vonday,tuesday);
C1:blue;
Операции, выполняемые над перечисляемыми типами:
С1:=blue;
C2:=red;
C1<C2 – false
D:=wednesday;
pred(D)=tuesday;
succ(D)=thursday;
ord(D)=2; {ord(Monday)=0}
ЛЕКЦИЯ №8
<программа>::=<заголовок программ>;<блок>
рrogram <имя>(<имя>{,имя,})
<блок>::=<раздел описания меток>;
<раздел определения констант>;
<раздел определения типов>;
<раздел описания переменных>;
<раздел описания процедур и функций>;
<раздел операторов>;
Раздел описания меток
<раздел описания меток>::=<label<целое без знака>{,..,};
Метка – любое число от 0 до 9999
14: x := x + 5;
…
If x < 0 then goto 14
Раздел описания констант
Определение константы вводит имя как синоним некоторой константы.
const <определение константы>{;..;}
<определение константы>::=<имя>=<константа>
<константа>::=[<знак>](<имя константы>)|<число без знака>|<строка символов>
В БНФ круглые скобки используются для группировки.
Раздел описания типов
Type<определение типа>{< определение типа >}
<тип>::=<простой тип>|<составной тип>|<ссылочный тип>
Type celoe=integer;
Log=Boolean;
DNI=(PN,VT,SR,CHT,PT,SB,VS);
Раздел описания переменных
Описание переменной всегда предшествует ее использованию.
<раздел описания переменных>::=var <описание переменной>{;<описание переменной>;}
<описание переменной>::<список имен>:<тип>
var i, j, k, l: integer;
a, c, B: real;
D1, D2: DNI;
Раздел операторов
<раздел операторов>::=<составной оператор>
<составной оператор>::=begin<оператор>{;<оператор>;}end
<оператор>::=