Вход/Регистрация
UNIX — универсальная среда программирования
вернуться

Керниган Брайан Уилсон

Шрифт:

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

!
' (логическое отрицание НЕ) и (арифметическое отрицание, перемена знака). Все операции перечислены в табл. П.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.

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

Функция ввода

read
(читать) имеет, подобно другим встроенным функциям, один аргумент: однако он не является выражением: это имя переменной. Следующее число, как определено выше, читается из стандартного входного потока и присваивается поименованной переменной. Функция
read
возвращает значения 1 (истина), если величина была прочитана, и 0 (ложь), если
read
встретила конец файла либо ошибку.

Выходной поток порождается оператором

print
. Аргументы
print
составляют разделяемый запятыми список выражений и строк, взятых в кавычки, как в Си. Символы перевода строки должны добавляться:
print
их никогда автоматически не вводит.

Отметим, что

read
есть специальная встроенная функция и поэтому получает один аргумент в скобках, тогда как
print
оператор, получающий список, разделяемый запятыми без скобок:

while (read (x)) {

  • Читать дальше
  • 1
  • ...
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: