| унарная_операция выражение
| функция(аргументы)
Числа представляются с плавающей точкой. Формат ввода распознается с помощью scanf(3)
: цифры, десятичная точка, цифры, е
или E
, показатель степени со знаком. Должна присутствовать по крайней мере одна цифра или десятичная точка; другие компоненты являются необязательными.
Имена переменных формируются из букв, за которыми следуют строки букв и цифр. Здесь !
' (логическое отрицание НЕ) и (арифметическое отрицание, перемена знака). Все операции перечислены в табл. П.2.1.
^ | Возведение в степень (FORTRAN ** ), правоассоциативна |
! - | Одноместные логическое и арифметическое отрицания |
* / | Умножение, деление |
+ - | Сложение, вычитание |
> >= | Операции отношения: больше, больше или равно |
< <= | Меньше, меньше или равно |
== != | Равно, не равно (все отношения одинакового приоритета) |
&& | Логическое И (оба операнда всегда вычисляются) |
|| | Логическое ИЛИ (оба операнда всегда вычисляются) |
= | Присваивание, правоассоциативна |
Таблица П.2.1. Операции по порядку уменьшения приоритета
Функции, как описывается ниже, могут быть определены пользователем. Аргументы функций — это выражения, разделяемые запятыми. В табл. П.2.2 перечислено несколько встроенных функций, имеющих по одному аргументу.
abs(x) | Абсолютная величина |
atan(x) | Арктангенс |
cos(x) | Косинус |
exp(х) | Экспонента |
int(x) | Целая часть |
log(x) | Натуральный логарифм |
log10(x) | Десятичный логарифм |
sin(x) | Синус |
sqrt(x) | Корень квадратный из |
Таблица П.2.2. Встроенные функции
Логические выражения имеют значения 1 (истина) и 0 (ложь). Как и в Си, любое ненулевое значение означает истину. При всех операциях над числами с плавающей точкой сравнения на равенство могут быть неточными. Кроме того, hoc
имеет несколько встроенных констант, приведенных в табл. П.2.3.
DEG | 57.2957795130823208768 | 180/π, градусы на радианы |
E | 2.71828182845904523536 | е, основание натуральных логарифмов |
GAMMA | 0.57721566490153286060 | γ, константа Эйлера-Масчерони |
PHI | 1.61803398874989484820 | (√5+1)/2, золотое сечение |
PI | 3.14159265358979323846 | π, круговое трансцендентное число |
Таблица П.2.3. Встроенные константы
Операторы hoc
имеют следующую грамматику:
оператор : выражение
| переменная выражение
| процедура (список, аргументов)
| while (выражение) оператор
| if (выражение) оператор
| if (выражение) оператор else оператор
| список_операторов
| print список_выражений
| return возможное_выражение
список_операторов : (пусто)
| список_операторов оператор
Присваивание распознается по умолчанию как оператор, а не как выражение, поэтому после ввода в диалоге присваиваний их значения не печатаются.
Отметим, что символ ;
не является для hoc
специальным: оператор оканчивается символом перевода строки. Это обусловливает некоторые особенности. Ниже показан допустимый оператор if
:
if (x < 0) print(у) else print (z)
if (x < 0) {
print(y)
} else {
print(z)
}
Во втором примере скобки не обязательны: символ перевода строки после if
оканчивал бы оператор и вызывал бы синтаксическую ошибку там, где опущены скобки.
Синтаксис и семантика средств управления в hoc
в основном те же, что и в Си. Одинаковы также while
и if
, однако в hoc
нет операторов break
и continue
.
read
и print
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии