Вычисление вариантов получения заданной суммы купюрами достоинством 1, 3, 5, 10, 25, 50 и 100 руб


Главная / ЭКВМ / Программы для ЭКВМ / БРП-4

Эта программа входит в блок расширения памяти БРП-4 советского микрокалькулятора МК-52. Купюры указанного достоинства имели хождение в СССР.


Вычисления выполняются для заданной суммы S в двух режимах, определяемых служебным числом С:

1) Если С = 68, вычисляется вариант получения суммы купюрами каждого достоинства: S = K1 + 3*K3 + 5*K5 + 10*K10 + 25*K25 + 50*K50 + 100*K100, где К1, К3, К5, К10, К25, К50, К100 - купюры достоинством 1, 3, 5, 10, 25, 50 и 100 руб соответственно;

2) Если С = 69, вычисляется число n вариантов получения суммы S.

Исходные данные заносятся в ячейки памяти:

S(руб) → П4, 0 → П5, 100 → П6, С → ПА.

Результаты вычислений записываются в ячейки памяти:

К100 → П9, К50 → П8, К25 → П7, К10 → П3, К5 → П2, К3 → П1; К1 заносится в регистр Х и отображается на дисплее в режиме счета С=68; n → П5 и отображается на дисплее в режиме счета С=69.

Инструкция по пользованию программой для МК-52 с БРП-4

  • 1. Наберите адрес 1274498 и введите программу, нажав клавиши А↑, ↑↓.
  • 2. Введите исходные данные.
  • 3. Задайте режим вычисления.
  • 4. Включите счет, нажав клавиши В/0, С/П. Время вычисления при С = 68 не более 25 с, при С = 69 зависит от суммы S.
  • 5. Считайте результат.
  • 6. Для вычисления каждого варианта получения заданной суммы при С = 68 включайте счет, нажав клавишу С/П.
  • 7. Для повторного запуска программы повторите пп.2-4.

Инструкция по пользованию программой для ЭКВМ

  • 1. Загрузите программу с нулевого адреса.
  • 2. Введите исходные данные.
  • 3. Задайте режим вычисления.
  • 4. Включите счет, нажав клавиши В/0, С/П.
  • 5. Считайте результат.
  • 6. Для вычисления каждого варианта получения заданной суммы при С = 68 включайте счет, нажав клавишу С/П.
  • 7. Для повторного запуска программы повторите пп.2-4.

Тестовый пример

S = 190 руб.

n К1 К3 К5 К10 К25 К50 К100 Время счёта на МК-52, сек.
1 0 0 1 1 1 1 1 19
2 2 1 0 1 1 1 1 8
3 5 0 0 1 1 1 1 4
4 0 0 3 0 1 1 1 10
...
33528 190 0 0 0 0 0 0 4

Программа "Вычисление вариантов получения заданной суммы купюрами достоинством 1,3,5,10,25,50 и 100 руб"

Программа 22 из блока расширения памяти БРП-4, переключатель "1/2" блока в положении "1", адрес 1274498.

Файл brp4-22.mkp (КС 6272/154)

  0 1 2 3 4 5 6 7 8 9
00 ИП 4 ИП 6 ÷ K [x] П 9 ИП 4 ИП 9 ИП 6 × -
10 П 0 5 0 ÷ K [x] П 8 ИП 0 ИП 8 5 0
20 × - П B 2 5 ÷ K [x] П 7 ИП B ИП 7
30 2 5 × - П C 1 0 ÷ K [x] П 3
40 ИП C ИП 3 1 0 × - П D 5 ÷ K [x]
50 П 2 ИП D ИП 2 5 × - П E 3 ÷ K [x]
60 П 1 K ИП 5 ИП E ИП 1 3 × - K БП A С/П K ИП 1
70 ИП 1 F x<0 61 K ИП 2 ИП 2 F x<0 51 K ИП 3 ИП 3 F x<0
80 40 ИП 7 1 - F x<0 27 ИП 8 1 - F x<0
90 15 ИП 9 1 - F x<0 04 ИП 5 С/П    

Исходный текст для кросс-компилятора

Файл brp4-22.mkl

.CHARSET 1251

; БРП-4
; 22. Вычисление вариантов получения заданной суммы 
; купюрами по 1, 3, 5, 10, 25, 50 и 100 рублей (1 - 1274498)

.ORG 0
	RM 4
	RM 6
	/
	K INT

A4:	 ; с адреса 94
	M 9
	RM 4
	RM 9
	RM 6
	*
	-
	M 0
	50 /
	K INT

A15:	 ; с адреса 89
	M 8
	RM 0
	RM 8
	50 *
	-
	M B
	25 /
	K INT

A27:	 ; с адреса 84
	M 7
	RM B
	RM 7
	25 *
	-
	M C
	10 /
	K INT
	M 3

A40:	 ; с адреса 79
	RM C
	RM 3
	10 *
	-
	M D
	5 /
	K INT
	M 2

A51:	 ; с адреса 75
	RM D
	RM 2
	5 *
	-
	M E
	3 /
	K INT
	M 1

A61:	 ; с адреса 71
	K RM 5
	RM E
	RM 1
	3 *
	-
	K GOTO A	; RA = 68 или 69 - cлужебное число C.
	R/S
	K RM 1
	RM 1
	F X<0 A61
	K RM 2
	RM 2
	F X<0 A51
	K RM 3
	RM 3
	F X<0 A40
	RM 7
	1 -
	F X<0 A27
	RM 8
	1 -
	F X<0 A15
	RM 9
	1 -
	F X<0 A4
	RM 5
	R/S
.END 


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)