[an error occurred while processing this directive]
КОМАЛ
на персональных компьютерах
ВВС Микрокомпьютер
и Акорн Электрон
РОЙ ТОРНТОН и
ПАУЛЬ КПИСТЕРСЕН
АКОРНСОФТ
Выражение признательности
Составить данное руководство за требуемый период времени можно было только благодаря поддержке наших семей, ободрения друзей, в том числе Марка Тэйлора, Энди Тонкса и Грэма Ноубла, и обширной помощи внедрителей Акорнсофт КОМАЛ.
Выражаем также благодарность персоналу Оптимус График Дезайн, Кембридж за их неоценимый труд.
Версия Акорнсофт КОМАЛА была написана Дэвидом Кристенсеном, Джеймсм Варвиком и Дэвидом Эверсом, в то время все учились в Портсмут Грэммар Скул. Дэвид Кристенсен и Джеймс Варвик сейчас в Кембриджском университете. Внедрители и авторы были активно вовлеченыв международное развитие и стандартизацию языка КОМАЛ.
ISBN 0 907876 90 0
Авторское право Акорнсофт Лимитед 1984
Никакая часть этой книги не может быть воспроизведена без предварительного разрешения держателя авторского права. Единсвенными исключениями являются случаи, которые предусмотрены Актом по авторским правам или использование книги для обзора, или использование приведенного в книге програмного обеспечения владельцем данной книги.
Первое издание
Примечание: В данной публикации термин "ВВС" является аббревиатурой названия "Британская Радиовещательная Корпорация".
Впервые опубликовано Акорнсофт Лимитед, Бетджеман Хауз, 104 Хилз Роуд, Кембридж СВ2 1LQ, Англия. Телефон (0223)316039
СОДЕРЖАНИЕ
___________________
Введение 1
___________________________________________
О данном руководстве 1
ЧАсть 1 - для абсолютного новичка
1 Изучение нового языка 5
___________________________________________
2 Клавиатура 6
___________________________________________
2.1 Включение 6
2.2 Заглавные и регистры 7
2.3 Вход в Комал 9
2.4 PRINT, сложение и вычитание 10
2.5 Синтаксические ошибки 11
2.6 Ввод 11
2.7 Еще немного апифметики 11
2.8 Печать чисел 14
2.9 печать сообщений 14
2.10 Итоговые упражнения 15
2.11 Выводы 15
3 Переменные и присваивание 17
___________________________________________
3.1 Переменные 17
3.2 Присвваиивание 17
3.3 Узнавание и поиск 18
3.4 Изменение и вчисление 18
3.5 Смешивание сообщений и чисел 20
3.6 Еще о переменных 20
3.7 Маленькие и большие 23
3.8 Точность 24
3.9 Целые и действительные 24
3.10 Функции 25
3.11 INT 25
3.12 системные функции и FREE 26
3.13 PI 26
3.14 Итоговые упражнения 27
3.15 Выводы 28
4 Строки и СLEAR 29
--------------------------------------------
4.1 Строки символов 29
4.2 Какова длина строки? 30
4.3 IN 31
4.4 Бинарные операторы 32
4.5 Установка размеров строки 32
4.6 Очистка памяти 33
4.7 Форматы печати 34
4.8 Сложение строк 36
4.9 Использование пробелов внутри строк 37
4.10 Кавычки внутри строки 37
4.11 Итоговые упражнения
4.12 Выводы
5 Программы 39
----------------------------------------------
5.1 Подготовка к программе 39
5.2 Строки программы 39
5.3 RUN 40
5.4 LIST 40
5.5 RENUMBER 40
5.6 Порядок выполнения 41
5.7 Редактирование 41
5.8 OLD 43
5.9 Сокращения 43
5.10 Уничтожение нескольких строк 44
5.11 AUTO 44
5.12 Комментарии 45
5.13 Модефицирование программы 46
5.14 Переменные при просмотре 48
5.15 Итоговые упражнения 48
5.16 Выводы
6 Простые циклы 50
-----------------------------------------------
6.1 Повторяющиеся операторы 50
6.2 Контроль цикла 51
6.3 Полезные дополнения 51
6.4 STEP 52
6.5 Невозможные циклы 53
6.6 Сначала представляйте переменные 53
6.7 Обозначение :+ 54
6.8 Обозначение :- 55
6.9 Удваивание 55
6.10 Итоговые упражнения 55
6.11 Выводы 56
Еще о PRINT 57
-----------------------------------------------
7.1 Очистка экрана 58
7.2 Табулирование вдоль экрана 58
7.3 Структурные ошибки 59
7.4 Табулирование вниз по экрану 60
7.5 Коды 61
7.6 Символы 62
7.7 Итоговые упражнения 63
7.8 Выводы 64
8. Режимы и текстовые цвета 65
----------------------------------------------
8.1 Выбор режима 65
8.2 Функциональные клавиши 67
8.3 Номера COLOUR (цветов) 68
8.4 Нет комментария 72
8.5 TAB и COLOUR 72
8.6 Итоговые упражнения 72
8.7 Выводы 73
9 Получение информации с клавиатуры 74
----------------------------------------------
9.1 Использование TNPUT 74
9.2 Подсказка INPUT 75
9.3 Использование неправильного типа ввода 76
9.4 Строчный INPUT 76
9.5 Получение одного кода 77
9.6 Получение одного символа 77
9.7 Итоговые упражнения 78
9.8 Выводы
10. Создание случайных чисел 80
-----------------------------------------------
10.1 RND 80
10.2 Случайные десятичные величины 80
10.3 Пример программы 81
10.4 Случайные числа от и до. 82
10.5 TIME 82
10.6 Ничего не делая 83
10.7 Итоговые упражнения 84
10.8 Выводы 84
11 Графика 85
-----------------------------------------------
11.1 Графические режимы 85
11.2 Координаты 85
11.3 DRAW 85
11.4 MOVE 86
11.5 Графические цвета 87
11.6 Очистка графикии 88
11.7 Цвета фона графики 88
11.8 Графика в восьми цветах 88
11.9 Построение точек 89
11.10 POINT( 89
11.11 Заполнение треугольника 90
11.12 Окна 91
11.13 Итоговые упражнения 93
11.14 Выводы 94
12. STOP и COUNT 96
-----------------------------------------------
12.1 Остановка программы 96
12.2 CONT 96
12.3 Итоговые упражнения 98
13 Процедуры 99
-----------------------------------------------
13.1 Создание программы 99
13.2 Пример программы 100
13.3 Изменение режима 102
13.4 CLEAR 102
13.5 EDIT 103
13.6 EXEC 103
13.7 Просмотр более длинных программ 103
13.8 Использованиие процедур из прямого
режима 104
13.9 Итоговые упражнения 104
13.10 Выводы 105
14 Сохранене, загрузка и прогон программ 106
-----------------------------------------------
14.1 Составление каталогов 106
14.2 Имена файлов 106
14.3 Сохранение программы на кассете 106
14.4 Загрузка с кассеты 107
14.5 Сохранение на диске 107
14.6 Загрузка с диска 108
14.7 Уничтожение файла на диске 108
14.8 Комбинированная загрузка и прогон 109
15 Решения 110
-----------------------------------------------------
15.1 Делать, повторять и решать 110
15.2 Отношения 110
15.3 Использование условий 111
15.4 Сравнение строк 111
15.5 Длинная форма IF 112
15.6 ELSE 114
15.7 Итоговые упражнения
114
15.8 Выводы 115
16 Условный цикл 117
-------------------------------------------------------
16.1 REPEAT 117
16.2 Условные окончания 118
16.3 Использование условий 119
17.3 TRUE и FALSE 119
17.4 Числа, оканчивающие цикл 119
17.5 Испльзование GETS и IN 121
17.6 Итоговые упражнения 122
17.7 Выводы 122
17 Сохранение информации в программе 123
-----------------------------------------------------
17.1 DATA 123
17.2 READ 123
17.3 EOD 124
17.4 RESTORE 124
17.5 Чтение строки 126
17.6 Чтение нескольких элементов одновременно 126
17.7 Кавычки и пробелы внутри элементов данных 127
17.8 Демонстрационная программа 127
17.9 Данные, которые могут быть числовыми или
строчными 128
17.10 Итоговые упражнения 129
17.11 Выводы 130
18 Дополнительные функции, операторы и переменные 131
-------------------------------------------------------
18.1 Позииция на экране (POS и VPOS) 131
18.2 Примеры POS и VPOS 132
18.3 Возврат каретки и перевод строки 132
18.4 COUNT 133
18.5 WIDTH 133
18.6 ABS 134
18.7 SGN 134
18.8 DIV 135
18.9 MOD 135
18.10 Предшествование MOD и DIV 136
18.11 Реверсирование процесса 136
18.12 Итоговые упражнения 136
18.13 Выводы 137
19 Массивы 139
------------------------------------------------------
19.1 Введение 139
19.2 Размеры 139
19.3 Сохранение массивов 140
19.4 Установка размеров массивов 140
19.5 Пример программы 142
19.6 Включить и выключить курсор 144
19.7 Итоговые упражнения 146
19.8 Выводы 146
20 Еще о клавиатуре, циклах и функциях 148
------------------------------------------------------
20.1 INKEY 148
20.2 INKEYS 149
20.3 Клавиши без кодов ASCII 149
20.4 INKEY минус 149
20.5 Просмотровые коды клавиатуры Микрокомпьютеров
ВВС 150
20.6 Просмотровые коды клавиатуры компьютеров
Акорн Электронов 150
20.7 Пример программы 151
20.8 Использование процедур 152
20.9 Вложенные циклы 152
20.10 Приведение в соответствие субиндексов и
переменных 154
20.11 VAL 154
20.12 STRS 155
20.13 Итоговые упражнения 156
20.14 Выводы
21 Логические операторы 157
-----------------------------------------------------
21.1 OR 157
21.2 AND 158
21.3 EOR 158
21.4 Истинные таблицы 158
21.5 Логические операторы 159
21.6 NOT 161
21.7 Что является истинным? 161
21.8 Усечение до целых 162
21.9 Предшествование операторов 162
21.10 Итоговые упражнения 163
21.11 Выводы 164
Часть II - для более опытного программиста
22 Краткое изложение Части I 167
------------------------------------------------------
22.1 Среда программирования 169
22.2 Пункты, представленные в Части I 170
23 Вывод на принтеры и PRINT USING 175
-----------------------------------------------------
23.1 SELECT OUTPUT (выбор вывода) 175
23.2 Форматы печати 175
23.3 ZONE 176
23.4 - 176
23.5 PRINT USING 176
24 WHILE 178
-----------------------------------------------------
24.1 Возможно не цикл 178
24.2 Примеры 178
25 CASE 180
-----------------------------------------------------
25.1 OF 180
25.2 Формат CASE 181
26 Короткие формы 182
-----------------------------------------------------
26.1 Короткая форма FOR 182
26.2 Короткая форма WHILE 182
26.3 Исключения 183
27 Многократные присваивания и размеры 184
-----------------------------------------------------
27.1 Присваивания 184
27.2 Размеры 184
28 ELIF 185
------------------------------------------------------
28.1 Формат для ELIF 185
28.2 Демонстрационная програма 185
29 Подстроки 187
-----------------------------------------------------
29.1 Выбор подстроки 187
29.2 Определители подстрок 187
29.3 Предшесвование 188
29.4 Одноэлементные подстроки 189
29.5 Элементы строчного массива 190
29.6 Замена подстрок 190
30 Функции 193
-----------------------------------------------------
30.1 Пример программы 193
30.2 Использование функций 194
31 Параметры 195
-----------------------------------------------------
31.1 Вызов функции с параметрами 195
31.2 Местные переменные 196
31.3 Глобальные переменные 196
31.4 Переменные основного блока 196
31.5 Закрытые процедуры и функции 197
31.6 IMPORT 197
31.7 Использование одного и того же фактического
и формального параметра 199
31.8 Справочные параметры 199
31.9 Строчные параметры 200
31,10 Передача массивов по ссылке 201
32 Обращение с файлами 203
------------------------------------------------------
32.1 Последовательные файлы 203
32.2 Файлы произвольного (или прямого) обращения 203
32.3 Имена файлов 204
32.4 Номера файлов 204
32.5 Закрытие файла 204
32.6 Открытие последовательного файла 204
32.7 Помещение информациии в файл 205
32.8 Извлечение информации из файла 206
32.9 EOF 207
32.10 Дополнение последовательного файла 207
32.11 Файл произвольной выборки 208
32,12 Требуемая длина записи 208
32.13 Открытие файла произвольной выборки 209
32.14 Помещение данных в файл произвольной
выборки 209
32.15 Извлечение данных из файла произвольной
выборки 210
32.16 Неавтономная обработка 210
32.17 Экстент файла 211
32.18 Дополнительные записи 211
33 Другие функции и средства 212
-----------------------------------------------------
33.1 Стандартные математические функции 212
33.2 Звук 212
33.3 Аналоговый ввод 214
34 Аспекты низкого уровня Комала 215
------------------------------------------------------
34.1 Системные функции и переменные 215
34.2 Использование машинного кода из Комала 216
34.3 Организация памяти и карта 217
34.4 Структура программы 218
34.5 Несколько простых примеров 219
35. Слияние программ на Комале
220
-----------------------------------------------------
36 Перевод программ на Комал 221
-----------------------------------------------------
37 Сообщения об ошибках 223
-----------------------------------------------------
Часть III - справочная секция
38 Руководство по справочной секции 229
-----------------------------------------------------
38.1 Формат краткого иизложения 229
38.2 Справочные таблицы 230
39 Краткое описание ключевых слов и операторов 232
------------------------------------------------------
40 Справочные таблицы 393
------------------------------------------------------
40.1 Коды ASCII 394
40.2 Краткое описание кода VDU 396
40.3 Краткое описание вызова *FX 397
40.4 Ключевые слова, операторы и маркеры 400
40.5 Сообщения об ошибках и номера 404
40.6 Предшествование операторов и достоверность
числовых пределов 405
Часть IV
41 История Комала 409
-----------------------------------------------------
42 Дополнительные программы 410
-----------------------------------------------------
43 Предлагаемые ответы упражнений 414
-----------------------------------------------------
Алфавитный указатель 429
[an error occurred while processing this directive]