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

 

<оператор>::=