В принципе, можно расписать, что делает эта программа (см. вложение). Так как изначально a[6] = 0, то a[3] = 50 раз к a[5] прибавится 2 * a[4] = 38, получится 38 * 50 + a[5] = 1917, затем значение a[5] будет выведено на экран.
Но проще не мучиться и просто написать программу, выполняющую этот код.
stack = [] transitions = [None] * len(program) for k, op in enumerate(program): if op == '[': stack.append(k) elif op == ']': v = stack.pop() transitions[k] = v + 1 transitions[v] = k + 1
k = 0 while k < len(program): op = program[k] if op == '.': print(array[array_position]) elif op == '>': array_position += 1 elif op == '<': array_position -= 1 elif op == '[' and array[array_position] == 0: k = transitions[k] continue elif op == ']' and array[array_position] != 0: k = transitions[k] continue elif op == '+': array[array_position] += 1 elif op == '-': array[array_position] -= 1 k += 1
Гибкий диск (floppy disk) – его называют еще флоппи диском или дискетой – это круглая гибкая пластина с намагниченным слоем, вставленная в пластмассовый корпус.7Жесткий диск (HDD — Hard Disk Drive) относится к несменным дисковым магнитным накопителям.8Лазерные дисководы используют оптический принцип чтения информации.9Устройство лазерного дисковода и диска10Flash-память - это энергонезависимый тип памяти, позволяющий записывать и хранить данные в микросхемах.11Устройства, составляющие внутреннюю память расположены на «материнской» плате в системном блоке. Этот вид памяти не предназначен для хранения информации пользователя. Она используется компьютерной системой.12Оперативная память - это быстрое запоминающее устройство не очень большого объёма, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами.13Кэш-память или сверхоперативная память — очень быстрое ЗУ небольшого объёма, которое используется при обмене данными между микропроцессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью. 14Постоянная память - BIOS (Basic Input-Output System).В нее данные занесены при изготовлении компьютера.154. Закрепление полученных знанийответьте на вопросы:- В чем заключается дискретность внутренней памяти?- Какие два смысла имеет слово «бит»?- Как они связаны?- В чем заключается свойство адресуемости внутренней памяти?- В чем разница между магнитным, оптическим и магнитооптическим диском?- Что такое файл?
Но проще не мучиться и просто написать программу, выполняющую этот код.
python 3.
array = [10, 330, 50, 19, 17, 0, 184, 0]
array_position = 2
program = "[->[->+>+<<]>>[-<+<+>>]<<<]>>."
stack = []
transitions = [None] * len(program)
for k, op in enumerate(program):
if op == '[':
stack.append(k)
elif op == ']':
v = stack.pop()
transitions[k] = v + 1
transitions[v] = k + 1
k = 0
while k < len(program):
op = program[k]
if op == '.':
print(array[array_position])
elif op == '>':
array_position += 1
elif op == '<':
array_position -= 1
elif op == '[' and array[array_position] == 0:
k = transitions[k]
continue
elif op == ']' and array[array_position] != 0:
k = transitions[k]
continue
elif op == '+':
array[array_position] += 1
elif op == '-':
array[array_position] -= 1
k += 1