| унарная_операция выражение

 | функция(аргументы)

Числа представляются с плавающей точкой. Формат ввода распознается с помощью scanf(3): цифры, десятичная точка, цифры, е или E, показатель степени со знаком. Должна присутствовать по крайней мере одна цифра или десятичная точка; другие компоненты являются необязательными.

Имена переменных формируются из букв, за которыми следуют строки букв и цифр. Здесь бинарная_операция означает двуместные операции, такие, как сложение или логическое сравнение, а унарная_операция — две операции отрицания: '!' (логическое отрицание НЕ) и (арифметическое отрицание, перемена знака). Все операции перечислены в табл. П.2.1.

^Возведение в степень (FORTRAN **), правоассоциативна
! -Одноместные логическое и арифметическое отрицания
* /Умножение, деление
+ -Сложение, вычитание
> >=Операции отношения: больше, больше или равно
< <=Меньше, меньше или равно
== !=Равно, не равно (все отношения одинакового приоритета)
&&Логическое И (оба операнда всегда вычисляются)
||Логическое ИЛИ (оба операнда всегда вычисляются)
=Присваивание, правоассоциативна

Таблица П.2.1. Операции по порядку уменьшения приоритета

Функции, как описывается ниже, могут быть определены пользователем. Аргументы функций — это выражения, разделяемые запятыми. В табл. П.2.2 перечислено несколько встроенных функций, имеющих по одному аргументу.

abs(x)Абсолютная величина x
atan(x)Арктангенс x
cos(x)Косинус x
exp(х)Экспонента x
int(x)Целая часть x, усеченная в сторону нуля
log(x)Натуральный логарифм x
log10(x)Десятичный логарифм x
sin(x)Синус x
sqrt(x)Корень квадратный из x

Таблица П.2.2. Встроенные функции

Логические выражения имеют значения 1 (истина) и 0 (ложь). Как и в Си, любое ненулевое значение означает истину. При всех операциях над числами с плавающей точкой сравнения на равенство могут быть неточными. Кроме того, hoc имеет несколько встроенных констант, приведенных в табл. П.2.3.

DEG57.2957795130823208768180/π, градусы на радианы
E2.71828182845904523536е, основание натуральных логарифмов
GAMMA0.57721566490153286060γ, константа Эйлера-Масчерони
PHI1.61803398874989484820(√5+1)/2, золотое сечение
PI3.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
Перейти на страницу:

Похожие книги