|
Вы - капитан корабля, следующего на остров, расположенный в Саргассовом море. Ваш помощник, второй участник игры, составляет карту пути. Прокладку курса советуем выполнять на миллиметровке. Главная опасность на пути - круглые плавучие острова водорослей, попасть в которые значит повредить винт. Порт назначения расположен в точке с координатами (0,0). Последняя воздушная разведка показала, что вокруг него имеется свободная от водорослей акватория диаметром 6 миль. Известно также, что плавучих островов всего три, каждый диаметром 18 миль. Где они в настоящий момент - неизвестно, однако компьютерная модель состояния моря показала, что центр каждого острова расположен не ближе, чем в 12 милях от точки (0,0). Не исключено, что плавучие острова частично накладываются друг на друга, образуя особо опасные зоны.
|
Ваш помощник незаметно для Вас вводит координаты центров плавучих островов. Пункт отправления должен находиться не ближе, чем в 40 милях от точки (0,0) и не ближе чем в 5 милях от известных плавучих островов. Начальная скорость корабля такова, что за каждый ход он проделывает 5 миль. Если корабль попал в опасный район, то скорость падает, и после этого он преодолевает за один ход на милю меньше, чем раньше. После пяти аварий корабль не сможет продолжать движение и затонет. На дисплее появится сообщение ЕГГОГ.
Исходные данные записываются в ячейки памяти: координаты первого острова - в ячейки П8, П7, второго - в ячейки П6, П5, третьего - в ячейки П4, П3, скорость корабля - в ячейку П1, координата корабля "запад-восток" - в ячейку ПА, "север-юг" - в ячейку ПB. Курс корабля в градусах (отсчет по часовой стрелке от северного направления) набирается на клавиатуре.
Результаты вычислений и сообщение о текущей позиции корабля отображаются на дисплее. Сообщение появляется в виде ХХ, УУ000К, где ХХ - координата "запад-восток"; УУ - координата "север-юг". Эти координаты всегда положительны; К - номер квадранта, в котором находится корабль.
Инструкция по пользованию программой для МК-52 с БРП-4
- 1. Наберите адрес 1250698 и введите программу, нажав клавиши А↑, ↑↓.
- 2. Введите исходные данные.
- 3. Установите переключатель Р/ГРД/Г в положение Г.
- 4. Включите счет, нажав клавиши В/0, С/П. Время вычисления около 10 с.
- 5. Наберите на клавиатуре курс, которым будут пройдены очередные пять миль, и включите счет, нажав клавишу С/П. Время вычисления около 60 с.
- 6. Повторяйте п.5 до тех пор, пока корабль не достигнет свободной зоны вокруг острова. На дисплее появится число 3,1415926.
- 7. Если корабль оказался в опасной зоне и получил разрушения, то на дисплее появится число, находящееся в пределе от 0 до 9 и указывающее расстояние от корабля до центра плавучего острова. Нажмите клавишу С/П, и Вы получите текущие координаты. Время вычисления около 20 с.
- 8. При особо неудачном стечении обстоятельств корабль может оказаться в районе, где накладываются друг на друга смежные опасные зоны. В этом случае на дисплее дважды при нажатии клавиши С/П отобразится расстояние от корабля до центров островов, а число разрушений удвоится.
- 9. Для повторного запуска программы введите новые исходные данные.
Инструкция по пользованию программой для ЭКВМ
- 1. Загрузите программу с нулевого адреса.
- 2. Введите исходные данные.
- 3. Кнопкой Р-ГРД-Г установите размерность "Г" - градусы.
- 4. Включите счет, нажав клавиши В/0, С/П.
- 5. Наберите на клавиатуре курс, которым будут пройдены очередные пять миль, и включите счет, нажав клавишу С/П.
- 6. Повторяйте п.5 до тех пор, пока корабль не достигнет свободной зоны вокруг острова. На дисплее появится число 3,1415926.
- 7. Если корабль оказался в опасной зоне и получил разрушения, то на дисплее появится число, находящееся в пределе от 0 до 9 и указывающее расстояние от корабля до центра плавучего острова. Нажмите клавишу С/П, и Вы получите текущие координаты.
- 8. При особо неудачном стечении обстоятельств корабль может оказаться в районе, где накладываются друг на друга смежные опасные зоны. В этом случае на дисплее дважды при нажатии клавиши С/П отобразится расстояние от корабля до центров островов, а число разрушений удвоится.
- 9. Для повторного запуска программы введите новые исходные данные.
Тестовый пример
Координаты островов |
Скорость корабля |
Координаты корабля |
Первого |
Второго |
Третьего |
"З-В" |
"С-Ю" |
10 |
-10 |
5 |
13 |
-10 |
10 |
5 |
-40 |
35 |
Соответствующие ячейки памяти |
П8 |
П7 |
П6 |
П5 |
П4 |
П3 |
П1 |
ПА |
ПВ |
Начальная позиция корабля - 40,350004. Корабль расположен в районе 4. Курс - 165, текущая позиция корабля - 39,300004 и т.д. Карта пути показана на рисунке.
Программа "Опасный рейс"
Программа 46 из блока расширения памяти БРП-4, переключатель "1/2" блока в положении "2", адрес 1250698.
Файл brp4-46.mkp (КС 6437/253)
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
00 |
ИП A |
ПП |
73 |
ИП B |
ПП |
73 |
2 |
F 10x |
÷ |
+ |
10 |
П D |
ПП |
81 |
6 |
F 10x |
÷ |
ИП D |
+ |
С/П |
B↑ |
20 |
9 |
0 |
↔ |
- |
F sin |
F Bx |
F cos |
ИП 1 |
× |
ИП A |
30 |
+ |
П A |
F x2 |
↔ |
ИП 1 |
× |
ИП B |
+ |
П B |
F x2 |
40 |
+ |
9 |
П 2 |
- |
F x≥0 |
71 |
3 |
П 0 |
ИП A |
K ИП 2 |
50 |
- |
F x2 |
ИП B |
K ИП 2 |
- |
F x2 |
+ |
F √ |
П D |
9 |
60 |
- |
F x<0 |
68 |
F L1 |
66 |
K М→Г |
ИП D |
С/П |
F L0 |
48 |
70 |
K БП 0 |
F π |
С/П |
F x2 |
F √ |
7 |
F 10x |
+ |
F Bx |
- |
80 |
В/О |
ИП A |
F x<0 |
91 |
ИП B |
F x<0 |
89 |
3 |
В/О |
4 |
90 |
В/О |
ИП B |
F x<0 |
96 |
2 |
В/О |
1 |
В/О |
|
|
Исходный текст для кросс-компилятора
Файл brp4-46.mkl
.CHARSET 1251
; БРП-4
; 46. Игра "Опасный рейс" (2 - 1250698)
.ORG 0
RM A
GSB A73
RM B
GSB A73
2
F 10^X
/
+
M D
GSB A81
6
F 10^X
/
RM D
+
R/S
ENT
90
<->
-
F SIN
F ANS
F COS
RM 1
*
RM A
+
M A
F X^2
<->
RM 1
*
RM B
+
M B
F X^2
+
9
M 2
-
F X>=0 A71
3
M 0
A48: ; с адреса 68
RM A
K RM 2
-
F X^2
RM B
K RM 2
-
F X^2
+
F SQRT
M D
9
-
F X<0 A68
F L1 A66
K M->D
A66: ; с адреса 63
RM D
R/S
A68: ; с адреса 61
F L0 A48
K GOTO 0
A71: ; с адреса 44
F PI
R/S
A73: ; с адреса 1, 4
F X^2
F SQRT
7
F 10^X
+
F ANS
-
RTN
A81: ; с адреса 11
RM A
F X<0 A91
RM B
F X<0 A89
3
RTN
A89: ; с адреса 85
4
RTN
A91: ; с адреса 82
RM B
F X<0 A96
2
RTN
A96: ; с адреса 92
1
RTN
.END
|