[an error occurred while processing this directive]

.сс

.лв

.шп6

ВВЕДЕНИЕ

.шп0

.ов

С точки зрения машинных языков, COMAL (Комал) является современным языком. Он - потомок Паскаля и Бейсика, вобравший в себя простоту операционной среды Бейсика и силу Паскаля. Комал получил значительное развитие в последние годы и в настоящее время обладает элегантностью и структурой, которые могут соперничать с любым языком для микрокомьютеров. Комал представляет собой язык более широкого использования, обеспечивающий написание хорошо структурированных программ. Кроме того, программу или процедуру, написанную одним автором, может легко понять или использовать другой.

.шп14

О руководстве.

.шп0

Часть 1 данного руководства написана как введение для абсолютного новичка. Для закрепления изученного материала в конце каждой секции имеются вопросы и справочный материал. Если читатель не может правильно ответить на значительную часть вопросов, ему дается совет прочитать соответствующие части главы.

Опытному пользователю Бейсика можно просто просмотреть справочный материал в конце каждой секции Части 1. Специфические моменты Комала напечатаны жирным шрифтом. Часть 2 содержит много тем, которые являются новыми для пользователя Бейсика, также как и более подробные описания некоторых идей, представленных в Части 1.

Часть 3 содержит основной справочный материал для программиста, которому необходимо уточнить некоторые моменты. Все команды, утверждения, функции и операторы определены и продемонстрированы.

Следует помнить, что данное руководство прежде всего описывает Комал, и поэтому содержит мало деталей по установке ПЭВМ АГАТ и использованию операционной системы. Информацию по этим вопросам можно найти в технической документации и руководстве по программированию на Бейсике в среде ОС ОНИКС.

.сс

.лв

.шп6

ЧАСТЬ I - для абсолютного новичка

.ов

.шп14

 1 Изучение нового языка.

.шп0

При изучении нового языка необходимо иметь ввиду три особенности.

Словарь: новые названия для довольно знакомых вещей. Компьютер имеет ограниченный словарь, состоящий из так называемых "ключевых слов".

Грамматика: способы соединения слов для подачи понятных утверждений и команд. Грамматика комьютера известна как "синтаксис" языка.

Идеи: что-либо выражаемое новым языком. Идеи исходят от нас, но на них могут влиять наши способности в использовании словаря и грамматики.

.сс

.шп6

 2 Клавиатура.

.шп0

В этой секции мы научимся пользоваться клавиатурой и ключевым словом PRINT (печать).

.шп14

 2.1  Включение.

.шп0

Подсоедините компьтер к сети и включите его. Вставьте диск с ОС ОНИКС в дисковод. Через некоторое время на экране должна появиться надпись, приведенная ниже.

OS ONIX (c) 1990 by Wlad Shevkunov

BASIC

>

Для запуска Комала введите команду: "*BOOT ROMS.COMAL"

Теперь на экране имеется символ "]". Он называется "подсказка" и означает, что компьютер ждет от вас действий. Рядом с подсказкой видна короткая мигающая черточка, которая называется "курсор".

Подсказка и курсор показывают, что комьютер ждет указаний.

Печатая на клавиатуре вы никаким образом не повредите компьютер. Не беспокойтесь, если при печатании вы сделали ошибку: она исправляется просто.

Клавиатура аналогична клавиатуре пишущей машинки, только имеет некоторые дополнительные клавиши. Найдите клавишу внизу справа с выгравированной точкой - это клавиша "УДАЛИТЬ". Если вы сделали печатную ошибку, нажмите эту клавишу, чтобы исправить ее.

А сейчас найдите клавишу G (около средины клавиатуры) и легко нажмите ее несколько раз. Заметьте как буква появляется на экране, а рядом всегда передвигается курсор.

Найдите клавишу УДАЛИТЬ и легко нажмите ее, чтобы убрать одно G. Курсор тоже сдвинется назад.

>GGG_

Длинная немаркированная клавиша, ближайшая к вам, называется - "клавиша пробела". Нажмите ее один раз. На пишущей машинке в этом случае движется каретка, на компьтере - получается пробел.

>GGG _

Если одновременно вы удержите клавишу ПВТ нажатой в течение двух секунд, то увидите, что буквы на экране появляются автоматически пока клавиша остается нажатой. Попробуйте.

>GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG_

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

Аналогичное происходит при нажатии на клавишу УДАЛИТЬ, но стирание происходит в обратном направлении. Попробуйте подержать эту клавишу вместе с ПВТ.

