ZX Spectrum
Game

Mira Modula-2

Mira Software (Великобритания),

Автор неизвестен

Жанр: Программы и утилиты


Доступные версии

 Неопознанная копия
Играть!

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один
  • Описание
  • Описание (авт.пер.)
  • Описание (авт.пер.)
  • Информация

УСТАНОВКА ЛИСТ

Привод версии:

Чтобы установить компилятор, сначала убедитесь, что операционная система для вашего привода был инициализирован, и место диск / картридж вы хотите сохранить компилятор в диске. Затем введите НАГРУЗКИ “” и начать ленту на начиная от стороны 1. (С 3 вам нужно будет ввести НАГРУЗКИ “T:” Первый). Это позволит загрузить основную программу загрузчик который загрузит сам компилятор, а затем отобразить меню. В этот момент вы должны остановить ленту и введите необходимое количество, а затем перезагрузить ленту. Соответствующий драйвер для вашей системы будет загружаться, компилятор сохраняется на диске с названием “М2” и его основные погрузчика будут сохранены (с именем “диск”, чтобы +3, “Loader” в бета-диске или Wafadrive и “Run” в другие приводы). Компилятор будет тогда работать, давая сообщение “Введите имя программы”, готов для загрузки модуля с диска. Как не будет ни одного модуля на привод еще, вы должны нажать на кнопку вниз (CAPS SHIFT и 6) для выхода из этого. Вы должны решить, какой из модули из стороны 1 Вы хотите передать. Те сразу же после того, как водители демонстрация Модули “Часы” в «деревнях», с данными “STARS” и “VILDATA” (см ниже). После них “Учебник” модули “Терминал” в “процессов”.

Для передачи каждого модуля установить опцию байт 0 (Пресс букву О, затем введите номер 0), затем нажмите Л. сообщение “Введите имя программы” появится, но вы можете просто нажать ENTER для загрузки следующего модуля с ленты. Запустить ленту, то остановить его, когда модуль загружен. Затем установите опцию байт до 1 и Нажмите S следуют ENTER. Модуль будет сохранен на диск, используя имя в своем заголовке.

Модуль должен быть затем удален из редактора, нажав SYMBOL SHIFT & 7, то В, то SYMBOL SHIFT & 6, а затем удалить (CAPS SHIFT и 0).

Альтернативный, более быстрый способ перевести модули для 48К версиях компилятора является установить опцию байт 0, то для каждого модуля пресс SYMBOL SHIFT & L, то ENTER, чтобы загрузить его с ленты. Каждый раз, это делается спасет любую предыдущую модуль для управления 1 и удалите его из памяти перед загрузкой на следующий. Тем не менее, эта экономия имеет место только если это флаг, указывающий некоторые изменения в модуль был установлен. Чтобы сделать это вы должны нажать EDIT последующим ENTER после загрузки первого модуля.

Использование описанной выше процедуры для 128k версий спасет модули для ramdisc вместо езды 1. Сделав это, вы можете установить опцию байт до 15, загрузки каждого модуля по прессования SYMBOL SHIFT & L, то введя имя модуля, а затем сохранить его на prssing S с последующим ENTER.

Лента версия:

Лента версии могут быть загружены, введя НАГРУЗКИ “”, и начиная ленту в начале стороне 1.

Вы должны остановить ленту и нажмите соответствующий номер, когда на экране появится меню. Версия 48К будет запустите компилятор, версия 128K потребует драйвер для загрузки с ленты, прежде чем делать так. При этом этап вы можете выйти из компилятора (нажмите клавишу вниз, то СИМВОЛ SHIFT & A), и сохранить ваш собственный основной загрузчик и компилятор на другую ленту, используя информацию, предоставленную ниже.

Копирование другие файлы с ленты

Если вы хотите сделать резервную копию компилятора, то вы можете найти полезную следующую информацию относительно файлы “START” и “М2” и водители “Лента” в “OPUS2”. Чтобы использовать демонстрацию программы “Starbase” и “ROUTE” вы должны будете скопировать файлы “STARS” и “VILDATA” на диске.

Файлы “RTAPE” в “ROPUS + 2» являются водители во время выполнения. Вам не нужно будет их запускать программы на Система, на которой они были составлены, но если вы распространяете свои программы на других людей, то вы можете включить их с ними. Пользователь с другом Spectrum или диск может затем загрузить соответствующий времени выполнения Водитель после программы загружена так, что он будет работать с этой системой. Обратите внимание, что это единственные файлы на лента, которая может быть распределена для других людей; копирование любых других файлов для использования кем-либо другим является нарушение авторского права и является незаконным.

    ИМЯ: СТАРТ M2 ЛЕНТА к звездам VILDATA RTAPE к

                                      OPUS2 ROPUS + 2

    ПОЛОЖЕНИЕ: 46208 46208 48539 49152 49152 48539

    Длина: 19109 1148 4900 6364 613

Когда компилятор находится в памяти, его можно назвать по RANDOMIZE USR 55000

Примечания для конкретных версий компилятора.

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

48k версия ленты: Эта версия программы отправляет сообщения на принтер, чтобы указать, когда файл должен быть загружен из кассеты. Если у вас есть драйвер принтера, но не подключен принтер, то это будет означать, что компилятор появится запереть, как он пытается отправить данные на принтер.

128k лента версия: Программа не отправлять сообщения на принтер, и если файл загружается с ленты во время компиляции то это, вероятно, написать на экране, тем самым развращает таблицу символов. Поэтому необходимо, чтобы загрузить все Модули, которые потребуются от ленты, и хранить их в ramdisc перед компиляцией.

