
- •3 Этапы разработки
- •Алфавит языка
- •1.4 Выражения
- •1.4.1. Операнды
- •1.4.2. Предопределенные знаки операций
- •1.4.2.1. Логические операции
- •1.4.2.2 Арифметические операции
- •1.4.2.3. Знаки операций для множеств
- •1.4.2.4. Отношения
- •1.4.3. Определенные пользователем знаки операций и объявления знаков операций
- •1.4.3.1. Базисные знаки операций, для которых допустима перегрузка
- •1.4.3.2. Объявления новых знаков операций
- •1.4.3.3. Правила, управляющие перегрузкой
- •1.4.3.4. Старшинство операций
- •1.4.3.5. Численные разрешения внутри выражений
- •7. Операторы ввода-вывода
- •Условный оператор
- •Оператор цикла с предусловием в Паскале
- •Оператор цикла с постусловием в языке Паскаль
- •Оператор цикла с параметром в языке Паскаль
- •10 Одномерные и двумерные массивы
- •11 Пузырьковая сортировка (bubble sort)
- •Сортировка выборочная (selection sort)
- •Быстрая сортировка (quick sort)
- •Алгоритм поиска путей в лабиринте из песочницы
- •Предыстория
- •История
- •Анализ алгоритмов и программ, 2 семестр. Рекуррентность и рекурсия
- •Основы систем счисления из песочницы
- •Введение
- •Непозиционные системы
- •Единичная система счисления
- •Древнеегипетская десятичная система
- •Вавилонская шестидесятеричная система
- •Римская система
- •Позиционные системы счисления
- •Десятичная система счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Однородные позиционные системы счисления
- •Смешанные системы счисления
- •Перевод из одной системы счисления в другую
- •Преобразование в десятичную систему счисления
- •Преобразование из десятичной системы счисления в другие
- •Преобразование из двоичной в восьмеричную и шестнадцатеричную системы
- •Преобразование из восьмеричной и шестнадцатеричной систем в двоичную
- •Преобразование дробной части двоичной системы в 8- и 16-ую
- •Преобразование дробной части десятичной системы в любую другую
1.4.2.3. Знаки операций для множеств
Знаки операций для множеств применимы к операндам типа set и вырабатывают результат типа set. Объявленные размеры в битах для операндов типа set должны совпадать. Знак унарного минуса обозначает дополнение x, т.е. –x обозначает множество целых чисел между 0 и max(set), которые не являются элементами x.
+ объединение покомпонентное или - разность покомпонентное вычитание (x - y = x * (-y)) * пересечение покомпонентное и / симметричная разность множеств покомпонентное исключенное или (x / y = (x-y) + (y-x))
Конструктор множества определяет значение множества перечислением в скобках его элементов, если они есть. Элементы должны быть числами из диапазона 0 .. max(set). Диапазон m .. n обозначает все целые числа из интервала, начинающегося элементом m и завершающегося элементом n, включая m и n. Если m > n, то m .. n обозначает пустое множество.
Примеры использования множеств:
const left = 0; right = 1; top = 2; bottom = 3; var edges: set; x, y: integer; begin edges := { }; (* пустое множество *) if x < xMin then edges := edges + {left} … if left in edges then … (* отрезать слева *)
const opCodemask = {0..3}; var opCode, word: set; … opCode := word * opCodeMask; (* извлечь op-code *)
1.4.2.4. Отношения
Отношения вырабатывают результат boolean. Отношения =, #, <, <=, >, и >= применимы числовым типам и char. Отношения = и # также применимы к boolean и set, также как и к процедурным типам (включая значение nil). x in s означает “x является элементом s”. x должно быть целого типа, а s типа set.
= равно # неравно < меньше <= меньше или равно > больше >= больше или равно in быть элементом множества implements x implements D равно true, если объект x реализует определение D is x is T является true, если присущий тип x является T
Примеры выражений
выражение тип пояснения 1991 integer Простое константное значение i div 3 integer Целочисленное деление i на 3 ~wellFormed or outOfRange boolean (не well-formed) или out-of-range (i+j) * (i-j) integer Арифметическое выражение s - {8, 9, 13} set{8} s , из которого удалены 8, 9, 13 keys in {left, right} boolean keys в left или в right или в том и другом ('0'<=ch) & (ch<='9') boolean ch является цифрой
1.4.3. Определенные пользователем знаки операций и объявления знаков операций
Дополнительно к базисным знакам операций есть возможность специфицировать программистские версии некоторых предопределенных я языке Zonnon знаки операций, называемые определенными пользователем знаки операций. Это делает возможным определять новые знаки операций, которые работают с определенными пользователем типами (например, комплексными числами) при сохранении обычного синтаксиса выражений и без необходимости прибегать к функционально-ориентированному стилю программирования.