Вы можете пользоваться клавишей УДАЛИТЬ всегда когда вам надо убрать одну или несколько букв. Ее можно нажать один раз, или держать нажатой вместе с ПВТ некоторое время, чтобы продолжить стирание.

Держите их обе нажатыми и уберите все G . Если вы удержите клавишу и после исчезновения всех G , то вы увидите, что подсказка не уничтожается.

.шп14

 2.2  Заглавные буквы и регистры

.шп0

На правой и левой стороне клавиатуры есть клавиши, которые нам нужны.

УПР (управляющий символ)
РУС (русский шрифт)
РЕГ (смена регистра)
ЛАТ (латинский шрифт)

В правом и левом нижнем углу клавиатуры находятся два красных индикатора маркированные буквами "Р" и "L".

Нажмите РЕГ и не отпускайте ее. Если теперь вы нажмете несколько раз клавишу G, то увидите, на экране ряд маленьких g.

]gggggggggggg_

Чтобы получить русские буквы, нужно нажать на клавишу РЕГ (регистр) одним пальцем, а другим - клавишу РУС (переход в латинский шрифт производится аналогично). Попробуйте напечатать V, используя клавиши РЕГ+РУС и V:

]ggggggggggggжжж_

Это как в обычной пишущей машинке. Попытайтесь напечатать * используя клавиши РЕГ и :

]ggggggggggggжжж****_

Уберите все буквы, которые вы написали. На экране останется только подсказка ]_.

При использовании Комала можно писать как заглавные так и маленькие буквы. Если вы хотите пользоваться строчными буквами не нажимая РЕГ, введите команду *CAPS.

Нажмите несколько раз клавишу G.

]ggggg_

Затем - несклько раз клавишу 6.

]ggggg66666_

Буква G будет строчной, но появится и 6, которая находится на нижнем ряду. CAPS означает - заглавные. В этом случае клавиатура зафиксирована только на заглавные или строчные буквы.

Чтобы получить нижние символы на всех других клавишах, необходимо нажать на одну из клавиш РЕГ. Попробуйте написать !, который находится на клавише 1.

]ggggg66666!_

.шп14

 2.3  PRINT (печать), сложение и вычитание

.шп1

PRINT - это ключевое слово для вывода на экран. Ключевое слово - это слово, которое является частью словаря компьютера. За словом PRINT необходимо остаить пробел, а затем - объект, который нужно напечатать (вывести на экран).

.шп0

На компьютере можно выполнять сложные вычисления, но давайте начнем с чего-нибудь простого, того, что мы можем проверить: например, сложим 2 и 2.

Нам будет нужен знак плюс, +. Для этого мы нажмем клавишу РЕГ И клавишу ;, но сначала сотрем все символы перед подсказкой.

]_

Обычный карманный калькулятор может только показывать ответы, тогда как компьютер имеет много возможностей. Чтобы вывести на экран ответ мы должны использовать ключевое слово PRINT. Когда печатаете седующую команду, не забудьте слово PRINT и пробел после слова PRINT и перед 2. Вот как это должно выглядеть:

]PRINT 2 + 2_

При этом ничего не должно случиться, т.к. компьютер не знает, дали ли вы всю задачу. Мы должны ему сказать: "Ну, а теперь ты!" Мы это делаем, нажимая клавишу ВВОД, которая находится на правой стороне клавиатуры ("сломанная стрелка"). Нажмите клавишу ВВОД.

В последующих указаниях мы не будем показывать символ подсказки и курсор.

А сейчас напечатайте следующую команду после символа подсказки и не забудьте оставить пробел после слова PRINT.

PRINT 2 + 2 + 3

затем нажмите клавишу ВВОД.

Будьте внимательны в отношении цифры нуль, 0 и буквы О. Нуль расположен рядом с 9 и пересечен линией, чтобы его можно было отличать от буквы О.

Напечатайте

PRINT 10 + 10 и нажмите на клавишу ВВОД.

.шп14

 2.4  Синтаксическая ошибки

.шп0

Если вы напечатаете букву О там, где вы собирались напечатать нуль, компьютер выдаст информацию об ошибкe. Напечатайте такую же команду с неправильной информацией, используя букву О вместо цифры нуль и нажмите клавишу ВВОД.

Результат будет:

Syntax error

PRINT 1О + 1О

.шп1

Синтаксическая ошибка происходит, когда компьютер не может понять вашу команду.

.шп0

Если вы сделаете ошибку в вашей команде, вы увидете, что команда перепечатана компьютером и на ошибку указывает стрелка. Сейчас Можно вводить правильную команду.

