Адрес
| Команда
| Действие
| Замечания
|
| 0Ш5
| 2 ^ (К1)
| /: = 2
|
|
|
|
|
Адрес
| Команда
| Действие
| Замечания
|
|
| КО-> КЗ
| Адрес максимального элемента
|
| 02Б1
| К1: = К1 + 2
| Адрес о! г
|
|
|
|
|
ОООА
| 0, Ю5
| 0 —> (К1)
| о1г: = 0
|
ОООС
|
|
|
|
ОООЕ
| 04Б4
| Сравнить а[1] с 0
| (КО) - 0
|
|
|
|
|
| 2Б06
| Если а[\] > = 0, переход на 6(]6) байт
|
|
|
| КО ^ (К2)
| Адрес 1 -го отрицательного элемента
|
| 0Ш5
| 1 -> (К1)
| о1г: = 1
|
|
|
|
|
001А
| 02В2
| К2: = К2 + 2
| Адрес п
|
001С
|
|
|
|
001Е
| 03Б1
| К1: = К1 -2
| Адрес /
|
|
|
|
|
| 02Б0
| КО: = КО + 2
| Адрес 2-го элемента массива
|
|
|
|
|
|
| Сравнить (К1) с (К2) (/с п)
| (К2) — (К1)
|
| ЗВ32
| Если < 0, переход на 32(]6) байта
| Переход на обмен значений
|
002А
| 02В1
| К1: = К1 + 2
| Адрес о1г
|
002С
|
|
|
|
002Е
| 04Б4
| Сравнить (КО) с 0
| (КО) - 0
|
|
|
|
|
| 2Б14
| Если > = 0, переход на 14(]6) байт
|
|
| 04Б5
| Сравнить (К1) сО
| (К1) — 0
|
|
|
|
|
| 4Б0Е
| Если О 0, переход на Е(]6) байт
|
|
ООЗА
| 03В2
| К2: = К2 — 2
| Адрес к
|
ООЗС
|
|
|
|
ООЗЕ
|
| КО -> (К2)
| Адрес 1-го отрицательного элемента
|
| 0Ш5
| 1 -> (К1)
| о1г: = 1
|
|
|
|
|
Адрес
| Команда
| Действие
| Замечания
|
| 02Б2
| Я2: = Я2 + 2
| Адрес п
|
|
|
|
|
|
| сравнить (Я0) с (ЯЗ) (я[/] с я[тах])
| (ЯЗ) - (Я0)
|
004А
| 2Б02
| Если > = 0, переход на 2(16) байта
| Если я[тах] > = д[/]
|
004С
|
| Я0-*ЯЗ
| Адрес максимального элемента
|
004Е
| 03Б1
| Я1: = Я1 - 2
| Адрес /
|
|
|
|
|
| 02В5
| (Я1): =(Я1) +1
| /: = / + 1
|
|
|
|
|
| 02 Б0
| Я0: = Я0 + 2
| Адрес /-го элемента
|
|
|
|
|
005А
| ЮСА
| Переход на -36(16)байт
| На сравнение / с п
|
005С
| 03В2
| Я2: = Я2 — 2
| Адрес к
|
005Е
|
|
|
|
|
| (Я2) Я2
|
|
|
| (Я2) Я1
| У8р: = а[к]
|
|
| (ЯЗ) —»(Я2)
| а[к]: = а[тах]
|
|
| Я1 -> (ЯЗ)
| я[тах]: = а[к]
|
| 0Р00
| Стоп
|
|
Подпрограммы
Пример 9. На отрезке [т; п] вычислите сумму тех четных чисел, в десятичной записи которых три четные цифры.
В задаче можно выделить такие подзадачи:
1) определение четности-нечетности очередного числа;
2) подсчет количества четных цифр в десятичной записи очередного числа. Каждую из этих подзадач решим с помощью подпрограммы.
1) Определить, является ли число четным.
Число а будет четным, если остаток от деления на 2 этого числа равен нулю, и нечетным в противном случае.
План решения:
1. Ь: =аИ\2. 2.Ь: =Ь*2.
3. а: = а — Ь. 4. Возврат из п/п.
Распределение памяти
ЯО
| Я1
| Я2
| ЯЗ
|
-
| -
| Адрес а
| Адрес Ь
|
Подпрограмма
Адрес
| Команда
| Действие
| Замечания
|
|
| (КЗ) (К2)
| Ь: = а
|
| 06Б7
| (КЗ): = (КЗ)/2
| Ь \= а сИу 2
|
|
|
|
|
| 05Б7
| (КЗ): = (КЗ) * 2
| Ь=Ь* 2
|
|
|
|
|
007А
|
| (Кб): = (Кб) — (К7)
| а: = а — Ь
|
007С
| 0Б00
| Возврат из п/п
|
|
2) Подсчет количества четных цифр в десятичной записи числа.
2. Сравнить I с 0. 4. к: = г (Ну 10. 6. т: = I — к. 8. г: = г СНУ 10. 10. Возврат из п/п.
|
Отделяем очередную цифру числа г (остаток от деления на 10) и проверяем ее на четность. Если четная, учитываем это. Число оделим на 10 и повторяем процедуру. Действия продолжаем до тех пор, пока последнее частное не станет равным нулю.
План решения:
1. ^: = 0.
3. Если ^=0, то к п. 10. 5. к: = к* 10.
7. Если т четное, то 5: = 5 + 1. 9. Переход к п.2.
Распределение памяти
КО
| К1
| К2
| КЗ
|
-
| Адрес к
| Адрес а = т
| Адрес Ь, ^
|