[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]