Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [ 80 ] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

в одном из предыдущих примеров) выглядит следующим образом! ор [j]. i - к элементу поля i, op. j - к полю ], op. f - к полю f,

если при создании записи поле s содержало значение large.

Буфер файла адресуется буферной переменной, за которой сле дует символ f и которая определяет текущее положение файла. Это положение, в свою очередь, определяет единственный компонент, подлежащий обработке в настоящий момент времени. Этот

уаг

МВенти(ринащ

Рис. 7.4.

СПУ

Тип

Ндетидшкатор пере/иетой

Идетисрикатср

О-

Выражение

<1>

HdenmuqiuHamcp поля

Рис. 7.5.

компонент называется компонентом файла. Например, если объявлена переменная а типа file, то ссылаться к буферу файла можно посредством указания идентификатора af .

Ссылочная переменная определяется указательной переменной, которая прикрепляется к некоторому заданному типу данных. Например, утверждение var р : f Т объявляет указательную переменную р типа Т. Ссылочная переменная создается в программе динамически и именуется идентификатором указательной переменной, за которым следует си.мвол f например pf , kl f , next, kl. k2t. price.

Операции. Композиция выражений в Паскале определяется правилом следования операций в соответствии с четырьмя их классами. Первой всегда выполняется операция not, затем мультипликативные, аддитивные операции и последними - операции отноше-



НИИ. Последовательность операций одного типа выполняется в обычном порядке, т. е. слева направо.

Операция not определяет отрицание некоторого булева операнда.

Л^ультипликативные операции; , /, div, mod, and обеспечивают, соответственно, выполнение операций умножения или пересечения множеств, деления с округлением, получение абсолютного значения, логическую операцию И .

Аддитивные операции: -f, - , or обозначают, соответственно, операции сложения или объединения множеств, вычитания или вычитания множеств, логическое ИЛИ ,

Операции отношений, применяемые в языке Паскаль, представлены в табл. 7.2.

,7.2. Операции отношений в Паскале

Операция

Тип операпдоЁ

Результат

= , < >

Любой

скалярный или

поддиапа-

Булево значение

< >

тип

< =, > =

Любой

скалярный или

поддиапа-

тип' и множества

этих же

типов

Операции < >, <=,> = соответствуют сравнениям на равенство, на меньше или равно и на больше или равно, соответственно.

Операции <= и > = могут также быть использованы для сравнения значений типа множеств и в этом случае обозначают проверку на включение множеств. Если операнды р н q представляют булевы выражения, то запись р = q означает проверку на эквивалентность, а р < = q означает импликацию, т. е. что р влечет q (так как в Паскале принято: false < true).

Операции отношений =, < >, <С, <=, >,> == могут быть использованы для сравнения упакованных массивов с компонентами типа char (т. е. для сравнения строк - strings). В этом случае выполняется проверка соответствия следования сравниваемых компонентов, порядок которых определяется алфавитной последовательностью.

Указатель функции определяет активизируемую в данном месте программы функцию. Оп состоит из идентификатора функции и списка параметров, включающего переменные, выражения, процедуры и функции.

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

sin (x-f у) + 0.12 not (х and у or z) (а -f b) > = с -f d a = b and z or a

Оператор присваивания предназначен для замены текущего еначення переменной новым, задаваемым выражением: (переменная) : = (выражение), где : = обозначает операцию присваивания. Выражение состоит из операндов (коистант или перемен-



ных), операторов и указателей функций. Вычисление выражений должно подчиняться правилам следования операторов. Приведен пример утверждений присваивания:

П : = pi х/у

sgrr : = sqr (г)

Z : = sin (а) + cos (b)

Ввод-вывод. В языке Паскаль для описания в программе ввода-вывода информации определены понятия входных и выходных файлов, которые ассоциируются с некоторыми входными и выходными устройствами (вторичной памятью или периферией). Базисные операторы для обработки входных и выходных файлов следующие:

reset (f) - присваивает f f значение первого элемента файла f. Значение функции eof (f) равно false, если файл не пуст. Если файл пуст, то значение f f неопределено, а значение eof (f) равно true (eof (f) - функция, определяющая состояние файла).

rewrite (f) - текущее значение файла замещается пустым файлом (не содержащим информации). Значение eof (f) равно true.

get (f) - следующий компонент файла присваивается в качестве значения переменной f f . Если файл прочитан и следующего компонента не существует, то значение f f неопределено и значение eof (f) становится равным true.

put (f) - передается значение буферной переменной f f в файл f. Операция выполняется, если eof (f) равно true. После операции значение f f неопределено.

Для объединения операций над файлом и буферной переменной в языке определены еще два оператора read и write. Их запись в программе эквивалентна выполнению следующих утверждений;

read (f, х) эквивалентно х: = f f ; get (f) write (f, x) эквивалентно f f := x; put (f) Приведем примеры объявлений и операций над файлами! 1. var о : file of alfa; а: alfa;

cf: = а; 1

i эквивалентно write (с, a)(

, put (с);

2. var i: file of integer; a : integer;

get(i); j

эквивалентно read(i, a);

Файлы, компонентами которых являются литеры, называются текстовыми файлами. Стандартный тип text определяется следующим образом; type text = file of char; в программе некоторый текстовый файл может быть объявлен так: var d : text,

В зависимости от реализации языка некоторые литеры входного илн выходного текстового файла могут играть служебную роль, например, указывать пропуск строк, пропуск литер и т. д. Некоторые стандартные процедуры позволяют генерировать служеб-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [ 80 ] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95