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