Чтобы компьютер произвел вычитание, необходимо использовать знак минус -, который расположен рядом с клавишей 0 на верхнем ряду. Не спутайте этот знак с более длинной чертой _, которая находится рядом с правой клавишей РЕГ. Этот символ используется для подчеркивания, а не для вычитания.

Напечатайте:

PRINT 56 - 45 и нажмите на клавишу ВВОД,

затем

PRINT 56 - 45 - 2 и нажмите ВВОД.

Если произошла синтаксическая ошибка, вы уверены, что был использован нужный символ?

.шп14

 2.5  Ввод

.шп0

Чтобы не говорить вам после каждого указания:"Нажмите клавишу ВВОД.", мы будем использовать слово "ввод", которое означает: напечатайте указание и нажмите клавишу ВВОД. Если вы забудете нажать клавишу ВВОД произойдет неудобная пауза, во время которой вы будете смотреть на компьютер и думать почему ничего не происходит.

.шп14

 2.6  Еще немного арифметики

.шп2

Умножение и деление

.шп0

Найдите в правой стороне клавиатуры клавишу с символами : и *.

Введите

PRINT 3 * 4

Вы не забыли нажать ВВОД?

Теперь

PRINT 4 * 5 * 6

.шп1

Символ '*' обозначает умножение.

.шп0

В нижнем правом углу находится клавиша со знаками ? и /.

Введите

PRINT 8 / 2

теперь

PRINT 15 / 3

.шп1

Символ '/' обозначает деление.

.шп0

Мы можем одновременно использовать разные арифметические операции внутри одной строки

Введите

PRINT 4 * 5 / 2

.шп2

Последовательность вычислений

.шп1

Если в формуле используются различные арифметические опреации, то сначала выполняются умножение и деление, а затем только сложение и вычитание, при условии, что не используются круглые скобки.

.шп0

Ввдеите

PRINT 3 + 4 * 5

Результат равен 23, т.к. сначала 4 умножается на 5, а затем прибавляется 3.

Если вы хотите поменять порядок вычисления (сначала сложить, а затем умножить), вы должны использовать круглые скобки.

Введите

PRINT (3 + 4) * 5

Использование квадратных скобок [ и ] или фигурных { и } не дает такого же результата.

.шп2

Числа

.шп0

Символ '.' используется для обозначения десятичной запятой.

Введите

PRINT 1.23 * 4.56

теперь

PRINT 9.87 / 0.654

.шп2

Возведение в степень

.шп0

Для обозначения операции "возведение в степень" используется символ '^'.

Введите

PRINT 2 ^ 3

Вы должны получить результат 8, т.е. 2 в третьей степени или 2*2*2.

.шп1

Возведение в степень выполняется перед умножением и делением, если нет круглых скобок.

.шп0

Введите

PRINT 2 * 5 ^ 3

Компьютер посчитал значение "5 в кубеумноженное на 2".

Введите

PRINT (2 * 5) ^ 3

Теперь компьютер посчитал "2 умножить на 5 и возвести в куб".

.шп14

 2.7  Печать чисел

.шп0

Вы уже заметили, что результаты вычислений печатаются таким образом, что последняя цифра оказывается в десятой позиции от начала строки? Весь экран разбит на столбцы (зоны) шириной в десять символов.

.шп1

Числа обычно печатаются с максимально возможным смещением к правому краю текущей зоны

.шп0

Если вы хотите печатать числа с левым смещением, вы должны использовать символ ';'.

Введите

PRINT ;2 + 2

и еще

PRINT ;3 * 4

.шп1

Точка с запятой используется в команде PRINT для печати чисел со смещение к левому краю зоны.

.шп0

.шп14

 2.8  Печать сообщений

.шп0

Найдите знак кавычек под клавишей '2'.

Не забывайте использовать закывающую "кавычку" в конце печатываемого сообщения.

Введите

PRINT "HELLO"

и еще

PRINT "HOW DO YOU DO ?"

.шп1

Набор символов заключенный в кавычки после оператора PRINT печатается начиная с самой левой позиции.

.шп14

 2.10 Итоговые упражнения и выводы

.шп0

Попробуйте заставить компьютер сделать следующие вычисления.

 1. Сложить 7 и 6.

 2. Сложить все числа от 1 до 5.

 3. Умножить 4 на 5 и на 9 и разделить результат на 6.

 4. Из 7 умноженного на 7 вычесть 6 умноженное на 6.

 5. Разделить 24 на результат сложения 4 и 5.

 6. Умножьте 123456789 на 7 и затем на 9.

 7. Разделите 1 на 0.11.

 8. Умножьте 3.142 на 3.5 в квадрате и поделите результат на 3.

 9. Если один рубль можно поменять на 3 цента, сколько центов можно выменять за 17 рублей 50 копеек.

