num = int(input())
sm = 0
while num != 0:
sm += num
num = int(input())
print(sm)
Объяснение.
На первой строке Вы просите пользователя ввести число.
На второй строке вы создаете новую переменную, которой присваиваете значение = 0(она нужна для подсчета суммы всех элементов)
На третье строке вы создаете цикл с условием, что введенное число не равно 0(в противном случае цикл не будет выполняться)
На четвертой строчке Вы добавляете к уже имеющейся сумме введенное число.
На пятой строчке Вы просите снова ввести число
Далее происходит возврат к началу цикла, идет проверка числа на равенство нуля, если снова не равно, то цикл повторяется, если равно, то цикл прекращается
На шестой строке Вы выводите полученный результат.
а) Если адрессация 32-х разрядная, то число ячеек - .
б) Максимальный объмем адрессуемой памяти - = 4гб. Вспомните траблу с тем, что на 32-х разрядных ОС (которые задействуют проц в виртуальном режиме - могут использовать его как 32-х разрядный, если он даже 64-х) видимый максимальный объмем ОЗУ не больше этого предела, хоть пусть стоят плашки по 32гб.
в) Ну, если считать, что первый адрес - 0, то последний - 1
П.С. Число ячеек = объему памяти в байтах, так как можно адрессовать каждый байт - было сказано, что "при каждой операции... 32 бита данных", это говорит, что регистры тоже 32-х разрядные, но если вы видели какой-нибудь из языков ассемблера, то там можно обращаться к частям регистров, вплоть до размера части в 8 бит. Это на практике.
П.С.С. Сказано что проц теоретический, возможно, подразумевается, что ячейки не 1 байт, а 4 байта, т.е число ячеек в 4 раза меньше - . Выбирайте, что вам кажется более подходящим, препод вам известнее :)
НЕЗНАЮ
Объяснение:
НЗНАЮ