Преглед на файлове

SVI Исправления

SVI преди 2 години
родител
ревизия
62d1568b36
променени са 1 файла, в които са добавени 33 реда и са изтрити 35 реда
  1. 33 35
      README.md

+ 33 - 35
README.md

@@ -30,7 +30,8 @@
 		- [8.1 Операнды](#81-операнды)
 		- [8.2 Операторы](#82-операторы)
 		- [8.2.1 Логические операции](#821-логические-операции)
-		- [8.2.2 Арифметические операции](#822-арифметические-операции)
+		- [8.2.2 Арифметические операторы](#822-арифметические-операторы)
+		- [8.2.3 Отношения](#823-отношения)
 	- [Ссылки](#ссылки)
 
 ## 0. Введение
@@ -224,7 +225,6 @@ flowchart TD
 | ]       | Закрывающая квадратная скобка (массив)            |
 | {       | Фигурная открывающая скобка (область видимости)   |
 | }       | Закрывающая фигурная скобка (область видимости)   |
-| ВНУТРИ  | IN Определение вхождения                          |
 | ЕСТЬ    | IS Проверка типа                                  |
 | БУЛ     | BOOL Белвый тип                                   |
 | ДА      | TRUE Булево значение                              |
@@ -534,7 +534,7 @@ t(УзелСредний).подузел(Дерево)
 > p И q // обозначает «если р, то q, иначе НЕТ
 > НЕ P   // означает "не p"
 
-### 8.2.2 Арифметические операции
+### 8.2.2 Арифметические операторы
 
 | Символ | Результат                |
 | ------ | ------------------------ |
@@ -545,37 +545,35 @@ t(УзелСредний).подузел(Дерево)
 | ДИВ    | целое частное от деления |
 | МОД    | целое модуль  от деления |
 
-Операции +, -, * и / применяются к операндам числовых типов. Оба операнда должны быть одного типа, что также определяет тип результата. При использовании в качестве унарных операций "-" обозначает инверсию знака, а "+" обозначает операцию идентичности. Операции DIV и MOD применяются только к целочисленным операндам. Пусть q = x DIV y, а r = x MOD y. Тогда множитель q и остаток r определяются уравнением
-	X = q * y + r 		0 <= r < y
-
-8.2.3 Операторы наборов
-	Символ	Результат
-	+		объединение
-	-		разность
-	*		пересечение
-	/		cимметричная разность наборов
-
-.
-
-Когда используется с одним операндом типа SET, знак минус обозначает дополнение набора.
-8.2.4 Отношения
-	Символ	Результат
-	=		равно
-	#		неравно
-	<		меньше
-	<=		меньше или равно
-	>		больше
-	=		больше или равно
-	IN		членство в наборе
-	IS		проверка типа
-
-Результат операций отношения является базовым типом BOOLEAN. ОперацияОтношение упорядочения <, <=,>,> = применяется к числовым типам, CHAR и литерным массивам. Отношения = и # применимы также к типам BOOLEAN, SET, ссылкам и процедурным типам.
-x IN s    означает "x является элементом s". x должен иметь тип `ЦЕЛОЕ` и s должен быть типом SET.
-v IS T    означает «v имеет тип T» и вызывает проверку типа. Это применимо, если
-	1. T - расширение объявленного типа T0 для v, и если
-	2. v - параметр, как переменная типа записи или v - ссылка.
-
-Предполагая, например, что T является расширением T0 и что v является ссылкой на тип T0, тогда проверка v IS T определяет, является ли фактически указанная переменная (также, а не только T0) типом T. Значение NIL IS T не определено.
+Операторы `+`, `-`, `*` и `/` применяются к операндам числовых типов. Оба операнда *должны быть одного типа*, что также определяет тип результата. При использовании в качестве унарных операторов:
+- `-` обозначает инверсию знака;
+- `+` обозначает оператор идентичности.
+
+Операции `DIV` и `MOD` применяются *только* к целочисленным операндам. Пусть `q = x ДИВ y`, а `r = x МОД y`. Тогда множитель `q` и остаток `r` определяются уравнением:
+
+> x = q * y + r
+> 0 <= r < y
+
+### 8.2.3 Отношения
+
+| Символ | Результат        |
+| ------ | ---------------- |
+| =      | равно            |
+| !=     | неравно          |
+| <      | меньше           |
+| <=     | меньше или равно |
+| >      | больше           |
+| =      | больше или равно |
+| ЕСТЬ   | проверка типа    |
+
+Результат операций отношения является базовым типом `БУЛ`. `ОперацияОтношение` (`<`, `<=`,`>`,`=`) применяется к числовым типам и `БАЙТ`. Отношения `=` и `!=` применимы также к типам `БУЛ`, ссылкам и процедурным типам.
+
+`v ЕСТЬ T`    означает `v ЯВЛЯЕТСЯ типом T` и вызывает проверку типа. Это применимо, если выполнены все условия:
+
+- `T` расширение объявленной структуры `T0` для `v`;
+- `v` параметр, как переменная заданного типа структуры.
+
+Предполагая, например, что `T` является расширением `T0` и что `v` является ссылкой на структуру `T0`, тогда проверка `v ЕСТЬ T` определяет, является ли фактически указанная переменная (в том числе, а не только `T0`) cтруктурой типа `T`. Значение `ПУСТО ЕСТЬ Т` возвращает отрицательный результат.
 Примеры выражений (см. Примеры в главе 7):
 	1987				(`ЦЕЛОЕ`)
 	I DIV 3			(`ЦЕЛОЕ`)
@@ -588,7 +586,7 @@ v IS T    означает «v имеет тип T» и вызывает про
 	K IN {i .. j-1}		(BOOLEAN)
 	T IS УзелСредний		(BOOLEAN)
 
-9. Предписания
+1. Предписания
 Предписания обозначают действия. Есть простые и сложные предписания. Простые предписания не состоят из каких-либо частей, которые сами являлись бы предписаниями. Простые предписания -- просто присваивания, либо вызов процедур. Сложные предписания состоят из частей, которые сами являются предписаниями. Они используются, чтобы выразить последовательное и условное, выборочное и повторное действие. Предписания также могут быть пустыми, и в этом случае они не обозначают никаких действий. Пустое предписание включено в язык для того, чтобы ослабить правила пунктуации в последовательностях предписаний.
 
 	Предписание = [Присвоение | ВызовПроцедур | Предписание_IF | Предписание_CASE | Предписание_WHILE | Предписание_REPEAT | Предписание_FOR].