+3 Версия:

Для загрузки с ленты на установку компилятора вам нужно будет ввести НАГРУЗКИ “T:” до LOAD “”.

Wafadrive версия: После компиляции компилятор выполняет новую команду, и, таким образом, операционная система привода будет должны быть заново инициализирован с использованием новых *.

128K Beta Disc версия: Обратите внимание, что в то время как имена файлов имеют до 10 символов в ramdisc, они ограничены 8 символами для Дисковая система. Это не должно, как правило, вызывают проблемы, но иногда это может привести к путанице.

128k Ученик / + D версия: Операционная диск система не делает различий между нижним и верхним регистром в именах файлов в то время как ramdisc же отличить. Опять же, это не должно быть проблемой, но может привести к путанице.

Использование демонстрационных программ

Каждый из демонстрационных программ может быть составлен путем загрузки его в компилятор и нажав X.

Обратите внимание, что необходимые библиотечные модули должны были переданы вы едете заранее. После составление программы могут работать, введя RANDOMIZE USR 48500.

о Часы:

При выполнении этой программы пользователю будет предложено ввести дату и время, например, 15/6/91 и 17:10:30

(Хотя сепараторы являются необязательными, так что это может быть введена 15 6 91 и 17 10 30). Аналоговые часы является то отображается на экране, с датой под ним. Нажатие РЕД выходит из программы.

о Starbase:

Эта программа представляет собой базу данных работают с данными о характеристиках 158 ярких звезд. Данные