10. Используя курс из 9-го пункта определите, на сколько рублей можно поменять 57 центов.

.шп14

 2.11 Выводы

1. Не имеет значения, в каком регистре вы набираете команды Комала.

2. После ключевых слов типа PRINT надо ставить пробел.

3. Сообщения, заключенные в кавычки печатаются в самой левой позиции. Например:

PRINT "LIKE THIS"

дает результат

LIKE THIS

4. Символ возведения в степень - '^'.

5. Если не используются круглые скобки для изменения порядка вычислений, возведение в степень производится до выполнения операций умножения и деления, которые в свою очередь выполняются до операций сложения и вычитания.

6. Числа обычно печатаются с правым смещением в текушей 10-ти символьной зоне, если только в операторе PRINT не использован знак ';'. В последнем случае число печатается начиная с текущей позиции текстового курсора

.сс

.шп6

 3 Переменные и присваивание

.шп0

В этой секции вы научитесь сохранять числа в памяти компьютера. Мы будем использовать ключевые слова INT, FREE и PI.

В предыдущей секции мы использовали заглавные буквы. Однако Комал понимает и строчные. Чтобы в латинском режиме строчные буквы печатались без нажатия клавиши РЕГ введите команду "*CAPS".

.шп14

 3.1  Переменные

.шп0

Компьютер может запоминать значения для последующего использования. Каждое сохраняемое значение должно иметь имя, по которому его можно идентифицировать.

Мы можем изменять сохраненное значение используя соответствующее имя. Имена соответствующие каким либо значениям называются "перемнные".

.шп14

 3.2  Присваивание

.шп0

Найдите символ ':' (он на той же клавише, что и '*'), а также клавишу с символом '=' (он получается при одновременном нажтии этой клавиши с клавишей РЕГ).

Введите

a := 5

Ничего не произошло. Однако теперь число 5 'присвоено' переменной 'а'.

.шп1

Для присвоения используется оператор ':='

.шп0

a := 5 является командой для компьютера. Она означает: "Пусть переменная 'a' станет равной 5".

Мы можем убедиться в том, что компьютер выполнил команду напечатав значение переменной 'a'. Не забудьте ввести пробел после оператора PRINT:

print a

Число 5 напечатается в 10-й позиции строки.

Чтобы напечатать результат в левой позиции, введите

print ;a

.шп2

Большие и маленькие буквы.

.шп1

Нет никакой разницы между a := 5 и A := 5

.шп0

Мы можем заставить компьютер напечатать значение A.

Введите

print ;A

И мы все равно получим число 5. Однако, если мы заключим имя переменной в кавычки, оно просто напечатается.

Введите

print "a"

.шп14

 3.3 Распознавание и поиск

.шп0

Компьютер распознает ключевые слова языка и операторы типа '+' и '*'. Любые другие слова или символы, если они не были объявлены заранее вызывают сообщение об ошибке. Не забывайте ставить пробел после оператора print:

print b

Компьютер ищет в памяти переменную с именем 'b' и не находит ее. Ничего удивительного! Мы же забыли присвоить ей значение!

Введите

b := 6

и

print b

Теперь все в порядке: компьютер напечатал значение переменной 'b'. Мы должны присвоить переменной какое нибудь значение прежде, чем использовать ее.

.шп14

 3.4  Изменение и вычисление

.шп0

Мы можем изменить значение переменных a и b.

Введите

a := 7

и

b := 8

теперь

print a

и

print b

Компьютер может производить арифметические действия с переменными.

Введите

print a + b

и

print a * b

Мы можем также присваивать результаты вычислений новым переменным. Например, значения 'a' и 'b' можно сложить и присвоить результат переменной 'c'.

Введите

c := a + b

и

print c

.шп1

Более правильно для присваивания использовать символ ':=', однако можно использовать и знак '='.

.шп0

Введите

c = a * b

и

print c

Символ '=' также может использоваться для присвивания.

.шп1

Переменная, которой присваивается значение, должна находится с лева знака ':=' ('=')

.шп0

Если мы попытаемся поменять местами левую и правую части выражения, мы получим сообщение об ошибке.

Введите

2 := c

Однако мы можем использовать старое значение переменно, которй присваивается новое значение.

Введите

c := c + 2

т.е "взять значение 'c', прибавить 2 и полученный результат присвоить переменной 'c'".

Введите

print c

.ст комал3

[an error occurred while processing this directive]