Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы зачета по информатике.docx с...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
312.26 Кб
Скачать

1.4.1. Операнды

За исключением конструкторов множеств и литеральных констант (числа, символьные константы или строки), операнды изображаются обозначениями. Обозначение состоит из идентификатора, ссылающегося на константу, переменную или процедуру. Возможно, что этот идентификатор квалифицируется идентификатором, обозначающим модуль, определение, реализацию или объект и может завершаться селекторами, если обозначаемый объект является элементом структуры.

Designator = Instance

| Designator "{" Type “}”// Приведение  | Designator "^" // Разыменование  | Designator "[" Expression { "," Expression } "]"// Элемент массива  | Designator "(" [ ActualParameters ] ")" // Вызов функции  | Designator "." MemberName // Селектор члена

Instance = (self| InstanceName | DefinitionName "(" InstanceName ")" ).

ActualParameters = Actual { "," Actual }.

Actual = Expression [ "{" [var] FormalType "}" ]. // Аргумент с сигнатурой типа

Символ ^ используется, с тем чтобы факультативно сделать явной ссылку в программном тексте.

Примеры:

Обозначение                  Тип                          Значение  size                                  integer                      Значение переменной, называемой size  a[i]                                   real                           Элемент массива a в позиции i  dateOfBirth.day               integer{8}                 Поле day объекта, называемого dateOfBirth  w[3].name[i]                   char                           Элемент в позиции i в поле name у элемента массива w в позиции 3

Если a обозначает массив, то a[e] обозначает тот элемент a, чей индекс является текущим значением выражения e. Выражение e должно быть либо типом перечисления, либо кардинального или целого типа. Обозначение вида a[e0, e1, …., en] означает a[e0][e1]….[en].

Если obj обозначает объект, то obj.f обозначает поле f у obj или метод f у объекта obj (см. 1.9.1).

Если обозначаемый объект является константой или переменной, то обозначение ссылается на ее текущее значение. Если он является процедурой, обозначение ссылается на эту процедуру. Однако если объект является процедурой-функцией и за ним следует (возможно, пустой) список параметров, это обозначение приводит к активации этой процедуры и представляет значение, являющееся результатом этого исполнения. Фактические параметры должны соответствовать формальным параметрам как в подходящих вызовах процедуры (см. 1.5.2).   

1.4.2. Предопределенные знаки операций

Предопределенные знаки операций зафиксированы и встроены в язык.   

1.4.2.1. Логические операции

Эти знаки операций применимы к операндам boolean и производят результат boolean.

or логическая дизъюнкция p or q  “если p то true, иначе q”  & логическая конъюнкция p & q  “если p то q, иначе false”  ~ отрицание   ~ p  “не p”   

1.4.2.2 Арифметические операции

Знаки операций +, -, и * применимы в выражениях к операндам числовых типов (см. 1.4.3.1). Знак операции деления применим к операндам типа real и производит результат типа real. При использовании знаков унарных операций, - обозначает изменение знака и + обозначает тождественную операцию.  + сложение  - вычитание  * умножение  / вещественное деление (вещественных)

Примеры:

i :=j + k;  x := real(i) / float(j); (* см. раздел 1.3.3.9*)

Знаки операций div и mod применимы только к целым операндам.

div целочисленное деление  mod модуль

Они удовлетворяют следующим формулам, определенным для любого x и положительного делителя y:  x = (x div y) * y + (x mod y)  0 <= (x mod y) < y

Если значение делителя отрицательно, то смысл знаков операций div и mod определяется реализацией. Рекомендуется программисту проверять это условия и использовать математические рассуждения для обеспечения гарантии того, что используются в качестве делителей только положительные значения.

Примеры:

 x  y   x div y  x mod y   5  3      1           2  -5  3      2           1