|
Упражнения. Работу программы контроля можно несколько ускорить, если записывать контрольные точки не только на ленте, но и на барабане, и для восстановления оперативной памяти перед повторным просчетом производить чтение с барабана, а не с ленты. Кроме того, на ленте можно сохранять не каждую контрольную точку, а, скажем, одну из 10. Составить соответствующий вариант программы. 5. Составить программу разметки магнитной ленты при следующих условиях. На ленте должно быть 250]0 зон по 100010 ячеек (не считая ячейки для контрольной суммы) в каждой зоне. Зонам должны быть даны поеледовательные четные номера от 2 до 50010. При разметке зона заполняется сначала нулевыми словами, а затем словами, состоящими из одних единиц. После каждой записи делается контрольное чтение. Если после двух попыток правильная запись не удается, то на том же участке ленты размечается (без контроля) зона с нечетным номером, на единицу меньшим номера той зоны, которую разметить не удалось, и делается попытка разметить эту зону на следующем участке ленты. Так можно обойти участки ленты с дефектами магнитного слоя. § 5. Ввод и вывод чисел Выше уже говорилось о том, что при вводе чисел в машину обычно приходится переводить их из двоично-десятичного представления, описанного в § 1, в двоичное (машинное) представление, а при выводе —- осуществлять обратное преобразование. Алгоритмы перевода были разобраны в § 2 гл. 3. Машинная реализация этих алгоритмов основывается на операциях и приемах программирования, рассмотренных в гл. 11 и 12. В этом параграфе мы более детально разберем несколько алгоритмов и программ перевода. Они интересны не только с точки зрения решения этой конкретной задачи, но и как примеры подхода к программированию задач, чуть более сложных, чем те, которыми мы занимались в предыдущих разделах. Рассмотрим сначала методы перевода чисел с фиксированной запятой. Забудем на время, как используются разряды ячейки для представления чисел в машине М-20. Будем интересоваться только содержимым младших 36 разрядов ячейки, которые обычно отводятся для записи абсолютной величины мантиссы числа. Из множества возможных способов зафиксировать запятую в этом двоичном числе остановимся пока на одном, когда запятая ставится непосредственно справа от младшего разряда. Это значит, что мы читаем содержимое этих разрядов, как целое число п из диапазона О ^ п < 238. В тех же разрядах можно записать десятичное число в двоично-десятичном представлении.
|