включены является греческая буква и constallation, собственное имя звезды, величина (т.е. яркости), Прямое восхождение (RA) и Склонение (декабрь), которые указывают на положение звезды, и тип Спектральный который связан с цветом звезды. Когда вы запустите эту программу и получить главное меню вы должны нажмите 1, чтобы загрузить данные с диска. Нажатие 2 позволяет искать в базе данных для звезд с определенными характеристики. Они должны быть введены в соответствующие поля формы, которая появляется на Экран. Любое из полей может быть пустым. Поля Имя Имя созвездие и надлежащие будет соответствовать любые слова, начинающиеся с букв. Остальные поля позволяют диапазон, который необходимо ввести. Если второе значение оставить пустым только точные совпадения с первым значение будет найдено. Когда все поля были рассмотрены, Программа будет искать подходящих звезд, и дать второе меню. Нажатие 1 приведены данные для каждого из Звезды, в свою очередь. Когда эти данные на экране он может быть изменен путем нажатия редактирования или удалены из базы данных нажав Delete. Выбор 2 из меню перечислены данные с 1 линии на экране для каждой звезды, в сформировать, только с часов или градусов части РА и декабре учитывая. Выбор 3 приведены данные на принтер (Т.е. # 3) вместо. Другие варианты сортировки данных по одному из полей. (Это влияет только на порядок, в котором Выбор звезд показан, не порядок самой базы данных.) Выбор 0 возвращается в главное меню.

Выбор варианта 3 из главного меню позволяет добавлять звезды в базу данных. В этом случае все

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

Обратите внимание, что только греческие буквы Разрешены: альфа, бета, гамма, дельта, эпсилон, дзета, ETA,

THETA, каппа, LAMBDA и OMICRON. Они могут быть либо введены как полное имя, или первую букву (‘H’ для ETA). РА и декабре должен быть введен как часы, минуты, секунды и градусах, минутах, секундах; например 12h25m30s и -55d13m2s (хотя снова сепараторы являются обязательными).

о маршруте:

Эта программа определяет кратчайший маршрут из одного места в другое, основанную на сети большой

Города, данные в файл данных VILDATA. Он просит, начиная город с последующим назначения. Когда Место просил, либо название места или его номер в списке может быть введен, или ENTER может быть прессуют в список мест, с одной выделенной. Вы можете перемещаться по этому списку с помощью стрелки ключи или набрав номер в городе. Нажатие кнопки [S] M будет двигаться вниз по экрану и нажатием [S] N будет двигаться вверх Экран. Нажатие ENTER будет выбрать выделенную папку из списка.

Программа дает кратчайший маршрут, как список городов путешествовали через, и указывает расстояние

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

Хотя практическое использование программы ограничена тем фактом, что маршрут должен идти из города в

город, он демонстрирует полезный алгоритм. Программа для ввода собственную сеть доступна в Мире Составление дополнительных программ.

[S] = СИМВОЛ SHIFT, [E] – расширенный режим, [G] – графический режим

о Symdes:

Эта программа позволяет проектировать символы до 16 по 24 пикселей. Она может быть использована для разработки

Коллекция символов для загрузки в массив для использования модуля СИМВОЛ. Когда программа начала вам нужно ввести ширину (8 или 16) и высоту (от 1 до 24) из символов в пикселях. Вы можете затем введите имя файла ранее разработанных символов. Вам будет предложено ввести номер Символы загружены (программа работала на это, если это возможно). Если вы не загружаете файл, то вам следует просто нажать ENTER на обеих подсказок. Вам будет дано варианты, где можно получить символ из. Первый из ранее сохраненного экрана для загрузки с диска 1 или ramdisc. Вы можете перемещать выделенный площадь около экране с помощью клавиш со стрелками, с символом, показанным увеличивается на другой стороне Экран, затем нажмите ENTER выбирает символ. Второй вариант, это выбрать символ, который уже в списке, введя его номер. Перечень условных обозначений затем отображаются в верхней части экрана, с выбрана один выделенный, и показано увеличенное на правой части экрана. Вы можете пролистать список с помощью стрелки и нажмите клавишу ВВОД, чтобы выбрать символ. Третий вариант, это ввести адрес в памяти, чтобы получить символ из. Символ может быть получена таким же образом, как и во втором варианте. Четвертый опция для запуска символ с нуля.

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

в левом верхнем углу экрана, с его увеличенном виде справа. Во-вторых, вспомогательный символ Показано также, и используется в некоторых манипуляций основного символа. Символ манипулируют с помощью следующих клавиш. 0 Комплект пикселей ПРОСТРАНСТВО Ясно пикселей [E] D Перетащите текущий пиксель с курсором (переключатель) Клавиши со стрелками Перемещение курсора [G] клавиши со стрелками Сдвиг строки или столбца [E] клавиши со стрелками указан направление – Вырезать строки + Paste ряд / Вырезать колонка * раздел Paste [S] Q Увеличить верхний левый [S] R Повернуть символ [S] N, [S] М символ Флип по вертикали / горизонтали SL нагрузки вторых символ [S] 2 своп 2 символов [S] 2 Показать увеличенное вторых символ (переключение) [S] U, [S] Y или [S] X AND, OR, XOR с второй символ [E] [S] 0 Отменить последний AND, OR или XOR.

Инв VID Обратить символ EDIT Движение демо. (Нажмите EDIT, чтобы остановить) ENTER Поместите символ в списке

После нажатия ENTER, вам будет предложено ввести положение символа в списке.

Обычно это будет после того, как ранее разработанной символа. Программа вернется на варианты получение символ для изменения. Существует вариант EXIT в этом списке, и, когда это будет выбран, вам будет предложено ввести имя файла, в котором можно сохранить символы, которые Вы разработали, после чего программа закончим. (При нажатии на ENTER выход из программы без сохранения).

[S] = СИМВОЛ SHIFT, [E] – расширенный режим, [G] – графический режим

MIRA ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

МОДУЛА-2 COMPILER

Для ZX Spectrum

 (С) Мира Software 1991

0: Содержание .. 1

1: Используя редактор и компилятор 2 2: короткое Modula-2 учебник 6 Введение 6 Назначение и типы данных 8 Библиотеки процедур 10 Управляющие структуры 11 Написание ваших собственных процедур 14 Планирование ваши программы 16 Массивы и Типы диапазонов 17 Записи и заявление с 19 Перечисленные виды и варианты записи 20 Типы наборов 21 Типы указателей и рекурсии 22 Модули и процедурные типы 23 Параллельное программирование 25 3: Краткая информация об осуществлении 28 Компилятора Директивы и как работает компилятор 30 4: Сообщения об ошибках 32 5: Библиотека модулей 34 STDIO – Стандартный ввод и вывод 35 ПРИВОДЫ – Загрузка, сохранение и т.д. 37 FASTO – Быстрый выход экрана 39 MAINREAD – вход от верхней экране 39 Струны – строка символов манипуляции 41 PLUS3IO – Файлы на +3 42 ДАННЫЕ – Поиск и сортировка 43 HARDWARE 44 ОСНОВНЫЕ 45 ОШИБКИ 46 SETOPS – Набор операторов для больших наборов 46 ХРАНЕНИЕ – выделение для переменных-указателей 47

1

GRAPH0 48

GRAPH1 – Линия рисунок 48 GRAPH2 – Круги и эллипсы 49 GRAPH3 – Дуги 49 CLIPPING 50 FILL – заполнение контура 50 СИМВОЛ – Sprite-как символы 51 NUMIO – Простой цифровой ввод-вывода 52 R2IO \ 53 R3IO | – Вход и выход для вещественных чисел 53 R5IO / 53 R2MATH \ 54 R3MATH | – математические функции 54 R5MATH / 55 6: Общая информация 56

1: с помощью компилятора

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

Инструкции на листе по установке, чтобы загрузить компилятор и к передавать любые модули, которые требуются от ленты ездить. Ты будешь приходим к запросу “введите название программы”. Если вы хотите загрузить Модуль на данном этапе, то введите его имя, в противном случае нажмите вниз Основные (CAPS SHIFT и 6). Сообщение «STOP на входе” появится и компилятор будет находиться в режиме ключа управления; то есть при нажатии клавиш будет выполнять заданные действия.

Ввод линии

Нажатие ENTER поставит компилятор в режиме ввода строки, которые позволяет вводить в программу в виде серии линий. Программа котируются на экране, как линии будут введены, с курсором (Мигает ‘>’) маркировка текущую строку. Следует отметить, что Модуле-2 не является язык, основанный линия, так что концы линий не обязательно отдельные заявления. Линии, состоящие из каких-либо символов не будет вошел, так, чтобы получить пустую строку следует ввести строку состоящий из пространства. Для того, чтобы оставить режим ввода линии и пойти в Режим управления ключом вы должны нажать клавишу вниз.

КЛЮЧИ КОНТРОЛЯ

Курсор можно перемещать вверх или вниз линии, нажав вверх или вниз, (CAPS SHIFT и 7 или CAPS SHIFT и 6). Нажатие 7 или 6 переместит курсор вверх или вниз восьми линий одновременно. СИМВОЛ

2

SHIFT и 7 переместит курсор в начало программы и

СИМВОЛ SHIFT и 6 будут двигаться его до конца. Текущая строка может быть редактировать, нажав 1 или отредактировать. Нажатие E позволяет вступление линии перед текущей строки. (Ввод режима ввода строки, нажав ENTER будет добавлять строки после текущей строки). Нажатие H дает список контроля клавиш и их функций на экране.

Перемещение блоков строк

Вполне возможно, чтобы переместить блок строк в рамках программы. Чтобы сделать это вы должны переместить курсор в начало блока и пресс-B чтобы отметить его, затем переместите курсор в конец блока, и нажмите K для хранения блока (Cut). Блок может быть позже восстановлена ​​в Положение курсора, нажав P (Paste). При повторном нажатии P будет Затем производят дополнительные экземпляры блока, который был сохранен. Заметка что то, что находится в буфер обмена могут быть удалены по какой-то дисков операции. Блок линий, могут быть удалены, пометив его как указано выше и нажатие CAPS SHIFT и 0 (DELETE). Нажатие V перечислит выделенный блок в эксплуатацию 3 (то есть принтер). Если нет блок не отмечен, то Вся программа будет напечатана.

Удаление всей программы

Следует отметить, что вся программа может быть удалена путем нажатия СИМВОЛ SHIFT и 7, B, SYMBOL SHIFT и 6, то CAPS SHIFT & 0.

Байт параметры

Нажатие письмо O позволяет вводить числа, которое является Варианты байт. Это указывает, что должен быть использован для хранения и Загрузка программ. 0 представляет хранения ленты, 13 представляет ramdisc и числа от них дать соответствующий диск.

15 указывает, что загрузка будет первым попробовать ramdisc, затем проехать 1, и экономия будет как диск 1 и ramdisc. В ленточных только версии Привод 1 относится к ленте, но с сообщения, отправленные на принтер указывает, какие действия требуется. Добавление 16 к Number Определяет что строки (CHR $ (10)) должен быть добавлен к концу линии, когда сохранить в файле или распечатать. Это позволит Microdrive файлы быть отредактировал текстовых процессоров, таких как Tasword 3. (когда файл загружен в компилятор любая линия питает удаляются). Добавление 32 к число задает компилятор для поиска ошибок в программе а не производить какой-либо код. (Раздел 4). Добавление 64 инструктирует компилятор сохранять скомпилированный код и таблицу символов в конце компиляции. Код сохраняется с названием программы предшествовать ‘#’, на диск, указанного байта опций. (Увидеть Раздел 3 для получения более подробной информации).

3

Сохранение и загрузка программ

Для сохранения программы необходимо нажать S и дать имя Программа по мере необходимости. Просто нажмите ENTER будет использовать имя приведены в разделе модуля или скопировать, если имя не найдено (? ИСТОЧНИК для Wafadrive). Если программа уже существует на диск, то вам будет предложено подтвердить, что это должно быть перезаписаны.

Чтобы загрузить программу, нажмите L и дать имя программы (Нажимая клавишу ВВОД даст каталог диска или загрузите следующий Программа если лента используется). Если это будет сделано с помощью программы уже присутствует, то новая программа будут объединены в старой на Положение курсора. Если вы не хотите, чтобы программы, чтобы быть слитых затем нажмите SYMBOL SHIFT & L вместо. Это приведет к тому, старая программа, чтобы спастись, а затем удаляется из памяти, прежде чем новый загружен. (Примечание 1: Старая программа сохраняется только, если он имеет был изменен, так как он был загружен. Сохраняется в ramdisc если имеется, в противном случае ездить 1 – это независимо от байта опций. Это не сохраняются в ленте только версии.)

Программы хранятся в следующих способов:

Ramdisc Basic-типа программы Ученик код Лента Basic-типа программы Microdrive Файл Бета Basic-типа программы Opus файла Wafadrive Программа Basic типа Plus 3 код

Выход из компилятора

Нажатие кнопки STOP (СИМВОЛ SHIFT & A) спасет тока Программа, как и в примечании 1, затем выполнить новую команду, что позволяет вернуться к Basic. Компилятор все равно будет в памяти, и может быть вновь вошел по адресу, указанному на установочном листе.

Поиск слов

Нажатие F позволяет ввести слово можно найти в Программа. Это всегда начинает искать с начала Программа. Нажатие N поиск следующего вхождения слова. Если слово найдено, то он помечается миганием ‘?’.

Компиляция программы

Когда программа была введена в компилятор может быть составлен с помощью клавиши X. Другие модули будут загружены из ramdisc или ездить 1 при необходимости. (В настоящее время программа будет

4

сохраняется как в примечании 1.) Составление происходит в несколько проходов

программы, а иногда и тот же модуль необходимо будет загружен более чем один раз.

Если ошибка в программе Modula-2 обнаружен в ходе сборник сообщение об ошибке будет отображаться с миганием “? на Положение в программе, где была обнаружена ошибка, и курсор на строку, содержащую его, готов к очереди, чтобы быть отредактированы и ошибка исправлена.

В то время как компиляция идет таблица идентификатора Имена и т.д., будут сохранены в памяти экрана, в результате чего случайным образом появляясь на экране. (Вот почему сообщения должны быть отправлены принтер в ленте-единственный вариант.) Когда компиляция был успешно завершила слова CLEAR, и сохранить следуют номера будут печататься на экране. Нажатие на любую клавишу выполнить новую команду, с скомпилированного кода хранимой выше RAMTOP. Компилятор все равно будет в памяти, и может быть повторно войти через точку входа, приведенная на установочном листе. Скомпилированная программа может быть запущена с помощью RANDOMIZE USR 48500. Это может быть в пределах базовой программы, если требуется. Если ошибки происходит в управлении программы Modula-2, то об ошибке будет отображаться сообщение. Если ошибка в процедуре ROM то это вызовет выход из программы и нормального спектра Сообщение об ошибке будет дано с числом Основного линии, называется код Modula-2. Если он находится в Modula-2 во время выполнения Процедуры, то соответствующее сообщение об ошибке дается, и пользователь будет предоставлена ​​возможность продолжить программу. Тем не менее, делать так хорошо может привести к аварии, поэтому рекомендуется для выхода на этот точка, когда сообщение об ошибке “ворваться в программе” будет дано. Положение ошибки в коде Modula-2 можно найти, возвращаясь к компилятором, выбрав опцию 32 и нажав X.

Начало скомпилированного кода задается числом следующей SAVE, а конец находится на 49152. Это код, который будет сохранен используя опцию 64. На перезагрузки вы должны сначала установить RAMTOP по очистка от количества следующих ясно (меньше, если динамических переменных используются, как описано ниже.)

5

2: короткое Modula-2 учебника В этом разделе подразумевается, чтобы помочь вам в том, как программировать с помощью компилятора. Некоторые предыдущий опыт программирования было бы полезно. Она не предназначена в качестве программирования конечно, для которые вы должны выбрать книгу на свой вкус. Модули Терминал, InOut, RealInOut, MathLib0, LineDrawing и процессы включены с этим компилятором для совместимости с учебниками по Модула-2. Тем не менее, рекомендуется использовать модули описано в разделе 5, а как только вы понимаете, как это сделать так.

Обратите внимание, что очень немногие примеры приведены здесь, и это Рекомендуется, чтобы, когда ключевое слово дано в тексте, вы должны найти его в примерных программ (с помощью клавиши F), чтобы увидеть, как она есть используемый. Примерные программы ЧАСЫ, ROUTE, Starbase, и SYMDES, с вспомогательными модулями СЕЛ и RADECSTG. Ты смогут загрузить все эти в ramdisc если у вас есть Спектр с 128К.

Введение

Если вы запрограммировали в Basic вы поймете, что цифры и символьные строки два различных типа данных, и операции которые относятся к одной, не применяются к другой; например Вы не можете добавить число в строку. В других языках, таких как Pascal эта идея имеющие различные типы данных принимается далее с того числа разделены в тип INTEGER целых чисел, а реальный тип чисел, которые могут иметь дробную часть. Тип CHAR состоит из символов, и логического типа имеет значения True и ЛОЖЬ. Модула-2 также имеет тип кардинал положительным целые числа, и несколько других типов определяется. Так же как и эти вы увидите позже, что вы можете определить новые типы данных. Все это означает, что это жизненно важно для программисту знать о типе каждый элемент данных, используемых в программе. Это строгость языка делает это тяжелее, чтобы узнать, чем язык, таких как Basic, но средства что программы могут быть сделаны более надежным и эффективным.

Обратите внимание, что в отличие от многих других языках, в Modula-2 капитала и строчные буквы считаются разными, так что, когда переменная или другой идентификатор используется, он должен соответствовать его декларации точно. Все Модула-2 ключевые слова должны быть в столицах. В этой реализации имена процедур из модулей библиотеки также в капиталы.

Ниже приведен пример программы для вас рассмотреть.

6 МОДУЛЬ addup; VAR, б, сумма: КАРДИНАЛ НАЧАТЬ WriteLn (‘Введите первое число’); ReadLn (а); WriteLn (‘Введите второе число’); ReadLn (б); Сумма: = A + B; WriteLn (‘сумма’, сумма) END addup.

Из этого вы можете видеть, как программа Modula-2 вместе взятые.

Она начинается со слова МОДУЛЬ последующим именем Программа и точка с запятой. Тогда приходят разделы заявив, что это будет использоваться в программе, каждая из которых заканчивается точкой с запятой. В этот случай существует только один такой участок, начиная с указанием VAR что переменные объявляются, их имена, будучи, б и сумма и все они типа кардинал. НАЧАТЬ указывает, что Заявления закончены и это знаменует начало заявлениях что будет сделано в рамках программы. Эти заявления через точку с запятой. Конец программы обозначается Слово END следует имя модуля и полной остановки.

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

Вы, наверное, знаете, что переменная является местом для хранения данных, но тип КАРДИНАЛ может быть вам незнакомы. Этот тип состоит из положительных целых чисел. Таким образом, переменная заявлении указывается, что переменные, б и сумма может только магазин такие значения.

Процедура WRITELN печатает предметы на линии на экране.

Кавычки указывают строки текста, так что все, что находится внутри им печатается как написано. Второй пункт в последнем WriteLn утверждение не в кавычках, и так не печатается как слово сумма, но в качестве значения, хранящегося в переменной называется сумма. Процедура ReadLn получает значение введенный в на клавиатуру, и ставит это в в указанной переменной. В заявлении сумма: = А + В, добавляет вместе значения в переменных а и б и помещает результат в Переменная сумма. Так данная программа предлагает пользователю ввести два значения с клавиатуры, а затем складывает их и выводит Результат.

Теперь, что работа этой программы была описана, вам

7

должны ввести его в для себя, но, не смотря на это в руководстве.

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

Таким образом, форма программы Modula-2 заключается в следующем; МОДУЛЬ mname; деклараций; НАЧАТЬ заявления; END mname.

(Примечание: Здесь и в следующем определения частей Modula-2 Программы, слова жирным шрифтом являются Модулы-2 ключевые слова; т.е. они на самом деле набрали в программе. Другие слова описания того, что происходит в заданном положении.) Программа начинает работать после того, как ключевое слово НАЧАТЬ, и выполняет операторы в порядке поступления – достаточно очевидно, но на удивление часто забывают. Когда вы пишете программу это полезно для вас, чтобы быть в состоянии представить себе, что вы находитесь на компьютере, и работать через то, что программа делает вручную.

Назначение, простые типы данных и операторы

В заявлении сумма: = А + В в предыдущем примере, называется Назначение заявление. В целом это будет иметь вид: Переменная: = выражение и будет работать выражение справа от: = и положил его в переменной слева. Выражение и переменная должна быть того же типа, или же их типы должны быть совместимыми.

Правила, когда два различных типа совместимы приведены в Соответствующие места в этом руководстве. Следует отметить, что любая переменная используется в Modula-2 программа должна быть объявлена ​​после ключевого слова VAR, в Заявления часть программы.

VAR variable1, variable2, … Тип; Имена переменных должны начинаться с буквы, за которым может последовать дальнейшими букв и цифр. Пробелы и символы не могут быть частью имена переменных.

Теперь мы более внимательно взглянуть на некоторые из типов данных Modula-2 и операции, которые применяются к ним.

INTEGER, включает в себя положительные и отрицательные целые числа (в пределах пределы -32768 до 32767); например 10, -1234, 30000.

операторы +, -, *, DIV и MOD, относятся к номерам число. Ты наверное, знаете, что * означает умножение. Для двух целых чисел р

8

и д, р DIV д является целая часть р разделенной на д и р MOD

д является остатком.

КАРДИНАЛ включает положительные целые числа в диапазоне от 0 до 65535; например 23, 49152. CARDINAL константы также можно записать в виде шестнадцатеричные числа с последующим H или в качестве восьмеричных следуют по B; например 36B, 0C000H. Все номера должны начинаться с цифры, так ведущий ноль могут быть необходимы для шестнадцатеричного представления. Операторы +, -, *, DIV и MOD применимы к Количественные числительные.

РЕАЛЬНЫЙ включает в себя номера, которые могут иметь дробную часть. РЕАЛЬНЫЙ константы, поставленные в программе должны быть десятичную точку и по меньшей мере одна цифра на каждой стороне от нее. Они также могут иметь букву E с последующим числом, указывает умножение на степени 10;  например -3,14159, 1.23E6, -2.0E-7. Вещественные числа хранятся в 5 байты с показателем 1 байт и 4 байта мантиссы. Операции на них есть те, из ПЗУ Spectrum. Этот компилятор также реализует номера с показателем 1 байт и 1 и 2 байта mantissae называется REAL2 и REAL3 соответственно. Это не так точны, как действительных чисел, но дать гораздо быстрее расчеты.

Учитывать, что реальные также можно назвать REAL5. Операторы +, -, *, / распространяется на номера всех трех вещественных типов (/ представляет деление). Различные числовые типы не могут быть смешаны в выражении. Для Например, если п является переменной INTEGER и х и у РЕАЛ Переменные то утверждение у: = п * х не допускается. Функции при условии, для преобразования чисел в заданном числового типа с любой другой числовой тип. Они называются INT, CARD, RL5, RL3 и RL2 соответственно. Таким образом, выше заявление должно быть у: = RL5 (п) * х. Эти функции являются единственным способом положить константы типа REAL2 или REAL3 в программе; например RL3 (3,1416), RL2 (60).

Тип CHAR включает письма и остальную часть спектра набор символов. (Обратите внимание, что переменные типа CHAR может храниться только один символ. Вы увидите, как бороться с строк символов позднее). Константы типа CHAR состоят из символа в один или двойные кавычки. Они также могут быть предоставлены в качестве ASCII код характер в восьмеричном следует буква C или в шестнадцатеричном следует буква I. Функция CHR используется для преобразования КАРДИНАЛ выражение в соответствующем символа в ASCII Последовательность. Функция ORD делает обратное, давая ASCII Код, типа КАРДИНАЛ, для значения типа CHAR. Следующие Выражения все представляют то же значение типа CHAR: ‘A’, “A”, CHR (65), 41i, 101С.

Выражения указанных типов можно сравнить с использованием Операторы отношения, которые:<,>,<=,>=, =,<>. Результат

9

из этих сравнений является значение типа Boolean. Этот тип имеет только два значения, истинных и ложных. Логических выражений найти их Основное применение в управляющих структурах, таких как IF заявления, которые мы будем прийти позже. Тем не менее, так же, как с любым другим типом, то можно объявлять переменные логического типа, и назначить логических выражений к ним. Операторы whcih относятся к логических выражений являются AND, OR и NOT. Обычно правильное использование этих Операторы очевидно из того, что будет сказано по-английски, но иногда некоторые мысли необходим. В то время как в английском языке вы могли бы сказать “Если переменная х не равен 1 или 2”, соответствующая Modula-2 выражение не будет х<>(1 или 2), ни (Х<>1) или (х<>2). Это на самом деле должно быть (х<>1) И (х<>2).

Выражение НЕ ((х = 1) или (х = 2)) также было бы правильно.

Типы КАРДИНАЛ, число, CHAR и логические являются известный как порядковых типов. Порядковый тип состоит из последовательности значения, так что, учитывая значение этого типа можно сказать, что следующее один (если значение не является последним в последовательности). Например 3 следуют 4, ‘K’ следует ‘L’.

Процедуры INC и декабрь обратиться в порядковых переменных, чтобы дать на следующий или предыдущее значение. Например, если х является переменной КАРДИНАЛ то INC (х) делает то же самое, как х: = х + 1. Функции MAX и MIN дать максимальные и минимальные значения порядковой типа; например MAX (CHAR) является CHR (255). Обратите внимание, что реальные типы не порядковый типы, так как, например, это не представляется возможным сказать, что следующий Действительное число после 1,6 является.

Можно давать имена констант, используя CONST Декларация, в декларациях рамках программы; например ФИКС пи = 3,1415; SIXTY = RL3 (60); maxcount = 100; Предоставление постоянные имена полезно для создания ваших программ более читаемым и проще в обслуживании. Это может также означать, что меньше, память используется, как значение необходимо только, чтобы хранить один раз.

Библиотеки процедур

В приведенном выше примере вы увидели использование встроенного Процедуры ReadLn и WRITELN. На самом деле это означало немного обман как эти процедуры на самом деле не принадлежат к Modula-2, но упрощенные формы процедур Паскаля, и реализуются в это компилятор, чтобы дать вам простой способ ввода и вывода.

Идея Modula-2 не иметь много процедур, встроенный в компилятор себя, но, чтобы иметь возможность получить их из библиотеки отдельно

10

Модули. Установка нем рассказывается как перевести эти

Модули с кассеты на диск.

Чтобы иметь возможность использовать процедуру из модуля библиотеки, это должно быть объявлены в списке импорта выглядит следующим образом: С модулем ИМПОРТ процедуры1, procedure2 …; (Примечание:. В 3 точки … означает, что список элементов может появиться в вашей программе Это указал отличить его от маркера, состоящей из 2 точек .. который является частью Modula-2 языка.) Импорт списков должны быть расположены в вашей программе, после Модуль заголовок, и перед объявлениями.

Процедура называется просто поставив его имя в ваш Программа. Большинство процедуры требуют параметров, то есть элементы данных действовать в соответствии с. Они должны быть приведены в скобках после процедуры Имя. Например, процедура SetAttrs из модуля GRAPH0 используется для установки ряд атрибутов квадратов на Экран для данного атрибута. Это требует хну положение первый квадрат атрибут должен быть установлен, количество квадратов, чтобы установить, и Атрибут они должны быть установлены в. Параметры должны быть в Порядок указано. Так SetAttrs (0,10,128,32) будет установлен средний 4 линии экрана, чтобы быть зеленой бумаги с черными чернилами. Где-то еще в вашей программе вы можете очистить экран графики используя процедуру GCLS, из того же модуля. Это процедура, которая не требует параметров, так заявление назвав его бы просто слово GCLS, без скобок следующих его.

Обратите внимание, что для использования этих двух процедур в программе список импорта: С GRAPH0 ИМПОРТ SetAttrs, GCLS; придется появиться в начале вашей программы.

Функция является своего рода процедуры, которые не используются в качестве Заявление само по себе, но чтобы вернуть значение как часть выражения. Примеры функций SIN и COS от модуля R5MATH.

Процедуры, доступных из каждого модуля, а число и типы параметров, которые каждый требует, можно видеть из Определение частью модуля. Они приведены в разделе 5 настоящего Руководство. Более подробная информация о то, что означают эти процедуры рубрики приведены в разделе о написании собственных процедур.

СИСТЕМА модуль встроен в компилятор, вместо того, загружались, и касается некоторых зависимых от системы объектов.

Управляющие структуры

Первая структура управления мы имеем дело с уже знакомы Basic программисты, это утверждение IF.

Если условие THEN заявления END Вот высказывания следующие ТО выполняются только, если условие истинно. Условие должно быть логическое выражение.

11

В заявлении ЕСЛИ написано на одной линии здесь, но, как правило,

заявления в заявлении ПЧ будет написано на отдельной строке.

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

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

ЕСЛИ заявления может также содержать ELSE.

Если условие THEN Заявления ELSE Заявления END Если условие истинно, то заявления следующее ТО выполнены, если нет, то заявления, последовавшие за ELSE являются выполнена. Обратите внимание, что при ЕСЛИ является вложенной, тот факт, что каждый должен иметь конец означает, что нет никакой двусмысленности какой еще может принадлежать.

Иногда бывает полезно, чтобы иметь возможность выбрать из нескольких различных альтернативы. Чтобы избежать необходимости иметь более одного ЕСЛИ заявления, ELSIF можно использовать.

Если условие THEN отчетности ELSIF состояние ТОГДА отчетность ELSIF состояние ТОГДА отчетность , , ELSE отчетность КОНЕЦ Программа проходит в условиях, пока не найден что верно, то соответствующие инструкции выполняются.

Ни один из других заявлений не исполняются, даже если поздно условия Также TRUE. Если все условия ложны, то заявления после ELSE выполняются (если ELSE часть присутствует).

Часто выбор различных вариантов зависит от Значение порядкового выражения. Вместо того, чтобы иметь IF & ELSIF Заявление с тем же выражением в каждом сравнению случае Заявление доступно.

ДЕЛО выражение const1: Заявления | const2: Заявления | , , constn: Заявления ELSE отчетность КОНЕЦ

12

(| Символ, который разделяет случаи получается

смещается S в расширенном режиме на Spectrum.) Вот инструкции выполняются, которые следуют постоянная равно значению выражения. Если ни один из них не то заявления после ELSE выполняются (если имеется). Вместо только один постоянный в начале, дело может иметь диапазон consta..constb или список констант (или диапазонов), разделенных запятые. Соответствующие заявления будут выполнены, если выражение равно любой из констант в списке или в Диапазон.

Приведенные выше утверждения решения, выбирая между несколькими альтернативные действия. Еще один важный аспект программирования повторяющиеся действия. В Modula-2 заявления, связанные с этим являются в ДЛЯ, в то время, повторить и LOOP заявления.

В заявлении ДЛЯ будут знакомы Basic программистов, но нет следующий оператор, конец повторного части бытия отмечены END.

ДЛЯ переменной: = expression1 Выражению2 DO операторов все Первое выражение будет присвоен переменной, а затем заявления выполняется один раз для каждого значения до второго выражение. Если второе выражение меньше, чем первый, то заявления не будут выполнены. Типы выражений должны быть совместима с переменной, которая должна быть порядковым введите. ДЛЯ заявлении может иметь постоянное значение шага после Слово за.

ДЛЯ переменной: = Выражение1 Выражению2 ПО ConstExpr DO Заявления END ПОВТОР цикл выглядит следующим образом: REPEAT отчетность до состояния Это должно быть довольно ясно; заявления являются неоднократно выполняется, пока условие не выполнено. Следует отметить, что условие проверяется в конце заявления, так они будут выполнены в хотя бы один раз. В качестве альтернативы, с помощью это время оператор, условие проверяется в начале.

ПОКА условие DO операторов все Здесь условие проверяется и, если оно выполнено, то инструкции выполняются. Это повторяется, пока условие не является удовлетворены.

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

13

Вообще конструкция не требуется. Это LOOP заявление

LOOP Заявления END Как она стоит, это будет бесконечный цикл, и заявления будут повторяться бесконечно. Программист должен поставить в явном виде где выход из цикла требуется, с помощью EXIT о который является только слово EXIT. Как правило, это будет в заявлении ПЧ, позволяя условный выход из цикла.

Вы уже видели оператор присваивания, вызовы процедур, и ЕСЛИ, CASE, FOR, ПОВТОР, ПОКА, LOOP и EXIT Заявления. Это все заявления Modula-2, за исключением два (С и вернуться заявления).

Обратите внимание, что нет GOTO заявление в Modula-2.

назад прыжки GOTO означает какую-то петлю, и вперед GOTO используется либо выскочить из петли или пропустить заявления в зависимости от заданных условий. Modula-2 имеет управляющие структуры, чтобы общаться с каждым из этих случаев так GOTO не требуется.

Написание ваших собственных процедур

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

Название процедуры; объявления НАЧАТЬ Заявления END; Определение процедура проходит в разделе объявлений Программа. Процедура называется просто поставив его имя в качестве Заявление в вашей программе.

Раздел объявление процедуры могут содержать VAR и КОНСТАНТА декларации. Это то местные в порядке; т.е.

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

Вызов процедуры является как GOSUB в Basic, поскольку положение в программа, когда запоминается, для возобновления когда Процедура заканчивается. Не делайте ошибку, думая о вызов процедуры как GOTO начало процедура.

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

Название ПОРЯДОК (парам, имя типа; …);

14

Параметры, объявленные здесь называются формальные параметры и

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

Имя (выражение …); Эти значения называются фактические параметры. Следует отметить, что для каждого формальный параметр, там должен быть соответствующий фактический параметр из совместимого типа. Фактические параметры могут быть константами, переменные или выражения, которые будут разработаны, чтобы найти значение прошло. Этот тип параметра называется параметром значение, как Единственная информация передается в порядке, это значение выражение. Существует еще один вид параметра, когда фактическая параметр должен быть переменной. Это называется переменным параметром и указывается, поставив VAR ключевое слово, прежде чем формальное Параметр.

Название ПОРЯДОК (VAR парам, имя типа; …); В рамках процедуры формальный параметр представляет Переменная передается в качестве фактического параметра. В частности, если формальная параметр имеет значение, присвоенное ему, то это будет на самом деле быть назначены с фактическим параметром. Это означает, что переменные параметры могут использовать для возврата значения из процедуры. Тип фактическая

Будьте осторожны, чтобы

Модуль.

функция.

практика.

То

В качестве альтернативы,

Программа.

Какой вам

Одним из них является

взять.

Тип:

Название

Это также помогает

используемый.

это может быть

Время.

например

например

Дальше

В

Учтите, что

Для

Чтобы избежать

доступны.

Например,

треугольник.

другие виды.

Вы можете

Имена.

Функция

Другой

например

Дать

КОНЕЦ

Это

После того, как

множества.

соответственно.

другой.

выражения.

Такие данные

указано.

гибкость.

Это может

например

Определения

часть.

А также

Список. ,

импортируется.

здесь.

Не рекомендуется, что

нормальный путь.

Дело

другой.

прогресс.

процессы.

Как

Тем не менее, это

прерывает.

Хранение

множество.

Главная

Это

Тем не менее, если

Используя это

требуется.

заботиться;

быстрее.

и

Иногда

В

каждого элемента.

(*

*)

и выход.

35

Время.

Строка.

очистить экран.

WaitKey

Это устанавливается

вход;

например

то есть

До

файлы.

Ты

(*

*)

Экран.

Если вас

Если это

Положение.

Если

программы.

персонажи.

Это

оставил.

Процедура

происходят.

Это может быть

Заметка

Для этого

например

Тем не менее,

Это

непосредственно.

После

Если

\ | /

                                                         

(*

*)

Функция

прямоугольник.

и

Учтите, что

Экран.

Они

Это

Процедура

Превращение

Например

есть.

(*

*)

(*

*)

Если вас

Попробуйте

Есть не

Играйте в Mira Modula-2 без эмуляторов прямо на сайте. Эта приложение для программирования, опубликованное в Великобритании в 1991 году творческой группой Mira Software, которое написал неизвестный автор.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

avatar
  Subscribe  
Уведомлять об
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close