Текст
                    

МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ РСФСР ЛЕНИНГРАДСКИЙ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ имени ЛЕНСОВЕТА А. М. АБАНЬШИН 62>S| ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ ДЛЯ ЭЛЕКТРОННЫХ ЦИФРОВЫХ . ВЫЧИСЛИТЕЛЬНЫХ МАШИН (на примере машины „Сетунь1*) МЕТОДИЧЕСКИЕ УКАЗАНИЯ ЛЕНИНГРАД 1965
Гос. Пуб»в<»« i бибио’®** / г *»пуф'
ОГЛАВЛЕНИЕ Предисловие............................................... 5 Введение.................................................. 6 § 1. Позиционные системы счисления................... 8 § 2. Запоминающее устройство машины «Сетунь» .... 16 § 3. Развернутая блок-схема машины «Сетунь» .... 21 § 4. Система команд....................•...................24 § 5. Система ввода-вывода..................................29 § 6. Составление простейших программ.......................33 § 7. Итеративные процессы..................................39 § 8. Стандартные подпрограммы............................ 46 § 9. Программа для вычисления квадратного корня методом Ньютона . ................................................48 § 10. Подпрограммы перевода чисел из десятичной системы счисления в троичную (10—>3) и наоборот (3—» 10) 49 § 11. Использование магнитного барабана (МБ) .... 52 § 12. Понятие о контроле ввода и счета......................53 § 13. Составление программы в целом.........................54 § 14. Понятие о числах с плавающей запятой................. 61 § 15. Интерпретирующие системы..............................63 § 16. Определение числа ступеней массообмена в ректифика- ционном аппарате........................................... 66 Примеры программ................................................70 Дополнение . . :...............................................104 § 17. Перфолента...........................................104 § 18. Пульт управления.....................................106 § 19. Отладка..............................................109 Литература..................................................... НО

ПРЕДИСЛОВИЕ Содержанием работы являются основные положения, раз- работанные автором при постановке курса «Программирова- ние для электронных цифровых вычислительных машин» (на примере машины «Сетунь») в Ленинградском технологиче- ском институте им. Ленсовета. Автор признателен В. А. Пуниной и И. И. Дубровской, оказавшим большую помощь в оформлении рукописи. 5
ВВЕДЕНИЕ Электронные цифровые вычислительные машины (ЭЦВМ} являются мощным, зачастую незаменимым средством для пе- реработки информации в различных областях науки и тех- ники. ЭЦВМ позволяют решать задачи различной сложности — в этом их универсальность. Благодаря очень большой скорости, с которой происходит выполнение отдельных операций (от сотен до сотен тысяч операций в секунду), ЭЦВМ дают возможность не только резко сократить время решения задач, уже решавшихся ра- нее, но и корелным образом изменить отношение к тем за- дачам, которые считались практически неразрешимыми из-за огромного объема вычислительных работ. Такие скорости стали возможными с появлением вычис- лительных машин, построенных на электронных элементах и имеющих специальное запоминающее устройство, способ- ное хранить все необходимое для решения конкретной зада- чи (последнее, помимо всего прочего, позволило освободить человека от непосредственного участия в вычислительном процессе). Блок-схема ЭЦВМ. Всякая ЭЦВМ состоит из следующих основных устройств: Рис. 1. 6
Арифметическое устройство (АУ) предназначено для вы- полнения некоторого набора арифметических и логических операций. Устройство управления (УУ) предназначено обеспечить автоматическую работу машины в процессе решения задачи. Запоминающее устройство (ЗУ) предназначено для хра- нения информации, необходимой при решении поставленной задачи: специальным образом закодированных методов ре- шения задачи, исходных данных, промежуточных и оконча- тельных результатов (информация в машине представляет- ся в виде некоторого набора цифр). Устройство ввода предназначено для записи в ЗУ метода решения задачи и исходных данных. Устройство вывода предназначено для извлечения аз ма- шины требуемой информации, в частности, окончательных результатов. Линии, связывающие отдельные устройства, это каналы, по которым происходит обмен информацией между ними. Кроме того, УУ связано со всеми устройствами машины ины- ми каналами, с помощью которых оно настраивает всю ма- шину на выполнение определенной операции в элементар- ный отрезок времени. Принцип программного управления ЗУ разбито на ряд ячеек, каждой из которых присвоен некоторый номер, называемый адресом. В ячейке может хра- ниться либо число, либо некоторая специальная информа- ция, содержащая в себе, с одной стороны, характеристику операции (сложение, вычитание и т. д.) и. с другой стороны, адреса ячеек, с содержимыми которых эта операция должна работать. Каждой операции также присваивается некоторый номер, называемый кодом операции, а вся информация, со- стоящая из кода операции и адресов, называется командой. Определенная последовательность команд, описывающая ме- тод решения задачи, называется программой. Программи- рование, таким образом, заключается в разложении способа решения задачи в определенную последовательность отдель них операций, каждая из которых может быть реализована машиной, и в записи их в виде команд. С помощью устройства ввода эта программа записывает- ся в ЗУ. Затем команды в выбранной ранее последователь- 7
ности поступают в УУ, которое расшифровывает их и на- страивает машину на выполнение определенных операций. Замечание: В зависимости от количества адресов, со- держащихся в команде, машины разделяются на одноадрес- ные, двухадресные и т. д. § 1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ Так как ЭЦВМ построены на электронных элементах, имеющих, как правило, два или три устойчивых состояния, десятичная система счисления, для изображения чисел в ко- торой необходимо десять цифр, не реализуется в таких ЭЦВМ. Необходимо ввести в рассмотрение такие системы счис- ления, для изображения чисел в которых требовалось бы 2 или 3 цифры. Присваивая каждому из состояний электронного элемен- та значение одной из цифр, можно таким образом эти си- стемы счисления использовать в машине. Рассмотрим подробнее десятичную систему счисления. Возьмем, к примеру, число 272, 32. Здесь цифра 2, стоящая непосредственно перед запятой, в 100 раз меньше цифры 2, стоящей перед цифрой 7, и в 100 раз больше цифры 2, стоящей после цифры 3. Т. е., в зависи- мости от положения (позиции) в числе цифра имеет различ- ный вес, значимость. Отсюда и название — позиционная си- стема счисления (в отличие от римской, например). Для изображения чисел в десятичной системе счисления имеется десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8. 9. Всякое число в этой системе 4»1 а2 а^---ап, ая+2 • • • = ар 10* '-j-ao-lO'1 *+’••• + 4-ап.10°-Ьая + 1. = ( £ ai 10~' )• 10", м-> J где а,€{0. 1, 2...9), / = 1, 2. 3. п, п 4- 1.. а, —значение разряда числа, 10 —основание системы (комбинация цифр 1 и 0). В частном случае верхний предел суммы может равняться конечному числу, когда после запятой число цифр, отлич- ных от нуля, конечно. 8
Вообще, можно построить позиционную систему с любым основанием q (q — целое положительное). Для изображения чисел в такой системе потребуется q различных цифр: 0, 1, 2.....q—1. Сами числа bxb2---Ьь bi + i = 1 S btq~‘ j q1, V-i / гле M{0, 1, 2.... <?-!}. В частности, по такому же принципу строится и система счисления, для изображения чисел в которой достаточно двух цифр: 0 и 1—двоичная. Основание этой системы счисления равно двум (по коли- честву различных цифр в этой системе). Количество, которое в десятичной системе изображается цифрой 2, в этой системе также изображается 10 (набор цифр 1 и 0). Но число 10 (двоичное) здесь означает — при переводе в десятичную систему — (10)2 = 1 -21 + 0-2° = 2. Вообще, всякое число в двоичной системе счисления представляет набор цифр 1 и 0. Например: 10100,101 - 1 -10« -Ь 0-1034-1 • 102 4- 0-10* + + 0-10° + 1 • 10-' +0- IO’2 + 1 • ю-3 (здесь 10 —это двоичное число, равное в десятичной системе цифре 21). При переводе в десятичную систему достаточно в сумме, стоящей справа число 10 (двоичное) заменить цифрой 2 и подсчитать сумму (10100, 101)2= 1-2* + 0-28+1-2» + 0.2’ + 4-0.2°+ !.2-’ + 0.2-2+ 1-2-»= (20,625),о. Замечание: 1. Для облегчения понимания показатели степеней числа 10 в сумме написаны в десятичной системе, хотя при строгом изложении их следовало бы писать в двоич- ной: (4)ю- (100)2; (3)ю= (И)г и т. д. 2. В дальнейшем, когда придется оперировать с числами в различных системах счисления, чтобы не возникло путани- цы, мы будем число заключать в скобки, помечая основание системы, например: (N)2; (М)ю и т. д. 9
Так как в основном мы будем рассматривать ЭЦВМ «Сетунь», в которой используется не двоичная, а сокращен- ная троичная система счисления, перейдем к более подроб- ному знакомству с этой системой. Для изображения чисел в этой системе счисления имеется три цифры: 1, 0 и 1 (] — 1). Конструкция этой системы счисления та же, что и деся- тичной, только основание равно трем (или в троичной— 10). (10 1, 1 Г), = Т-32 + 0-3‘+ ьз°+1-з_,+ ьз-2= = -9 + 0 + Ц-0,333... -0,111,... = (-7,777...)10 Вообще (sis2---em. «т+1 8ж+2.-)а = er3m“,4-e2-3'"-2 + 4-... + sm-3°4-em+i-3-’4-...= (Ser3J3", \i=i / где j0, 1, Г}, i = 1, 2,..., т, m + 1,..., (1) е<— значение разряда троичного числа, т — число цифр в целой части числа. Эта система счисления обладает тремя полезными свой- ствами. Свойство 1. Для представления чисел в этой системе не требуется специального знакового разряда — знак числа определяется знаком старшей значащей цифры. Например. Г 1 0 1 — отрицательное число. Действительно: (1101 )«= Т-33 + 1 -З2 Ч- 0-3* + 1-Зп = — 27 + 9 + 1 = (—17)10 (1ТоТ),= ЬЗ’+Т-З’ + О-З1 + ЬЗ° = + 27-9-1 = ( + 17)ю Свойство 25Чтобы изменить знак числа на противополож- ный, достаточно изменить знаки на противоположные у раз- рядов этого числа (см. предыдущий пример). Свойство 3. Наилучшее округление числа Л- == • -щ, эт + \ ~т+2 • • • ••• до k верных троичных знаков получается отбрасыванием всех младших знаков, начиная с (k + 1)г": 5 ®;,...$^,, 4-1 ®ги+2• • • 10
т. к. отбрасываемая часть по абсолютной величине всегда < половины единицы последнего разряда числа (равенство будет иметь место только в случае, когда либо все е> = 1, либо е< = 1, ।: = k + 1, k + 2, .. .). Следствие. Ближайшим целым числа к является число i6л — ®1е2ф • Арифметические действия (сложение, вычитание, умножение) с числами в сокращенной троичной системе Принципы выполнения арифметических действий (добав- ление единицы переноса в старший разряд —при сложении,, сдвиг частичных произведений — при умножении и т. д.) здесь те же самые, что и в десятичной системе. Сложение Таблица сложения очень проста: т+ т= п о + Г=Т 1 + Г=о Г+о=Т 0+0 = 0 1 + 0= 1 Т+ 1 = 0 0+1 = 1 1+ 1 +11 Пример: 1111 11 11 1 0 1 1 1, 1 0 1 11111,111 оооТ 1, Го 1 Вычитание На основании свойства 2 операция вычитания легко за- меняется операцией сложения с числом, противоположным по знаку с вычитаемым. Пример: lOifHT-юиТГ = юиТГГ + Г01Г11 = 1Г1Т100 11
Умножение Таблица умножения: ТхТ=1 охТ=о 1хТ=Т ГхО=О 0X0=0 1X0=0 Тх1=т 0X1=0 1X1=1 Пример: v 11 Го, юТ 4 1 011 Т1Ю Г01 11101 01 111010 1 1111110,111 Легко заметить, что при умножении множимого на раз- ряд множителя, равный 1, множимое без изменения перепи- сывается (со сдвигом на 1 разряд) под разрядами предыду- щего частичного произведения; при умножении на 1 множи- мое переписывается с изменением знаков его разрядов; при умножении на нуль производится только очередной сдвиг. Заметим, что десятичные цифры в этой системе представ- ляются следующим образом: 0 — 0, 1 — 1, 2-11, 3~ 10, 4—11, 5—ЙТ, 6 — 110, 7 —1Г1, 8 —ЮГ, 9—100. Рассмотрим перевод троичных чисел в десятичные и на- оборот, предполагая, что все действия выполняются в деся- тичной системе счисления. Перевод чисел из троичной системы счисления в десятичную (3—10) Перевод сводится к вычислению выражения (1), т. е. нужно просуммировать те степени числа 3, которые входят в сумму с е,= 1 и вычесть те, которые входят в сумму с е<=1. При этом для получения результата с п верными деся- тичными знаками после запятой необходимо отрицательные 12
степени числа 3 брать с п + 1 верным десятичным знаком после запятой. Пример. Перевести число х= 1011, 111 из троичной си- стемы в десятичную с тремя верными десятичными знаками после запятой. х= Ю1Г, Гп = 1-з3+ ьз1 + 1-з° + Г-з-’ + ьз-2+ 1-з-3 = = 27 + 3— 1 — 0,3333 + 0,1111 + 0,0370 = 28,8148. Перевод чисел из десятичной системы в троичную (10-> 3) Рассмотрим сначала способ перевода 10-*Здля чисел х, удовлетворяющих условию х| < */2. Очевидно, в троичной системе такое число будет иметь вид X = 0, 8| 32... 8ц, т. е. х = Vej.3-', i-i где е, — значения троичных разрядов, которые нужно опре- делить, исходя из заданного числа х в десятичной системе. Ясно, что Зх = в„ е2, 8з...е* Следовательно, ei = (3x]6jI, т. е. ei является ближайшим целым числа Зх. Положив Х| = Зх |3х]бл, получим: i-*ii<4’и х‘=°> •••'* Отсюда: «2=13^1(1., и т. д. 13
Таким образом, положив для единообразия х = х0, полу- чим следующие рекурентные соотношения для получения троичных цифр е<: 6/= [Зх/_ (2) х, = 3x,_i — [Зх,/=1, 2. А. Пример: х = 0,4. Предлагается вычисление по формулам (2) проводить по следующей схеме: Зх, _ 1 е,- = [Зх, _ i]х, = Зх,_ , — [Зх, _ 1]6л. х0 = 0,4 1.2 С| 1 xt = 0.2 0,6 Ед х, = —0,4 —1.2 ъ= 1 х3 = —0,2 —0,6 Ч = 1 х,=0,4 и т. д. х= (0,4) 10= (0,1И1...)з. Перевод произвольного числа х сводится к рассмотрен- ному случаю умножением на Зг, где г — целое число, под- бираемое из расчета, чтобы | х • Зг | < ‘/г- Переводя число х-Зг из десятичной системы в троичную и перенося в получившемся числе запятую на |г| разрядов вправо при г<0 и влево — при г>0, получим искомое зна- чение. Пример: х — 32,4. Подбираем степень числа 3 так, чтобы 32,4j Зг_< */2. Например, г=—4. Тогда, 32,4«З-4 = 0,4 = 0,1111111Г1... Перенося запятую в троичном числе на четыре разряда впра- во, получим 32,4 - 1111,11171 ... Для перевода целых десятичных чисел в троичную систе- му укажем более простой способ. Пусть дано десятичное число х. В троичной системе оно m будет иметь вид х = ₽ie2... ет, т. е. х = У^ег3'п *'•, где i-i с, —троичные цифры, подлежащие определению. 14
Очевидно, и. следовательно, ’«вХ-з[-у] L ° Если положить = X, И X = х0, то бл можно выписать следующие рекурентные соотношения для получения троичных цифр: •*/+1- 4-] . (3) tn — 1, Этот процесс продолжается до тех пор, пока не окажется хт = 0. Пример. Перевести в троичную систему число 56. Отсюда получаем (56) 10= (ПОП),. В дальнейшем произвольную последовательность троич- ных цифр будем называть троичным кодом. Для сокращенной записи троичных кодов используются цифры сокращенной девятиричной системы счисления: а<:—4, —3. —2, —1, 0, 1, 2, 3, 4. 15
При этом первые четыре цифры записываются соответст- венно в виде 4, 3, 2, 1. Соответствие между девятиричными цифрами и парами троичных цифр следующее: 4—if, 3—10, 2-11, I — ОТ, 0 — 00, 1—01, 2-11, 3-10, 4 - II. Для того, чтобы троичный код записать с помощью выше- указанных цифр, нужно каждую пару смежных троичных цифр, начиная справа, заменить соответствующей щ (в слу- чае, когда троичный код состоит из нечетного количества разрядов, слева код дополняют нулем). Пример. Код 01111011101111 сокращенно записы- вается: Г 2 3 2 3 4 2. Впоследствии часто вместо указанных обозначений цифр а,-, мы будем использовать буквенные обозначения: Русский алфавит Латинский алфавит 4 Ж W 3 X X 2 У Y Гц Z Например, код 1232342 будет записываться либо в виде Ц2Х2Х4У, либо в виде Z2X2X4Y. § 2. ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО МАШИНЫ <СЕТУНЬ> В машине «Сетунь» имеется два вида памяти: память, построенная на ферритовых сердечниках.—оперативное запо- минающее устройство (ОЗУ) и память на магнитном бара- бане (МБ). При работе только с ОЗУ машина может выполнять до 4500 операций в секунду. Емкость ОЗУ—162 девятиразряд- ных троичных кода. 16
ОЗУ условно разбивается на три одинаковых зоны Фо, в= I, О, I, каждая из которых состоит из 54 девятнразряд- ных ячеек. Каждый разряд ячейки — это электронный эле- мент. обладающий свойством иметь три устойчивых отлич- ных друг от друга состояния. Каждому из состояний -Эле- мента присвоено значение одной из троичных цифр 1, О или 1. Набор из девяти таких элементов дает возможность интерпретировать любой девятиразрядный троичный код. Каждую из трех зон Ф-,, Фо и Ф| можно представлять схематически в виде прямоугольника, разбитого на 54 отде- ления (ячейки), занумерованные троичными числами (адреса) Адреса ячеек в каждой из зон Фа имеют значения в пре- делах от 1110 до 1111 (в сокращенной записи —от 43 до 44). Следует отметить, что адрес последующей ячейки получается из адреса предыдущей либо добавлением 1, если адрес пре- 2—402 ‘ 17
дыдушей оканчивается на 0 (признак адреса Яд = 0), либо добавлением (двойки), если адрес предыдущей оканчивается на 1 (признак адреса Яд = 1). Адреса ячеек через одну отли- чаются на 10 (3 единицы). Предусмотрена возможность работы с 18-ти разрядными ячейками (они называются длинными в отличие от 9-ти раз- рядных, называемых короткими), получающимися из двух соседних 9-ти разрядных; при этом ячейка с лА = 0 пред- ставляет левую (старшую) часть 18-ти разрядной ячейки. Признаком длинной ячейки служит цифра 1 в конце адреса (лд = 1). Пример. Ячейка с адресом где e,(i=l, 2, 3),— троичные цифры, — длинная ячейка, составленная из корот- ких ячеек с адресами е^гезО и е^ез!- е.8,э31 Рис. 3. Примеры длинных ячеек: 1111 (44)—состоит из ячеек 1110 и 1111; 1111 (44)—состоит из ячеек 1110 и 1111. Полный адрес ячейки (длинной или короткой) можно представить в виде: А = ЛфД, где Лф —признак зоны —ука- зывает на то, в какой из трех зон Ф, расположена ячейка (при Лф = 1 ячейка расположена в зоне Ф1: при Лф = 0— в Фо и при Лф = 1—в Ф|). а четырехразрядный троичный код А указывает номер ячейки в зоне. Примеры. А—11110 (или 143)—ячейка из зоны Фус номером! 1 10 (короткая). А= 11011 (или 13 2)—ячейка из зоны Ф1 с номером 10 11 (длинная, состоящая из двух коротких ячеек 10 10 и То 1 1). Замечание. Память (ОЗУ) в машине «Сетунь», «за- цикленная». Это следует понимать в том смысле, что за по- следней ячейкой зоны Фу будет следовать (по правилу полу- 18
чем ня адресов) первая ячейка зоны Фо и т. д., т. е. имеет место такая схема: Рис. 4. Представление команд и чисел ЭЦВМ «Сетунь» является малогабаритной одноадресной машиной последовательного действия с фиксированной за- пятой. Команды представляются девятиразрядными троичными колами: £1В2£.164В.Г; ВвВ7®Я ®9 А 0 Пр причем пять старших разрядов команды образуют адресную часть, а младшие четыре разряда образуют код операции со специальным признаком модификации лр, о котором будет говориться ниже. Код операции 0 определяет характер операции, а адрес- ная часть А указывает, как правило, адрес ячейки, над со- держимым которой должна выполняться эта операция. Команды располагаются в коротких ячейках. На бланке команды записываются в сокращенной девяти- ричной системе, причем, очевидно, старшая троичная циф- ра Е| (признак зоны Ф«) всегда будет совпадать со старшей девятиричной цифрой. Числа могут располагаться как в коротких ячейках (9-ти разрядное троичное число соответствует 4-х разрядному де- сятичному), так и в длинных (18-ти разрядное троичное число соответствует 8-и разрядному десятичному). Запятая фиксирована после второго разряда, т. е. все числа, представляемые в машине, по абсолютной величине меньше 4, 5. 2* 19
В память машины можно вводить числа как переведен- ные заранее в троичную систему, так и не переведенные, но специальным образом закодированные, о чем будет гово- риться позднее. В первом же случае числа на бланке запи- сываются с помошью сокращенной девятиричной системы так же, как и команды, причем, если число 18-ти разрядное, его разбивают на две половины и каждую записывают в виде- команд; при этом следует помнить, что запятая в машине фиксирована после второго троичного разряда и, следова- тельно, если число до запятой содержит одну цифру, необхо- димо его дополнить нулем. Пример. Число 1,101 1 1 1 1 имеет перед запятой одну цифру. Дополняем нулем и записываем с помощью сокра- щенной девятиричной системы: 0 1,Г0 1 1 1 ТТ 0 2 14 4 Число Ti.ii nil Г ooioToTi 1 разбиваем на два девятиразрядных и каждое записываем сокращенно 1 4 4 4 4 0 1114 Магнитный барабан (МБ). Основной памятью машины «Сетунь» является магнитный барабан емкостью 36 зон по 54 коротких ячейки, т. е. всего на МБ имеется 1944 коротких ячейки. Зоны МБ занумерованы кодами от 0 1 1 1 (или 1 4) до 1111 (или 44), т. е. в девятиричной системе счисления номера зон МБ следующие: 14, 13, 12, 11, 10, 11, 12, 13, 14, 24. 23, ... 43, 44. Обмен информацией между МБ и ОЗУ производится зо- нами т. е. информация любой зоны МБ (ОЗУ) целиком за- писывается или считывается в соответствующие ячейки лю- бой зоны ОЗУ (МБ). Адресная часть А команды указанного обмена информа- цией имеет следующий вид: А = -ФМ, где Лф — признак зоны ОЗУ, а М — номер зоны МБ, между которыми происходит обмен информацией. 20
§ 3 РАЗВЕРНУТАЯ БЛОК-СХЕМА МАШИНЫ «СЕТУНЬ» Арифметическое устройство (АУ) предназначено для вы- полнения операций сложения, вычитания, умножения, пораз- рядного умножения, сдвига и нормализации. Операции про- изводятся с 18-ти разрядными троичными числами, у кото- рых запятая фиксирована после второго разряда. Основные узлы АУ: сумматор АУ, с помощью которого происходит вы- полнение вышеназванных операций; 18-ти разрядный регистр S со сдвигом вправо и влево, куда, как правило, засылается результат выполненной опарации; блок множительного устройства с 18-ти разрядным регистром R, предназначен- ный для выполнения операций умножения; триггеры перепол- нения ф1 и ф2, констатирующие тот факт, что результат вы- полнения некоторой операции превысил по абсолютной ве- личине число 4,5 (при этом происходит останов машины); триггеры cog и <оя, предназначенные для фиксирования знака результата выполненной операции (ws<on,= l, если резуль- тат операции > 0; мв, соя = 0, если результат равен нулю я ®8. <оя = 1, если результат <0). Устройство управления (УУ) предназначено для форми- рования адреса очередной команды, для выборки команды из ОЗУ, для модификации адресной части команды, для вы- борки и записи чисел согласно указанному в команде адре- су, для дешифрирования кода операции и выработки после- довательности сигналов, настраивающих машину на отра- ботку выполняемой команды. Основные узлы УУ: сумматор УУ, регистр команд (РК), состоящий из 5-ти разрядного регистра адреса (РА) и 4-х разрядного регистра кода операции (РКО) (на регистр команд выбирается команда из ОЗУ перед ее исполнением), 5-тн разрядный регистр С, предназначенный для хранения адреса ячейки ОЗУ, содержимое которой (команда) выбрано в РК для исполнения; 5-тн разрядный регистр F. пред- назначенный для изменения (модификации) адресной части команды; триггер назначение которого такое же, что и <оя, ид АУ; дешифраторы адреса и кода операции, пред- назначенные для определения характера операции, подлежа- щей выполнению, и для выработки соответствующих сигна- лов, организующих работу машину для отработки этой опе- рации. Рассмотрим подробнее три момента в работе УУ. 1. Формирование адреса очередной команды. Пусть в ре- гистре С находится адрес некоторой ячейки, откуда команда 21
РАЗВЕРНУТАЯ БЛОК-СХЕМА МАШИНЫ «СЕТУНЬ J 22
выбрана на РК и передана на дешифраторы. Для выработки адреса следующей ячейки, откуда команда должна будет вы- браться затем на РК для исполнения, содержимое С посту- пает на сумматор УУ, где происходит прибавление 1 или 2 (в зависимости от Яд адреса, хранившегося в С). Затем по- лученный адрес сдвигается в Рд. Происходит считывание команды из ячейки по получившемуся адресу, после чего адрес из РА сдвигается в С. 2. Прием команды на РК. Четыре младших разряда по- ступают на РКО. Пять старших (адресная часть)—посту- пают на сумматор УУ, где в зависимости от значения при- знака модификации яр может произойти изменение адресной части команды. Затем результат сдвигается в РА. 3. Модификация адресной части команды. Изменение адресной части команды происходит в сумматоре УУ по сле- дующему правилу: модифицированный адрес А* = ]А + *r(F)] mod 3\ где яр — признак модификации (младший разряд в коман- де)— может равняться 1, 0 и 1; (F)—содержимое регистра F; А — адресная часть команды Айлр, выбираемой из ОЗУ. Происходит алгебраическое сложение двух пятиразряд- ных целых троичных чисел А и (F), причем в случае полу- чения результата из шести разрядов старший разряд теряет- ся. Итак, вместо выбираемой из ячейки ОЗУ команды АОлр выполняется команда А*0лр (очевидно, в случае лр=0 будет А* = А). Замечание I. Содержимое регистров S, R, РК, С, F и триггеров <рь ф2 и ю воспроизводится на вертикальной па- нели пульта управления (см рис. 21), для чего каждому разряду регистров и триггеров соответствуют две нцоновых лампочки. Зажигание верхней лампочки указывает на то, что в данном разряде содержится 1, нижней—1 и, если не горят обе лампочки, то в данном разряде содержится 0. Замечание 2. Как говорилось выше, выполнение каж- дой команды, связанной с регистрами S, R, F, сопровож- дается выработкой соответствующего признака ios, wR, wf, характеризующего знак результата выполненной команды. На пульт управления выводится общий признак со, который указывает на знак результата выполнения каждой очеред- ной команды. При выполнении иных команд, не связанных с S, R и F, сохраняется прежнее значение ш. 23
Замечание 3. При записи информации из ячейки (ре- гистра) в регистр (ячейку) содержимое ячейки (регистра) не исчезает и не изменяется: «копия» этой информации пе- реписывается в регистр (ячейку) на место прежнего содер- жимого. То же имеет место и при обмене информацией меж- ду ОЗУ и МБ. § 4. СИСТЕМА КОМАНД Перед тем, как перейти к системе команд, введем некото- рые дополнительные обозначения: Д*. лФ * — модифицированные коды составляющих адресной части команды; (A), (S), (R), (С)—содержимое соответственно ячейки с адресом А и регистров S, R, С; <х> — адрес ячейки, содержащей число х- [Фа|> [М] — содержимое соответственно зоны Ф„ ОЗУ и зоны М МБ; —»— засылка информации из одного устрой- ства в другое, например. (А) -* S озна- чает: содержимое ячейки с адресом’ А послать в регистр S. Замечание: Если число разрядов ,в регистре (ячейке), куда происходит запись, больше числа разрядов в ячейке (регистре), откуда информация переписывается, то эта ин- формация переписывается в старшие разряды регистра (ячейки), а в остальные его (ее) разряды записываются нули. В противном случае, младшие разряды теряются. Примеры на выполнение команд. Пусть в регистре S находится троичное число: S 0 0. о ! О | О 1 1 1 (1 I 1 о I О Г | 1 1 1 I 0 11 11 Рис. 6. В ячейке с адресом 1 2 0 находится троичное число: 120 0 | 0, | 1 | 1 | 0 | I | 1 | 1 | l I Рис. 7. 24
1. На регистр команд (РК) выбрана команда 12033 (Z2033). По этой команде к (S) прибавляется (120), ре- зультат посылается в S, т. е. после выполнения операции в S окажется троичное число: S Т 1 | о 0 0, 1 1 1 0 0 111 10 11 1 Рис. 8. 2. На РК выбрана команда 120_20, (Z2 020), т. е. команда поразрядного умножения (S) на (120). Так как ячейка 1 20 состоит из девяти разрядов, а регистр S из 18-ти, число из ячейки при выполнении операции дополняется пулями (млад- шие разряды) до 18-ти, т. е. (S) поразрядно умножается на 00,1101111000000000. После выполнения операции: S 0 0, о | О | О 1111 О 0 0 0 0 0 | 0 0 | 0 [ Рнс. 9. 3. На РК выбрана команда 120 2 0 (Z20Y0). В 5-ти стар- ших разрядах ячейки 1 20 находится код 001 10 (это соответ- ствует десятичному числу 6). Содержимое S сдвигается на 6 разрядов влево, так как код представляет собой положитель- ное число. В результате выполнения операции: S Т 1, | 1 I о о i | I 1 | 11 о I 1 1 'о о | о | о о I о Рис. 10. 4. На РК выбрана команда 1 2023 (Z20YX). Содержи- мое S нормализуется, т. е. в данном случае сдвигается влево на 4 разряда и результат посылается в ячейку 12 0, а ,в пяти старших разрядах регистра S оказывается — 4, так как сдвиг происходил влево. S о’ 0 1 т 0 0 0 0 0 0 0 0 0 0 0 0 0 Рис. 11. 120 0 1, 1 1 1 0 0 1 1 Рис. 12. 25
Таблица ! Система команд С Наименование Код операции Содержание n if ч о S 3 ® = ? операции девяти- троим команды сз £ £• = ? ж * Пояснения я ричнын нып 3 CL flQ c 5*0 ’ CC Б "I * 1 Посылка и S 30 ‘ 100 (А*) - S “’s 180 При переполнении — останов. Сложение и S 33 101 (S) -1- (Л*) - S <"s 180 < 3 Вычитание в S ЗЗ(ЗХ) юТ (S)-(A»)->S “s 180 < 4 Умножение —0 40 по (S)-R;(A»XR)-E ®8 320 « 5 Умножение — 1 43 111 (S) 4- (A") (R) S ®s 320 « 6 Умножение — Г 43(4Х) 11Т (S)(R) + (A*)->S "8 320 « ' 7 Поразрядное ум- 1То (А») ® (S) -S Значение каждого разряда результа- ножение 20 180 та получается умножением значений соответствующих разрядов кодов из А* и S на основании таблицы умножения троичных цифр. 8 Посылка в R 23 1Т1 (A*) * R «R, 180 9 Останов (2) 23(2Х) ПТ Стоп (A*) -» R <•»!> __ Приняв команду па РК, машина остановится. После нажатия кнопки «пуск» произойдет посылка (Л*) в R и выборка очередной команды. 10 Условный пере- ход У П-0 10 010 coxpa- 100 Если при выполнении предыдущей A • -* С при <u 0 няется или 180 команды со — 0, после команды УП 0 произойдет выборка на РК команды из ячейки А*; в дальнейшем на РК бу- дут выбираться команды из ячеек, сле- дующих за ячейкой А*. В противном > * случае, на РК выберется очередная команда (не нарушится последователь- ный порядок выполнения команд). Условный пере- 100 То же в зависимости от выполнения 11 coxpa- или условия ы = 1. ход УП-1 13 он A* -* С при «i —l няется 180 12 Условный пере- 13(1Х) oil A* -> С при ш=1 я То же в зависимости от выполнения ход УП-1 условия ы = 1 13 Безусловный не-. оо реход (БП) 000 A* - C я 180 В результате выполнения команды произойдет выборка на РК команды из ячейки А*. В дальнейшем то же, что и при выполнении УП. 14 Запись из С 03 001 (C) -> A* • 180 Содержимое регистра С переписи- • вается на место пяти старших разря- дов ячейки А*, в остальные разряды запишутся кули. 15 Запись из F 03 (0Х) ооТ (F) A" ШР 180 То же для (F). 16 Посылка в F TO(ZO) оТо (A*)- F »F 180 Содержимое пяти старших разрядов ячейки А* переписывается в F. 17 Сложение в С с оТ1 Код, находящийся в пяти старших посылкой в F 13(Z3) (A*) 4- (C) - F "f 180 разрядах ячейки А* прибавляется к со- держимому регистра С и результат за- писывается в F; возможный перенос из пятого разряда в старший (шестой) теряется. 18 Сложение в F Т 3(ZX) он (A*) 4- (F) -» F “F ISO То же для регистра F. 19 Сдвиг 20(У0) Но Сдвиг 280-r- Содержимое S сдвигается на | N | (S) на (A*) - S “S разрядов вправо, если N<0, и влево. 375 если N>0, где N — код, хранящийся в пяти старших разрядах ячейки Л*. При Ю N-0 содержимое S ие изменяется.
28
Замечание: При изучении системы команд мы исхо- дили из предположения, что = 0. Если же признак моди- фикации яр =/= 0, то часть команды, отводимая для 0лР, будет отличаться от табличного кода операции на 1 или 1 (в зави- симости от значения- лр). Например: Команда 120 32означает также операцию сло- жения, но с предварительной модификацией адресной части, т. е. формируется модифицированный адрес А* =120— (F), и выполняется команда А * 32 (при формировании А * здесь производится вычитание F, потому что кодовая часть команды 32 отличается от 33 на 1). § 5. СИСТЕМА ВВОДА И ВЫВОДА Информация, вводимая в (выводимая из) ЗУ машины «Сетунь» может быть двух видов: 1) последовательность команд и других троичных кодов, записанных в виде команд; 2) последовательность некоторых символов из определен- ного набора (см. таблицу 3). Предварительно информация, предназначенная для ввода в ЗУ, пробивается на пятипозмцнонной перфоленте с по- мощью телетайпа: на клавиатуре телетайпа имеется некото- рый набор цифр и символов; нужная комбинация пробивок получается на перфоленте после нажатия соответствующей клавиши. Считывание с перфоленты осуществляется с помощью одного из двух фототрансмиттеров. После нажатия кнопки «начальный пуск» на наклонной панели пульта управления (см. рис. 21) происходит считывание информации с фототрансмит- тера № 1 в Фо ОЗУ и выполнение программы начинается с команды, расположенной в ячейке 001. Дальнейшее считы- вание информации осуществляется программным путем по определенным командам (ввод производится в какую-либо зону Ф« в последовательные ячейки, начиная с первой лф4 3). В случае информации первого вида каждый код задается, как говорилось выше, пятью девятирнчными цифрами, каж- дой из них соответствует одна строчка на перфоленте, т. е. одному коду соответствует пять строчек информации. 29
Такого вида информация пробивается на перфоленте пол- ными зонами (по 54 коротких кода), между различными зо- нами оставляется расстояние в 15—20 см. Вводится такая информация в Ф, целыми зонами, поэтому, если в какой- либо зоне число коротких кодов меньше 54. ее дополняют 'нулями. При вводе каждая девятирнчная цифра кода, кроме старшей, записывается в ЗУ в соответствующие разряды ко- роткой ячейки в виде двух троичных цифр; старшая цифра, всегда совпадающая по значению с троичной, записывается в старший разряд. В случае информации второго вида каждому символу на перфоленте соответствует одна строчка. При вводе каж- дый символ запоминается очередными тремя разрядами ячейки (три символа в короткой ячейке, начиная со старших разрядов). Ввод может осуществляться неполными зонами, для этого в конце информации на перфоленте пробивается символ стоп (ст.) с тем расчетом, чтобы он оказался третьим символом в короткой ячейке (или пробиваются три сим- вола стоп). Вывод информации из машины осуществляется с помощью электроуправляемой пишущей машинки по специальным командам программы. При выводе троичных кодов (вывод в виде команд) каж- дый короткий код печатается пятью девятиричными цифра- ми в одной строке. Коды располагаются столбцом. При вы- воде в виде символов последовательность троек цифр, начи- ная со старших разрядов ячеек выводимой зоны, определяет характер и последовательность печатаемых символов. Вывод информации производится из последовательных ячеек, начиная с первой зоны ОЗУ, указанной в команде вывода. В первом случае осуществляется вывод полных зон (по 54 коротких кода), во втором случае возможен вывод не- полных зон. для чего в конце выводимой информации в по- следних трех разрядах короткой ячейки должен задаваться символ стоп. Все команды ввода и вывода имеют одну и ту же струк- туру_ЛфМ30 (в случае модификации вместо 3 0 записывает- ся 3 I или 3 1). Лф указывает на номер зоны ОЗУ, куда долж- на вводиться или откуда должна выводиться информация, а М — четырехразрядный троичный (двухразрядный девя- тиричный) код — определяет: какая из операций (ввод или • вывод) должна выполняться, какие из внешних устройств 30 >
(пишущая машинка, фототрансмиттеры № 1 или № 2) долж- ны участвовать при выполнении конкретной команды. Возможные значения кода М и соответствующий харак- тер команды ввода — вывода видны из следующей таблицы: Таблица 2 Значение кода М Смысл команды ввода — вывода девяти- ричное троичное 01 0001 Ввод троичных кодов (ввод в виде команд) с фоготрансмнттера № 1. оТ 0001 Ввод символов с фототрансмиттера № 1 03 0010 Ввод троичных кодов с фототрансмиттера № 2 03 ооТо Ввод символов с фототрансмиттера № 2 10 0100 Вывод троичных колов на пишущую ма- шинку То оТоо Вывод символов на пишущую машинку Пять комбинаций пробивок (последние в таблице 3) не воспринимаются машиной при любом вводе. Среди остальных 27-ми комбинаций имеются такие, роль которых заключается в выдаче некоторых управляющих воз- действий на выводные устройства: Таблица 3 п/п Латинский вариант Русский вариант Код на перфо- ленте Код в машине буквенн. регистр 5 цифров. регистр буквенн. регистр цифр, регистр В 3-х тр. разр. В 2-х тр. разр. 1 А 6 А 6 110 00 ПО 2 В 7 В 7 110 01 111 — 3 С 8 С 8 100 10 101 — 4 D 9 Д 9 100 00 100 —- 5 • Е ПР Е ПР 100 01 101 31
Продолжение табл. 3 ММ П 11 Латинский вариант Русским вариант Код на перфо- ленте Код в машине буквепн. регистр 5 цнфров. регистр букве нн. регистр цифр, регистр в 3-х тр. разр. в 2-х тр. разр. 6 F Б | 010 11 ТТо 7 G 1 Щ ю 000 11 100 — 8 Н • Н • 100 11 101 — 9 I л + 001 н 110 — 10 J V ы э 101 11 111 — 11 К W(4) к Ж(4) 010 10 011 п 12 L Х(3) г Х(3) 010 00 010 10 13 М Y(2) м У(2) 010 01 011 11 14 N Z(l) и Ц(1) 000 10 00 1 01 15 Р 0(0) р 0(0) ОН 11 000 00 16 Q 1 й 1 000 01 001 01 17 R 2 я 2 001 10 011 и 18 S 3 ь 3 001 00 010 10 19 Т 4 т 4 001 01 011 11 20 и 5 п 5 ПО 10 пт 21 ( ) ш Ф 101 01 111 — 22 = X = х 011 01 И 1 — 23 подчеркивание (ПЧ) НО 11 111 24 буквенный регистр (БР) 101 00 110 — 25 цифровой регистр (ЦР) 101 10 111 — 26 возврат каретки, перевод строки (ВК, ПС) ОН 00 101 — 27 стоп (СТ) ОН 10 111 — 28 111 01 — — 29 комбинации 111 10 —— 30 не воспринимаются 111 00 — — 31 при любом вводе 111 11 — — 32 000 00 — — «стоп» (ст) —о нем говорилось выше; «возврат каретки, перевод строки» (вк, пс)—определяет форму печати выводимой зоны (часто вместо вк, пс пишут пс); «цифровой регистр» (цр)—включает нижний (цифровой) регистр пишущей машинки; «буквенный регистр» (бр) — включает верхний (буквен- ный) регистр пишущей машинки. 32
Заметим, что символ «пробел» (пр) (в цифровом реги- стре) является пропуском одной позиции при печати, а с по- мощью символа «подчеркивание» (пч) производится подчер- кивание очередной позиции и блокируется сдвиг каретки (переход к следующей позиции). Рассмотрим в заключение параграфа пример перфорации информации в виде символов. Пусть мы хотим вывести на печать такой текст: РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ МЕТОД ЭЙЛЕРА Для этого мы должны ввести этот текст в машину, пред- варительно отперфорировав на перфоленте информацию о тексте так, чтобы выводимый текст совпадал с заданным не только по последовательности символов, но и по формату печати. Чтобы печать текста при выводе осуществилась с на- чала строки, самому тексту мы предпошлем такую комбина- цию символов цр пр пр пр пр пс. При выводе этой группы символов пишущая машинка переключится на цифровой ре- гистр, затем передвинет каретку на четыре позиции, ничего не напечатав (символы пр), и вернет ее в крайнее положе- ние (пс). Итак: цр пр пр пр пр пс бр РЕШЕНИЕ цр пр бр ДИ цр’ ФФ бр ЕРЕН цр Ц бр ИАЛЬН цр О бр Г цр О пр У бр РАВНЕНИЯ пс up пр пр пр пр пр пр пр пр бр МЕТ цр О бр Д цр О бр М цр пр Э бр ПЛ ЕРА ст ст ст Так как в таблице 3 нет букв О. Ч. 3, вместо них исполь- зуются одинаковые по написанию цифры 0, 4, 3. Перед каж- дой группой символов, находящихся в разных регистрах, перфорируется соответствующий символ пр, бр. Для соблю- дения формы текста нужно после окончания перфорирования на ленте каждой строки, кроме последней, пробивать сим- вол пс. В нашем примере, чтобы вторая строка заняла сред- нее положение’ под первой строкой, мы после символа пс отперфорнруем некоторое количество символов пр (напри- мер, 8 символов). § в. СОСТАВЛЕНИЕ ПРОСТЕЙШИХ ПРОГРАММ Понятие о масштабировании. Все числа, представимые в машине «Сетунь», должны удовлетворять условию: I х | < 4,5. 3—402 , 6ажч«м\ 33
Следовательно, необходимо предварительно всякую зада- чу, при решении которой могут встретиться числа, выходя- щие из указанных границ, промасштабировать, т. е. так пре- образовать входящие в нее величины, чтобы и (Сами исход- ные значения величин, и промежуточные результаты, и, на- конец, окончательные результаты были представимы в ма- шине. Рассмотрим это на конкретном примере 1. Пусть требует- ся вычислить на машине значение функции у = (х,2х, + xs) х4, если известно, что возможные значения аргументов находят- ся в пределах -С II-С /=1, 2, 3, 4, а значения самой функции при этом удовлетворяют условию 6<|у |<а; результат вычислений запомнить в регистре S, после чего машину остановить. Вводим новые переменные = Г = Ху, /=1,2,3. 4, (4) где X,-. X выбираются обычно из условия 0<Х<<4г- 0<Х<11, /=1, 2, 3, 4. (5) Тогда новые переменные ХД<|Х4|<1,5; Х£<|Г|<1,5. т. е. все новые входные величины и результат будут предста- вимы в машине. Исходная формула при этом преобразуется к виду г = (жх‘,Ха + *’) Х* = + МХ* (б) 7i 71 Подбирая значения X и X, (/ = 1, 2, 3. 4), по-прежнему удовлетворяющие (5), нужно добиться того, чтобы: 1) все промежуточные результаты были представимы в машине; г 2) сами Yi и Y2 были представимы в машине; 34
3) не было большой потери точности (потеря точности возможна, например, если за значения Л принимается неко- 1.5 \ торое число, существенно меньшее . Задача масштабирования очень трудоемкая и сложная. Это усугубляется еще тем, что во многих случаях оценка области изменения самих величин очень затруднена, а гру- бые оценки приводят к большой потере точности. Заметим, кстати, что на точность результата часто влияет и порядок выполнения расчетов. Проделав работу по масштабированию и получив оконча- тельную рабочую расчетную формулу (6), приступим к со- ставлению программы. При этом заметим, что для получения нужного значения у по вычисленному машиной Y, необхо- димо воспользоваться соотношением (4). Составление программы в условных (буквенных) адресах Предварительно всю исходную информацию и команды программы условно размещаем в некоторых ячейках с адре- сами. обозначенными с помощью букв. Пусть у, = (v<), I = I, 2; Xj = (т^), j = 1, 2, 3, 4, а коман- ды программы располагаются в ячейках, начиная с Хо. Ячейки х0, xi и т. д. — короткие, a v< и т),- могут быть как короткими, так и длинными в зависимости от требований точности. Пусть в условиях нашей задачи V,- и rjj — длин- ные ячейки. Вторым шагом является выбор определенной последова- тельности выполнения вычислений (составление логической схемы программы) и запись ее в виде команд в условных адресах. Адреса ячеек. Команды Комментарии Результат выпол- в которых хра- нения команды нятся команды: >130 ( >.) — S (S) = ъ *1 Tji 40 ( тп 40 1 ЕЛСЯ t t 7?сл (S) - Т1Х, (S) = TlX* т|а40 ( ;s) (т„) - s (S) = 7,A-?X, ч,23 ( >») - R (R) = b «S т,з43 ( (T|S) -t-(S) - s >,<) <S) - s (S) — t, A i2A', А; т4 40 ( (S)=Y *7 Адрес без- ' различен 2Х □станов. Окончательным этапом является распределение конкрет- ных ячеек для размещения программы и исходных данных 3* 35
в ЗУ (присвоение буквенным адресам действительных зна- чений). Для размещения команд необходимо 8 коротких ячеек; для размещения у> и X, необходимо 6 длинных ячеек. Предполагая, что числовая информация предварительно пе- реведена в троичную систему счисления, мы можем и про- грамму, и исходную числовую информацию поместить в од- ной зоне. Руководствуясь тем. что начальный ввод осуществляется всегда в зону Фо ОЗУ и выполнение программы начинается с команды, расположенной в ячейке 001, поместим програм- му в последовательные ячейки, начиная с 001, т. е. х0 = = 001, тогда х7 = 013. Числовую информацию можно разме- стить в любых свободных длинных ячейках; например, V1 = 0WW, v2 - 0WZ. )ц = 0W2.....щ = ОХ2. Остальные свободные ячейки заполняются нулями. При записи команд на бланке в адресной части их вместо букв записываются соответствующие действительные адреса. Запись числовой информации в длинные ячейки осуществ- ляется по правилу, указанному в § 2 (запись троичных чи- сел в виде команд). Пример 2. Требуется вычислить значения функции f(x) по одному из трех аналитических выражений в зависи- мости от значения х: Дх) = pxz-\-q, если х<8|, 1х, если < х s,, гх 4- е, если е2 < х, где р, q, I. г, е, et и е2— заданные числа, а х получено ма- шиной и хранится в ячейке ц = 1WX. . Результат нужно запомнить в ячейке 1WY. ч Будем предполагать, что работа по масштабированию уже проделана и что счет достаточно вести по коротким ячейкам из-за слабых требований к точности результата. Разместим исходную информацию: £i = (l‘i). 6« = (th). Р = (vi). V = (h), 1 — (h). r = Ю и е = (v5). Заметим, что обычно удобно информацию одного рода раз- мещать в ячейках, обозначенных одной и той же буквой. Логическая схема программы. Обозначим каждый из воз- можных вариантов вычисления функции, начиная с первого. 36
соответственно буквами Aj, Аг и А3, т. е. А| — счет по фор- муле f (х) = px3+q, Аг — счет по формуле f(x) = lx и А3 — счет по формуле f(x) = rx + е. Машина должна сама опре- делить, по какому из этих вариантов должен производиться счет, для этого в программу необходимо ввести блоки, по- зволяющие осуществить этот выбор. Эти блоки, обозначае- мые обычно буквой Р с различными индексами, называются логическими (в отличие от блоков А,, называемых арифме- тическими). В основе работы логического блока лежит про- верка некоторого условия, в зависимости от выполнения ко- торого осуществляется с помощью команд условной пере- дачи управлелия выбор пути счета в дальнейшем. Пусть логический блок Р] проверяет выполнение условия х — ei <0. Очевидно, при выполнении этого условия (тогда <> = 0 или 1) значение функции нужно вычислять по вариан- ту А|, в противном случае (<о=1), должно быть проверено условие х — ег<0 (блок Рг); при выполнении последнего условия (ю = 0 или 1) необходимо выполнить счет по ва- рианту Аг. в противном случае (о = 1), — по А3. По какому бы варианту не производился счет, результат вычислений должен быть записан в ячейке 1WY, после чего машину нужно остановить — эти простые функции выполнит блок А«. Итак, I---------------------------------х ---------------------- Pi (х — «I < 0) А। (/ (х) = рх* 4- 7); Р2 (х — е3 < 0) Aj (f (х) = = tx); А, (/(х) = rx + е) А< ___________________________t Адреса ячеек, содержащие команды Команды Комментарии т, 30 (t)~S Р,ЗХ *1Т 13 УП - 1 t 1 по адресу х, Результат выполнения команды (S) = х (S) = x-e, Если в результате вы- полнения предыдущей команды окажется « = 1, произойдет передача уп- равления по адресу, со- держащему первую ко- манду блока Р.2 (х.); н противном случае, по- следовательный порядок выполнения команд не нарушится. 37
Ч г. 30 (ч) -» S (S)=-x J *♦ у, 40 (S) (у,) -> S (S)=/u, (R)-x (S)=/>x2 + <7 Ч у,4Х (S) (R) + (у,)S ч *16 БП t 2 по адресу xto Безусловная передача управления по адресу, содержащему первую команду блока Л4(4в)- (ч г. 30 (tj)-S^ 1 (S) = x pt ч В,ЗХ (S)-(4)-S (S) = JC —ег R 4*13 УП — 1 t 3 по адресу Чз По <о = 1 произойдет передача управления по адресу, 'содержащему первую команду блока Л» (4s)- Чо т;30 (Ч) - S (S)(y,)-S (8) = х As 41 V, 40 (S) =. lx, (R) = х 1ч» Че 00 БП t 4 по адресу х|в Безусловная передача управления по адресу, содержащему первую- команду блока Л4(х16). (Чз т.30 (T<)"*S«_| 3 (S) (v4) - S <S) = x Л* ч* у. 40 (S) = rx, (R) = х 1ч& у* 33 (S) + (ч) - S (S) = гх 4- е л. Че 1 WY Y3 (S) - 1 WY«_| 2; 4 ячейка ре- зультата (lWY)=/(x) ч» 1WY2X 2 Останов. В адресной части команды .Останов' можно написать любой адрес, например. 1WY. Программа занимает 18 коротких ячеек; числовая инфор- мация (не считая ячейки, где располагается х, и ячейки для результата, в качестве которых были заданы вполне опреде- ленные ячейки зоны Фр 1WX и IWY) 7 коротких ячеек. Программу, по-прежнему можно разместить в ячейках зоны Фо. начиная с 001, а числовую информацию в любых свобод- ных ячейках этой же зоны; например, щ = 031, цг = 033, V] = 034 и т. д., наконец, Vg = 041. Пусть Вт =0,3; «2=0,9; р = 1,3; <? = 0,3; /=1.499; г = = 1,426; е = 0,9. Переводя в троичную систему еь «г, Р, q, I, г и е, получим: ei = О.ЮТОЮТ; е2 = l.OfOloTO; р = 1,1010101; q = О.ЮГОЮГ; /=1,1111111; г = 1,11 Г1111; е= 1,0 Го 10 10 (перевод осуществляется до получения седьмого трончногст разряда после запятой, так как счет идет по коротким, т. е. 38
9-ти разрядным, ячейкам, а в машине «Сетунь» запятая фик- сирована после второго разряда). Запись на бланке чисел, переведенных в троичную систему, выполняется по прави- лам, сформулированным в § 2. Программа, составленная выше, в действительных адре- сах на типовом бланке представлена в приложении 1. Программы такого типа носят название разветвляющихся программ. § 7. ИТЕРАТИВНЫЕ ПРОЦЕССЫ Рассмотренные программы имеют ту характерную осо- бенность, что каждое действие, которое необходимо выпол- нить в процессе вычислений по заданной формуле, представ- ляется в программе отдельной командой, причем соответст- вие это выполняется и в количественном отношении. Такне программы называются линейными. Изучим организацию программ для задач, решаемых ме- тодом последовательных приближений (методом итераций). В простейшем случае итеративный процесс можно определить следующим образом: пусть дана некоторая функция y=f(x) и начальное приближение х0; итеративный процесс заклю- чается в вычислении по одной и той же формуле л>+1 = = fe = О, I, 2, ..., последующих приближений до тех пор, пока не окажется выполненным некоторое условие (условие окончания процесса). Первое из полученных при- ближений X|, xj....удовлетворяющее этому условию, яв- ляется конечным результатом процесса. Итак, итеративный процесс определяется: 1) итеративной формулой, 2) начальным приближением, 3) условием окончания процесса. Разберем довольно общую схему организации программ итеративных процессов. * Пусть условие окончания процесса определяется сравне- нием двух последовательных приближений х„ и хл+1. Сле- довательно, в памяти машины должны быть отведены две стандартные ячейки: ячейка а — для хранения хп и ячейка 0— для хранения хя+ь В процессе выполнения программы на основании (а) = х„ вырабатывается xn+i и посылается в 0. Затем эти две величины сравниваются и, если условие окончания процесса не удовлетворяется, полученное новое приближение хя+1 из ячейки р пересылается в ячейку а и эта 39 I
группа команд программы повторяется заново, в противном случае, полученное приближение хя+1 считается искомым. Логическая схема программы имеет вид: -----------1 ЗПАР (или: ЗПАРПАРПАР...), где: 3 — блок засылки: подготавливает программу к работе (например, засылает нулевое приближение х<> в ячей- ку Р): П — блок пересылки: пересылает полученное приближе- ние из ячейки р в ячейку а (на место предыдущего приближения); А — арифметический блок: выполняет счет по итератив- ной формуле; Р — логический блок: проверяет условие окончания про- цесса и в зависимости от выполнения этого условия либо передает управление блоку П, либо следующей по порядку команде. Г руппа команд ПАР (многократно повторяющихся команд) носит название цикла, а программы, содержащие циклы, называются циклическими. Замечание I. Иногда условие окончания процесса основывается не на сравнении двух соседних приближений, например, критерием окончания процесса может служить какая-то одна специальная величина, тогда нет необходи- мости в блоке П. Замечание. 2. Итеративные процессы делятся на два класса: 1) итеративные процессы с известным заранее чис- лом итерации и 2) итеративные процессы с числом итераций, заранее неизвестным. Если для задач класса 1) возможно составление линейной программы (для этого достаточно из- вестное число раз повторить цикл), то для задач класса 2) подобная организация программы принципиально невоз- можна. Примеры итеративных процессов с известным заранее числом итераций В этих случаях задается заранее число п итераций, необ- ходимых для получения результата. Логическая схема при Г“1 этом упрощается: ЗАР, где логический блок Р проверяет выполнение п шагов. •Ю
Пример I Вычислить л-ную степень числа х. находяще- гося в ячейке а. Результат запомнить в регистре S. Линейная программа для решения этой задачи имеет сле- дующий вид: *0 а 30 (a) + S (S)=a- *1 а 40 (S)(a)-S (S) = x2 Х2 «40 (S)(a)-S (S) = x’ *л-1 а 40 (S)(«)^S (S) = x" Здесь л—1 раз повторяется одна и та же команда а40. Этого можно избежать, организовав специальный счетчик, который подсчитывал бы, сколько раз выполнялась данная команда. Удобно подобный счетчик организовать с помощью регистра F. Число—(л—1) помещаем в пяти старших разрядах не- которой ячейки Vi, а в 5-м разряде другой ячейки v2 поме- щаем число 1 (это так называемая единица адреса; обозна- чается 1гд в отличие от обычного целого числа 1, которое располагалось бы в ячейке во втором разряде слева; иначе говоря, в ячейку v2 помещаем целое число 1 в масштабе З"3; то же самое необходимо сказать и о числе — (л—1)). Программа имеет вид: • 1 *0 а 30 (a)-S (S) = x О ( xt v, ZO (^)-F (F) = -(«-i)eA A (г**» а 40 (S) (a) -> S (S) = x' + 1 P ( *3 (Lx, Xj v, ZX x2lX любой адрес 2X (F)-hl«?A-*F (F) = — (л - 1)«?A+ ieK УП —1 1 no адресу *3 Здесь при каждом выполнении команды а 40 к содер- жимому регистра F прибавляется 1еА и, пока (F) <0, управ- ление передается на повторное выполнение указанной коман- ды; в противном случае, машина остановится. Следователь- но, команда а40 будет выполняться при значениях (F): — (л—1)ед, — (л—2)ед,..., — 2ед, — 1<?А, т. е. л — 1 раз. Пример 2. Пусть в длинных ячейках ZWW—Z4W на- ходятся некоторые числа. Нужно просуммировать их и сумму поместить в регистр S. 41
Программу можно организовать следующим образом: к содержимому регистра S (предварительно туда нужно по- слать 0) нужно прибавить .содержимое 25-ти длинных ячеек, начиная с ZWW, адреса которых отличаются на ЗеА, При составлении линейной программы пришлось бы 25 раз на- писать команду типа Z\V\V-f-3eAi33, « = 0, 1, 2, ...24. В от- личие от предыдущего примера у этой команды перед каж- дым ее выполнением адресная часть должна изменяться (мо- дифицироваться) на Зел. С помощью регистра F легко осуществить одновременно и подсчет количества исполнений команды и модификацию ее адресной части на ЗеЛ. Для этого к содержимому реги- стра F, куда предварительно заносится — 3• 25еЛ = —75еЛ, нужно после каждого исполнения интересующей нас команды прибавлять по ЗеЛ, а код операции самой команды изменить на I. т. е. вместо 33 написать 32 или 34. что и будет указы- вать на необходимость изменения адресной части команды перед ее исполнением. При этом возникает необходимость в вычислении адрес- ной части модифицируемой команды, что выполняется по разному в зависимости от вида модификации: модификации Ф , когда А* = А + (F) (в нашем примере, если команда будет иметь вид А34), или модификации о, когда А* = = А —F (в примере, если команда будет иметь вил А32). Используем в программе команду А 34. *0 < 0 > 30 0-.S *1 <— 75еА> Z0 — 75c'A->F или в девятирич Х2 А 34 (S) + (A*)->S ной системе *3 <3еч > ZX (F) + 3c?A->F Z1X-+F *4 х, IX УП-1 по адресухо «3 Адрес любой 2х Останов Адрес А находим из того условия, чтобы при первом испол- нении команды А 34 А* = А 4- (F) = А + Z1X = ZWW ZWW —адрес первой ячейки из массива, где располагаются заданные числа. Легко видеть, что в качестве А берется адрес ячейки, следующей за последней ячейкой массива: А = ZWW — ZIX = Z4Z. 42 4
Эта программа может служить примером никла с пере- адресацией. Замечание. В случае цикла с переадресацией органи- зация цикла существенно облегчается наличием регистра F; в предыдущем же примере в качестве счетчика можно было бы использовать любую ячейку памяти, осуществляя добав- ление 1 с помощью регистра S. Пример 3. Вычислить многочлен Рп по схеме Горнера Р„ (х) = Сох" С(х“ 1 4*.. .4- Сл-1Х + Сп = = (... ((Сйх 4- CJx 4- С2) л 4- • • • 4~ Ся—1) х 4~ Сп; результат оставить в регистре S. Пусть Со. Сь...С„ размещены в последовательных длин- ных ячейках. Программа. *0 «1 Х_, *3 «4 «J < х > 23 < Со > 30 <— Зпе. > Z0 < С, > 4Y <3е. >ZX х3 IX х -> R Cn->S — ЗлгА-> F (S)(R)4-C,-S (F_)4-3eA^F УП-1 f по адресу х3 Вычисление ведется по итеративной фор- муле Рк+1(х) рм(х)х4- + Ск+ 1, Ро (х)« Со Условие окончания вычислений: к — 1 п Папомннм, что <р> означает адрес ячейки, содержащей код (число) р. Пример 4. Программа для выполнения операции де- ления. Требуется вычислить где и и о — заданные числа, не превосходящие по абсолютной величине 1,5; предпола- гаем, что и || <1,5. Будем считать, что 0,5<|v| <1,5. так как если -<0,5, то с помощью операции нормали- зации этому условию легко удовлетворить; при этом чтобы величина — не изменилась, необходимо и числитель и сдви- нуть на число, равное по абсолютной величине количеству сдвигов при нормализации, но противоположное по знаку. 43
Выведем формулу для вычисления z = -|- v = 8-|-А, где 5= и, следовательно, |3| = 1 А= (®)ч>. часть и, следовательно, | h | < -±-. v-h* ~ ~ -л«" = 1 + А2 + + •••. откуда г=4- = гп = (3-ЛН,+А2 + А4-ь--) Примем за нулевое приближение Zo обратной величины v ?о = 0 — h) (1 -f- h- 4- а(А‘4- a2h6 4- ajt9), где fli = 1,00074. а2 =• 0,95043 и а3 = 1,51258; при этом г0 = V + А> где 1*1 < КГ4 Последующие уточнения будем получать по итеративной формуле z„+i = zn(2-znv) Оказывается, что одно уточнение по этой формуле дает возможность получить г с ошибкой не более, чем З‘,в; сле- довательно, достаточно одного уточнения. Для получения в машине Л — ft, Л2 и 2 — z^v воспользуем- ся командой поразрядного умножения. 1. (« + *) ® О1.ТТ...Т=8 —А. 16 раз- рядов 2. (8 -|- А) (5 - А) = 1 - Л’; (1 - А2) ® 00.jT.J~ = А3 16 раз- рядов 3. vz0 = v (-L 4- Л ) = 1 4- vA = 1 4- Но, 1 Де | Но I , Н„ = I'V^oJap. часть 44
Тогда v*o ® 01.Т1..Л = 1 - Но = 2 - (I + Н„) = 2 — vz0 Заметим, что А = 01ЛТ... 1 =-у 4-З-16, В = ОО.ТТ...Т= _ 1 I 1 0-16 = -— + —о *о *1 v 30 <0002Х> 10 »3 <t»> YX *» <П.Н...Т>20 *4 71 Y3 *4 <и> 30 «в 7. Y0 «7 <а> Y3 *» <v> 30 <01.11...! >20 *10 7Y3 *и <v> 40 *11 <00.11 ...Т >20 *13 <а»> 40 *14 <a« > 3.3 *15 <e.> 4Х *1в <!> 4Х *1Т <1> 4Х *м 140 *1» TY3 *м <v> 40 *31 <01.П.. 1 >20 *33 (40 *и <и> 40 Программа v - s У П-0 t 1 на останов 1'иорм "* <f >. NHopM -* S NHOpM -* S ^норм "* 71 u — S СДВ. (S) на ((,) - S (S) —♦ <«> v = ? + ft —» S i —ft—»S % — ft —* t (? —ft)(» + ft)-l —ft’—> —»S ft’—*s aji3 —* S. ft’ —♦ R at + «jft; —* S at — («a + e3ft’) ft’ —» S 1 + (a, 4-a h'14 ajft‘)A2 -* —»S 14- 0 4- a,ft’-^a,ft‘ - 4- a3hK) ft’ —» S z0=(«- ft)(l +ft’4- 4- «;Л4 4- a-ft'1 4 e3ft’— S *o—*1 z,,v —» S 2 — z,jV —♦ S z0(2 — z„v) = zt —>S их, = JL —» S v Нормализованное v по- сылается в стандартную ячейку <v>. Изменяется знак на противоположный у чис- ла, определявшего ко- личество сдвигов при нормализации. При v 0 (деление на нуль) предусматривается останов. 1 Здесь у—рабочая ячейка — длинная; в качестве yi (корот- кая ячейка) можно использовать одну из коротких ячеек, составляющих у. Программа занимает 25 коротких ячеек; две длинных от- водятся для кодов А и В. две длинных — для и, v, одна длин- ная используется в качестве у и четыре коротких — для 1, 01, 02 и as. 45
§ 8. СТАНДАРТНЫЕ ПОДПРОГРАММЫ При каждой машине имеется некоторый набор программ, например, для вычисления элементарных функций, для пере- вода чисел из одной системы в другую, которые часто ис- пользуются в качестве составных частей в более сложных программах. Такие программы используются двояко: спо- собом включения в основную программу (при этом нужная программа переписывается в то место основной программы, где появилась в ней необходимость) и методом обращения. В последнем случае стандартные подпрограммы вводятся в закрепленные за ними места ЗУ независимо от основной про- граммы. Программисту достаточно располагать сведениями о том лишь, как обращаться к данной подпрограмме. Схема использования ст. п/п методом обращения Стандартная программа Рис. 13. В ячейке а„ находится первая команда ст. п/п. Ячейка 0—ячейка возврата обеспечивает передачу управления в основную программу после окончания работы ст. п/п. 46
Пусть после выполнения некоторой команды из ячейки х, основной программы понадобилось обратиться к ст. п/п. Обеспечив предварительно возврат из ст. п/п в нужную ячей- ку хк основной программы, в некоторой ячейке xf помещаем команду передачи управления в начало ст. п/п. Возврат осу- ществляется с помощью информации, имеющейся в ячейке 0. Заметим, что любая ст. п/п состоит из двух частей: с одной стороны — команды и, с другой стороны — константы, необ- ходимые для ее работы, рабочие ячейки и т. д.; ячейка В располагается непосредственно после массива ячеек, заня- тых командами. Способы обращения к ст. п/п и организации ст. п/п I. В ст. п/п не используется регистр F. Для обращения к ст. п/п необходимо в основной програм- ме предусмотреть группу команд х0 (с) + Л —> F Х1 БП Т по адресу ап (на выход в ст. п/п) х2 В этом случае в ячейку 0 достаточно поместить код 00001. После выполнения команды из ячейки х0 (F)=xo + A; команда из Х| передает управление в начало ст. п/п. После окончания работы ст. п/п будет выполняться команда из ячейки 0: 00001—безусловная передача управления с пред- варительной модификацией адресной части, т. е. команда хп + А 0 0. В частном случае, когда А = Зел, управление из ст. п/п будет передано в ячейку xj. 11. В ст. п/п используется регистр F. Обращение: »о (С) + ЗгА—*р В стандартной п/п в ячейке ап в этом слу- х, БП Т ап чае должна находиться команда (F) —* 0; х2 следовательно, после ее выполнения в из ст. п п ячейке 0 окажется следующий код: хг00. III. Регистр F нельзя использовать при обращении к ст. п/п: он несет существенную информацию для ст. п/п. 47
Обращение: *о (С) —> а х( БП t а„ «2 В ст. п/п перед ячейкой 0 нужно пре- дусмотреть ячейку, содержащую команду (а) —•F, в ячейке 0 должен содержаться код: 00301. Кроме того, в ст. п/п должна быть выделена ячейка а. Рассмотрим в качестве примера организацию стандарт- ной подпрограммы для операции деления. Будем считать, что п/п деления при се использовании должна располагаться в Фу-. Так как в п/п не используется регистр F, воспользуемся способом 1 ее организации. Пусть первая команда программы находится в ячейке ZWX, тогда последняя — в ячейке ZZ4. В ячейке ZOX (ячейка 0) дол- жен находиться код 00001. Размещение констант по ячейкам видно из приложения 2. Для получения результата деления двух чисел в основной программе перед обращением необхо- димо делимое послать в стандартную ячейку Z12, а дели- тель— в Z2W. Результат окажется в регистре S. Само обращение: «0 (С) + Згд —* F Х| БП р~*|1а ^Х на вход в ст п/п леЛения х, t 1 из ст. п/п § 9 ПРОГРАММА ДЛЯ ВЫЧИСЛЕНИЯ КВАДРАТНОГО КОРНЯ МЕТОДОМ НЬЮТОНА Эта программа интересна с двух точек зрения: 1) как пример итеративного процесса с неизвестным заранее чис- лом итераций и 2) как пример использования ст. п/п. Требуется вычислить на машине х = | р, где 0<р< 1,5 (очевидно, тогда и 0<х< 1,5). Это равносильно задаче определения положительного корня уравнения f(x) = х2— р = 0. Воспользовавшись методом Ньютона, для определения приближенного значе- ния V Р получим итеративную формулу: Ап + 1= х„ _ /(-*л) „ А'л2 ~ Р 77хя) - 2х„ *л , Р 2 + 2ха Взяв за нулевое приближение корня х = 1,5 — 0,5-З-16, мы обеспечим сходимость итеративного процесса для любых значений р из указанной выше области. 48
Итак, итеративный процесс определяется следующими условиями: •*л + 1 = + (-у) :х„ х0 = 1,5 — 0,5-3 ‘б и условием окончания процесса л„-1 — хя| <е, где е —за- данное число. Счет будем вести по длинным ячейкам. Ч <-Ч> 30 -Ч —-»S *1 Y3 Ч <-г> 30 S О Ч <р> 40 *4 *30 10 УП-о_Т 1 Ч z 12 Y3 р * <и> в ст в п деления 1 3 п ^Ч ? 30 (S) —» S (в первый раз ха —* S) ч а Y3 (5)—»а (в первый раз —»а) ч Z2W Y3 (S)—* <v> (в первый раз х>—» <v>) ч < З^ а > Z3 (с) + ЗеА — F *10 ZWX 00 БП на вход в ст п(п деления А 41 <~> 23 * R <_1 из ст п/п деления *13 а 43 хп +1 ~ ~2 (-2~) 1 Хп * *и ? Y3 хя + ]—» fl (в первый раз получим .4) «14 а ЗХ хп +1 хп » S Ч» *17 13 УП-1 *2 Р <-1> 40 -(S)-»S *17 <*> ЗХ 1 Хп + ! — ХП | — » —» S_l 2 Ч& ч 13 yn_j_f з *10 41 00 БП * 4 передача управления блоку Чо Y3 (S) —> [ч 1 П в случае, если условие *31 _ 4 окончания процесса не вы- полнено § 10. ПОДПРОГРАММЫ ПЕРЕВОДА ЧИСЕЛ ИЗ ДЕСЯТИЧНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ТРОИЧНУЮ (10—»3) И НАОБОРОТ (3 —* 10) Рассмотрим в качестве учебных подпрограмм подпрограм- мы перевода чисел из одной системы счисления в другую. 1. Подпрограмма перевода 10— 3. Подпрограмма пред- назначена для перевода в троичную систему десятичных 4—402 49
чисел вида х = ± оц, «газсц, удовлетворяющих условию |х|<1Д На перфоленте каждое из чисел пробивается как после- довательность символов псЛ агаяазсц. При вводе в машину каждая такая комбинация символов будет запоминаться в одной длинной ячейке. Программа перевода осуществляет перевод десятичных чисел, выбираемых из последовательных длинных ячеек массива, и результат перевода засылает в соответствующие короткие ячейки с признаком Лд = 0 на место переводимых чисел. Так как числа указанного вида в целой части содержат либо 0, либо 1, то удобно перевод их осуществлять в два этапа: 1) перевод дробной части числа 0, 020304; 2) выделение целой части переводимого числа и прибавле- ние к результату, полученному на этапе 1. Перевод дробной части осуществляется на основании со- отношения: О, = а, • 10 1+“»Ю 2-|-я,» 10~3, где at. и степени числа 10 представлены в троичной системе. В связи с тем, что в машине «Сетунь» запятая фиксиро- вана после второго разряда, указанное соотношение несколь- ко видоизменяется. Логическая схема программы 10 -* 3. I 7 i I 3 A| Pj А2 Ат Р 3 — блок засылки, обеспечивающий перевод конкретного числа из указанного массива; А| — арифметический блок, обеспечивающий перевод дроб- ной части абсолютной величины числа; Pi—логический блок, проверяющий окончание перевода дробной части абсолютной величины числа; А2 — арифметический блок, обеспечивающий выделение це- лой части переводимого числа и окончание перевода абсолютной величны числа; Аз — арифметический блок, присваивающий переведенному числу соответствующий знак; Р —логический блок, проверяющий окончание перевода чисел заданного массива. 50
При работе ст. п/п должна находиться в зоне Фу. Перед обращением к п/п в основной программе должны быть пред- усмотрены команды, обеспечивающие п/п информацией об адресе первого переводимого числа (для этого в стандарт- ную ячейку п/п Z3X необходимо заслать адрес длинной ячей- ки Ан, расположенной непосредственно перед массивом пере- водимых чисел) и об адресе последнего переводимого числа {для этого в ячейку Z3Y необходимо заслать код — Ак, где Ак—адрес последнего переводимого числа). Обращение к ст. п/п имеет вид: х0 (с) 4- &?д —* F *i БП--------1 по адресу ZWX (вход в п/п) х3 «_1 выход из п/п. 2. Подпрограмма перевода 3 - 10. Она предназначена для перевода массива троичных чи- сел, расположенных в коротких ячейках с Яд = 0 (т. е. через одну ячейку). Переведенные числа будут занимать соответ- ствующие длинные ячейки и представляться в виде комбина- ции символов пс ± а|а2«за.), что соответствует числам ± ui, агазаи (переводимые числа, по-прежнему, по абсолют- ному значению не должны превосходить 1,5). Перевод абсолютной величины троичного числа х в деся- тичную систему (х = а>, (1203(14) осуществляется на основа- нии соотношений: а, =Е[л1 =Гх —4-1 , L * ]бл а, = Е ](л — а,)-10] и т. д- Логическая схема программы I FF I 3 А, Аг Р, А3 Р 3 — блок засылки, обеспечивающий перевод конкретного троичного числа; А| — блок формирования знака; А» —блок перевода абсолютной величины троичного числа; Р2 —логический блок, проверяющий окончание перевода числа; 4‘ 51
Ад — блок пересылки переведенного числа в длинную1 ячейку; Р — блок проверки окончания перевода массива чисел. Как и в случае п/п 10-• 3, перед обращением к 3-* 10 необходимо Au — Z3X и —Ак~* Z3Y. Обращение такое же, что и для 10 -» 3. Подробно логика обеих подпрограмм изложена в прило- жениях 3 и 4. § 11. ИСПОЛЬЗОВАНИЕ МАГНИТНОГО БАРАБАНА (МБ) Рационально использовать МБ по одной из трех схем. Схема I. Если программа длинная, а объем числовой ин- формации невелик (умещается в одной зоне ОЗУ), то удоб- но исходную числовую информацию целиком размещать в одной из зон ОЗУ, а программу последовательно (по мере выполнения) вызывать в одну какую-либо зону ОЗУ: обыч- но Ф| отводится для основной программы, Фо и Ф-, —для числовой информации и ст. п/п. Схема II. Программа невелика по объему (умещается в одной-двух зонах ОЗУ), но большое количество числовой ин- формации. Тогда в одну из зон ОЗУ последовательно вызы- вается числовая информация. Схема 111. Общий случай. Распределение зон ОЗУ: Фо — для числовой информации; Ф1 — для размещения программы и Ф-j—для стандартных констант, рабочих ячеек и т. д. Способы вызова в ОЗУ очередной зоны МБ. 1-й способ Каждая зона программы «окан- товывается» группой команд, указанных на чертеже слева. После окончания работы про- 1 WX |Ф,]->М 1 WY |М'1 — Ф. граммы, вызванной в Ф[ из зоны М МБ, управление передается либо команде из ячейки 1WX (и тогда эта зона переписывает- ся в ту же зону 1МБ, откуда она была вызвана), либо команде из ячейки 1WY, которая вызывает в Ф] зону М' МБ и выполнение 1 WO М 144 БП t по адресу 1WX (1WY) Рис. 14. вновь вызванной части програм- мы начинается с команды, рас- положенной в ячейке 1W0. 52
2-й способ. В некоторой зоне ОЗУ, например в Фо, хра- ним небольшую программу М- F (F) 4- 1еА - F [м +1] -Ф, (F) -> <М> БП t на начало вызванной части программы. При этом должна быть выделена специальная ячейка, в которой будет храниться номер зоны М магнитного ба- рабана, откуда программа вызвана в Ф(. § 12. ПОНЯТИЕ О КОНТРОЛЕ ВВОДА И СЧЕТА Одним из самых распространенных методов контроля вво- да является метод контрольного суммирования (КС). Ввод программы и иной информации осуществляется, как прави- ло, подпрограммой ввода (сама подпрограмма вводится в Фо после нажатия кнопки «начальный пуск» и выполнение ее начинается с команды, расположенной в ячейке 001). По командам этой подпрограммы информация последователь- но вводится обычно в Фь переписывается в соответствующие зоны МБ и считывается вФ( для суммирования (суммирова- ние идет по 9-ти разрядным троичным кодам). Для каждой вводимой зоны имеется заранее подсчитанная контрольная сумма. Критерием правильности ввода зоны является совпа- дение полученной суммы с контрольной суммой. Часть под- программы ввода, выполняющая суммирование, имеет вид: 0—»F (F) —» Е' S' — ячейка, где накапливается результат суммирования. (F)-8UA -*FJ 3 at —> S, J 1 Skc — заранее подсчитанная КС Сдв. (S) на 9—»S (S) + (S')^S (S) — S' (F) + 3eA —* F УП_Г_ 53
УГЪ1Т_* 2 1<?А ->F БП—t3 (S)-Skc—S УП „—t на ввод следующей зоны или на окончание ввода останов в случае несовпадения (S') и Skc . Контроль счета осуществляется либо повторным просче- том всей задачи с начала до конца и сравнением результа- тов обоих просчетов, либо методом двойного счета, когда за- дача разбивается на отдельные этапы, каждый из которых просчитывается машиной дважды и автоматически сравни- ваются результаты; в случае совпадения их машина пере- ходит к выполнению следующего этапа вычислений, в про- тивном случае, останов. § 13. СОСТАВЛЕНИЕ ПРОГРАММЫ В ЦЕЛОМ Проследим все этапы составления программы в целом на конкретном примере. При этом, чтобы не отвлекаться от основной цели, мы не будем рассматривать здесь вопрос целесообразности применения того или иного метода и во- прос оценки погрешностей. Дано дифференциальное уравнение г' = 2xz- — 2л2. (7) Требуется найти численные решения z(x) этого уравне- ния в промежутке 0<х <1 для некоторого набора началь- ных условий вида: при х = Хо = 0, z(0) = z0, где z0 — задан- ные числовые значения из области: 1 1 - — г о 4 Значения каждого решения zft = z(x*), й=1, 2, . . 10, вычислить в точках Х|=0,1; х2 = 0,2; х3 = 0,3; . . х9 = 0,9; Хю = 1,0. Для решения поставленной задачи применить метод Эйлера с постоянным шагом h = 0,001. 54
Тогда формулы для определения числовых значений ре- шения в применении к (7) будут иметь вид: Zi+i = zJ 4- А (2х,г,2 -Ь 2х42), (8) х1 +1 = х, 4- h, I = 0, 1, 2. 999. Определение области изменения переменных. Переменная х, по условию, не выходит из промежутка [0,1]. Определяем область изменения z(x), для чего построим два дифференциальных уравнения, решение одного из кото- рых будет больше, а другого — меньше соответствующих значений решения уравнения (7) (при одних и тех же на- чальных условиях) 2х2 < z' = 2xz2 + 2х2 < 2xz2 4- 2х. Решение уравнения v' = 2х2, удовлетворяющее начальным условиям: при х = х0 = 0, 2 Оо = г0 — есть v (х) = ~3~ Xs 4- г0. Решение уравнения и = 2хи2 + 2х, удовлетворяющее тем же начальным условиям, есть и = tg(x2 4- arctgz0). Следовательно, + г0 < z (х) < tg (хг 4- arctg г0), Откуда —0,25 < г (х) <3. Промасштабируем (8) так, чтобы все по абсолютной величине не превосходили 1,5, так как подпрограмма 3*10 рассчитана на перевод только тех чисел, которые удовлет- воряют этому условию. Введем новую переменную у с помощью соотношения г = 2у; ясно, что —0,125 <у<^ 1,5, а формула (8) преобра- зуется к виду: У/ + 1 = У/ + А (4х1у/4-х/) где Л = 0,001. При счете по полученной формуле выберем некоторую определенную последовательность выполнения операций та- ким образом, чтобы при этом не получить переполнение и не уменьшить точность результатов вычислений. 55
Последнюю формулу преобразуем к окончательному виду: у< + 1 = у. 4- 0,01 (0,4у/ + 0,1-xJ JCt, i = 0, 1, 2,... 999 (9) На основании этой формулы и соотношения л-<+1 = X, + 0,001 (10) составим программу для определения хА, Ук- Чтобы затем по- лучить z*. нужно вычисленные машиной уь умножить на 2. Итак, требуется составить программу по формулам <9), (10), для вычисления значений Ук = У(хь). где хк = 0; 0,1; 0,2;... 0,9; 1,0; результаты счета выдавать на печать двумя столбцами, озаглавив каждый из них соответственно буква- ми X и Y; всем результатам предпослать заголовок: Решение уравнения у = 4х«/2 + х2 методом Эйлера точн до третьего знака после зап перв строка — нач усл Логическая схема программы А[ Ап 3] 3> Aj Pj A, Рj Aj — -т пуск t_____________________________I • Ai — ввод программы с контролем и печать заголовка «Ре- шение уравнения и т. д.»; А2 —ввод начальных условий х0 и у0 в Фи с переводом из 10 ~-3; 3|—подготовка цикла для вычисления ук и записи хА, уц в Фо; 32— подготовка цикла для выполнения 100 шагов вычисле- ний по (9), (10); Аз —счет по формулам (9), (10); Pi — проверка условия выполнения 100 шагов вычислений по (9), (10); А< —запись очередной полученной пары значений хА, ук в Фо; Р2 — проверка условия окончания счета; А5 — перевод полученных хА, у* 3 -» 10, печать результатов; 12 —останов. После нажатия кнопки «пуск» на наклонной панели пульта управления (см. рис. 21) должен осуществиться пе- 56
реход на вычисление у к при других начальных условиях {передача управления блоку А2) Ввод заголовка и начальных условий будем осуществлять с фототрансмиттера № 2, для чего на отдельной перфоленте нужно отперфорировать заголовок, следуя правилам § 5, и пары начальных условии в форме пс ± 01020304; после каж- дой такой информации необходимо пробить символ «ст» в конце короткой ячейки для управления окончанием ввода неполных зон. Распределение памяти: программа и стандартные под- программы после выполнения А| будут находиться в некото- рых зонах МБ; в процессе работы в Ф| последовательно бу- дет вызываться программа с МБ, в Ф- — стандартные под- программы перевода, а в Фо — накапливаться результаты вычислений xh, yh, начиная с первых ячеек: (OWW)-jt,, (OWZ) = y0, (0W2)=x,. (OXW)=y, и т. д. Начнем составление программы с блока А». Будем счи- тать, что выделены две стандартные ячейки < х,- >ст и <£Л>ст. в которые первоначально засылаются Хо и уа; на основании содержимого этих ячеек блок Аз получает на сле- дующем шаге значения Х<, у, и посылает их на место преды- дущих в эти же ячейки. < У1 > ст 30 Yi-oS *1 < У/ > ст 40 y?-»s *3 < 0.4 > 40 0,4-y,s —»S *3 < X/ > ст 23 xt —» R *4 <0,1 > 43 O.lxi 4- 0,4y, ’ —» S *s < 0,01 > 40 0,01 (S) —» S < Х{ > ст 23 X,- —> R ч < У1 > ст 4Х У* + (S) x( —> S < У1 > ст Y3 У/ + 1 —• <У1> ст «в < X/ > ст 30 X/ —» S *|0 < 0.001 > аз xt + 0,001 —* S *11 < Xi > ст Y3 X/+ t » <X/> CT Очевидно, после каждых 100 вычислений по формулам (9), (10) в <х(>ст и <t/i>ст будут находиться результаты, которые нужно пересылать в соответствующие ячейки Фп для выдачи на печать; таких пересылок должно быть 10 (хь у}\ Хг, У2\...\ Хю, у\о). Вычисление по формулам (9) и (10) организуется с помощью блоков 32 и Pi, пересылка — с по- мощью 3| и Р2. I---1 Внутренний цикл (32 Аа PJ использует в качестве счет- чика числа шагов некоторую ячейку у, куда перед началом 57
вычисления новой пары х*, уь засылается—100 -З '; после- довательное прибавление 1-3*3 к (у) всякий раз после про- ведения вычислений по (9), (10) до получения нуля в у даёт возможность необходимое число раз (100 раз) выполнить нужные ( *и Pl *13 I *14 вычисления. <—100-З~3> t <1-3“3> *-1 30 _ ЮО-З-3—+S«-|2 Y3 (S)->7 ♦.!« 30 (y)-»S 33 (S)+ ьз-3—»S IX уп-Г— t* Внешний цикл, организуемый с помощью 3i и Р2, выпол- няет 10 пересылок xk, уь в соответствующие ячейки; для управления циклом используется регистр F, так как здесь помимо счета количества пересылок необходимо обеспечить модификацию адресной части посылочных команд. Адреса соседних длинных ячеек для Хд и для ук (они располагаются через одну длинную ячейку) отличаются на бед, следова- тельно: *-7 *-6 <Х0> <ЛГ/ > ст 30 Y3 х<> —>S (S)—» <х{> ст Первоначальная засылка х0, у0 и 3t *—5 <Уо> 30 у о—>S <Xi> ст И <У1>СТ *-4 <У1> ст Y3 (S)—> <yi> ст *-3 < — 60еА 5 Z0 -60еА-»Р *15 <Xt> ст 30 хк > S *1в <хк> Y 4 (S) —» <дгк>® п *17 <у/> ст 30 Ук * S - *2 *1» <У«> Y 4 (S) —♦ <Ук>® *1В <6е, > ZX (F) + 6сА -» F *20 *-2 IX УП-Т I2 *-15 ООХ хо х0. Уо —* Фо С фототрансмнттера *-14 2М 10 _» з XX |М10^з1-^Фг № 2 *-13 <АН> 30 Лн—S *12 Z3X Y3 (S)—*Z3X А» *-11 <— А,с> 30 — Ак » S *—10 Z3Y Y3 (S) S 3 Y *-9 <ЗгА> Z3 (С) + ЗеА -» F *—8 ZWX 00 БП t на п.п 10—>3 В результате работы рассмотренной части программы в зоне Ф« будет записано 11 пар значений х». ун, k— 5в
=0,1,2,10; после перевода их в десятичную систему они будут храниться в тех же ячейках в виде «А=0 тс * = 1 длинные ячейки хк ПС ± я3 7, Рис. 15 Ук ПС ± а/ | а3' я/ о/ Рис. 16 Чтобы вывод на печать можно было осуществить в два столбца, нужно во всех ячейках, содержащих yh символ пс заменить каким-либо другим, например, символом «пр» (1___1). Это легко сделать, умножив поразрядно коды из пер- вых половин указанных ячеек (короткие ячейки с яд — 0) на троичный код 000111111 (девятиричный: 00444) и прибавив к результатам комбинацию символов _____ I 00. В результате, содержимое указанных ячеек примет вид Ук I I ± »i' “а' «з' »«' Рис. 17 Так как у д* максимальное число цифр после запятой равно единице, с помощью такого же типа преобразовании заменим адсц на I___' I__. Окончательно, ПС ± а, з, I I I Рис. 18 На бумажном рулоне при выводе результатов пары Уь будут напечатаны следующим образом: ± ai »а ± ei* “а* »з' в/, что означает: ± “I, “а ± “а' «*' 59
Чтобы над первым столбцом было напечатано X, а над вторым —Y, необходимо в программе заготовить набор сим- волов: ( ЦР1 I 1—1 1 I 1—1 ПС —I 1—1 —I 1—1 1—1 ПС । 1—1 1—1 X 1—1 1—1 1—1 1—1 1—11—1 у 1—1 1—1 ПС I—1 I—h 1—1 1—1 СТ Подчеркнутая группа символов нужна для получения при пе- чати интервала между отдельными выдачами. Чтобы при выводе на печать не напечаталось ничего, кро- ме одиннадцати пар л*, нужно в конец выводимых чисел поместить группу символов ;____> !___ ст. Итак, блок As: [Мз-»101 — ФГ Ан—»S (S)—»Z3X — Ак —* S (S) —♦ Z3Y (С)+3»А—F БП____f на п/п 3—^10 — 6б,*Л —» F ,_I из п/п 3 —>10 х«(«л= 1)—*S «_1 4 (S)® 14000—»S (S) + 0|_I |_J —»s (S) — Ук(«А - в) —*S (S)® 00444 —>-S (S) + |—loo^s (S) — <y«>®A_0 (F) + 6cA—F УП_Т _t4 ___I I_i CT —> S (S) —* в конец массива выводимых чисел Заголовок (X, Y) —» на печать (в виде символов) [Фо] —» на печать (печать результатов) 2 останов БП___f на счет другого варианта (блок Аа) 60
Так как группы символов мы будем вводить в те же зоны, что и программу (вместе с программой), то их нужно будет записать на бланке в виде команд. Например, группа символов I__I I _ ст должна быть введена в короткую ячей- ку ЗУ и храниться там в виде троичного кода 101101 ТТ 1 (смотри таблицу 3); для этого достаточно в эту короткую ячейку ввести в виде команд девятиричный код 1132W. Программа, за исключением блока А|, составлена. Пер- вую ее часть (блоки от А2 до Р2) разместим в одной зоне МБ (зоне Mi = IY), а вторую ее часть (Л5) —в другой зоне М2 = 1Z. Следуя § 11, каждую из частей заключим между соответствующими командами, обеспечивающими автомати- ческий выбор нужной зоны на Фь За <х^>ст и <{/ь>ст приняты свободные ячейки зоны Фа: соответственно 032 и 04 W. Размещение самих команд и констант по ячейкам зндно из прилагаемой программы (приложение 5) в действи- тельных адресах. Предполагается, что подпрограммы 10 -»3 , и 3 -* 10, данные ранее, размещаются в зонах соответствен- но 1W и IX МБ. Что касается блока Aj, то это стандартная подпрограмма ввода, функции которой заключаются а размещении основ- ной программы в соответствующие зоны МБ и в контроле правильности ввода. Изменения внесены в ячейки 0Z4 — 0 00: 0Z4 Z0XX0 Заголовок (.Решение дифф, уравнения и т. д.")—*Фу с ФТ № 2 00Х ZZ0X0 (Ф| | —» на печать (в виде символов) — Печать заголовка 00Y 11YXX [IY] —> Ф1 вызов первой части основной программы в ф( 000 1YXOO БП____f ° на начало основной программы (блоку Аа). § 14. ПОНЯТИЕ О ЧИСЛАХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ Рассмотрим какое-нибудь троичное число, например, х= 1011,101. Его можно представить в самых различных формах: х = 1011,101 =0,101Г101 -3* = 101110100-3-5— = 1,оТГю1 -з:1 л т. д. Вообще, любое троичное число х,- бесчисленным множе- ством способов можно представить в виде xl = Xi3Pj‘t (11> 61
Если при этом на X, наложить некоторые ограничения, на пример, чтобы 0,5 < | X,) < 1,5 при xt =£ О, (12) то такое представление (11) будет единственно. X,- называется мантиссой числа х<, а РЛ/ — порядком х,. Положение запятой в числе х< меняется с изменением вели- чины Р^, т. е. запятая «плавает», поэтому числа, представ- ленные в таком виде носят название чисел с плавающей за- пятой. Заметим, что от числа с фиксированной запятой с по- мощью операции нормализации легко перейти к числу с пла- вающей запятой. Существуют машины, выполняющие операции над числа- ми с плавающей запятой (машины с плавающей запятой)- Однако и на машинах с фиксированной запятой можно осу- . ществлять арифметические операции над такими числами, но только по специальным подпрограммам; при этом ариф- метические операции выполняются отдельно над мантиссами и отдельно над порядками перерабатываемых чисел, в отли- чие от выполнения таковых в машинах с плавающей запятой. В машине «Сетунь» числа Xj с плавающей запятой обыч- но размещаются следующим образом: мантисса Xi поме- шается в длинной ячейке как 18-ти разрядное троичное число с фиксированной запятой, а порядок Рх.— в пяти старших разрядах следующей за ней короткой ячейки (Р.Г/ рассмат- ривается как целое число). Рассмотрим схему работы с числами в системе плаваю- щей запятой на примере операции умножения. Даны два числа X| = X|-3₽jri и х2 = Х2*3 •*’в системе плавающей за- пятой. Требуется найти их произведение у = х.х, - Х1Х,-3'Ж1+'Х» = Y - 3₽' Для получения результата умножения нужно отдельно вычислить мантиссу произведения Y и отдельно — порядок произведения pv, причем мантисса Y должна удовлетворять (12). «2
•*<> <Х,> 30 Xt-^S xl <х,> •10 Х,Х, — S <У> YX ($)морм * < Y > <РХ> 33 Мнорм * S (S)4-pA-^S Х4 <Рх> 33 (S)+Z>.i4~*s *s <Ру> Y3 (S) —► <Ру > Несмотря на то, что мантис- сы X] и Ха удовлетворяют (12), их произведение может этому условию не удовлетворять. Для того, чтобы и Х| X, удов- летворяло (12), используем операцию нормализации ' и одновременно вносим коррек- тировку в порядок Ру на NMopM. Таким образом, на машинах с фиксированной запятой при работе с числами в системе плавающей запятой вместо одной команды умножения приходится использовать целую группу команд. То же относится и к остальным арифме- тическим операциям. Обычно эти группы команд либо пере- писываются в нужные места программы (столько раз, сколь- ко это необходимо), либо оформляются в виде стандартных подпрограмм и используются методом обращения. § 15. ИНТЕРПРЕТИРУЮЩИЕ СИСТЕМЫ Для обслуживания широкого круга вычислительных за- дач, решаемых на машине «Сетунь», разработано несколь- ко интерпретирующих систем [1], [2], [3], [4], [5], [6], [7]. В этом параграфе будет дана краткая характеристика интерпретирующей системы с ИП-2, подробно изложенной в [1], [2]. Интерпретирующая система предназначена для автомати- зации обмена информацией между МБ и ОЗУ, для введения плавающей запятой и для использования некоторого набора стандартных подпрограмм. .МБ рассматривается как опера- тивная память. Для указания расположения кодов в ЗУ вводятся обоб- щенные адреса, имеющие следующую структуру: Ду = кф/Л!Д., где л ф/ —одноразрядный троичный код, а М, и —четырех- разрядные. Как правило, либо Mj = 0, тогда ячейка с адре- сом Aj находится в зоне «фу куба и имеет номер Aj либо М, -А 0, но ~ф/0, тогда ячейка Aj находится в зоне М; МБ и имеет номер Aj. 63
Распределение памяти: Фо — служит местом, куда считывается с МБ информация, необходимая в процессе выполнения программы, или стандартные подпрограммы, используемые основной программой; Ф|—зона, предназначенная для считывания с МБ очеред- ной зоны основной программы; Ф,— зона, предназначенная для размещения ИП-2. Интерпретирующая система строится на основе ИП-2, вы- полняющей следующие функции: 1) "реализацию обращения к стандартным подпрограм- мам. в частности, пересылку информации с одного места на другое; 2) реализацию передачи управления по обобщенному адресу (команде.-находящейся на МБ); 3) организацию перехода от одной зоны программы к дру- гой при выполнении линейных кусков программы. ИП-2 состоит из двух зон и размещается на МБ в зонах 1W и IX Стандартные подпрограммы для выполнения ариф- метических действий с плавающей запятой и вычисления эле- ментарных функций (см. таблицу 3) располагаются в зонах IY—13 МБ. Стандартные подпрограммы перевода 10 — 3 и 3 — 10 за- нимают зоны МБ от 4Z по 44. Таблица 3 №№ п. п. Название стан- дартной подпро- граммы Обобщен- ный адрес ячейки входа Содержание ] Сложение 01YX3 («) + (о) —и; норм (о)— 2 Вычитание 01 УХУ («) — (»)—» и; —норм (v) —» v 3 Вычитание модулей O1Y23 ,(и)| —|(t')| - и;—норм (v)| - v 4 Обратное сложение 01YW3 —(и)—(о)—♦«;— норм (v)—»v 5 Обратное вычитание 01YWX — (и)4-(о)—»и; норм (v)—»v 6 Умножение 01ZWO (и) х (v) —* и; норм (и) —» и 7 Деление 01ZW3 (u)j(v)—♦ и; норм 1/(и)—»о 8 Извлечение квадрат- кого корня 010WY Г (и)—>«; 1/1 («)—»v 9 Синус 011W3 sin (и) —> и 10 Косинус 011W0 cos («) —» и 11 Экспонента 012Z3 ехр(и) —> и 12 Натуральный лога- - рифм 013WX In (и) —> и 64
Замечание: В ИП-2 имеются две стандартные ячейки и и V, с содержимым которых и работают подпрограммы, перечисленные в таблице 3; норм (ц) -* v означает: содер- жимое ячейки v нормализуется и засылается в эту же ячейку. Обращение к 10 -»3 имеет следующий вид: *0 *3 *5 ZY3 Z3 (С)н-3<>А —»F ZWY 00 БП_Т на ВХ VI ИП-2 04Z WY Обобщенный адрес ячейки входа в 10—>3. 0Л11Д1 Обобщенный адрес ячейки первого переведенного числа. 6л п — количество переводимых чисел «_I из п п 10 —* 3 Программа 10-» 3 вводит числа с фототрансмиттера № 2, переводит их в троичную систему и записывает сплошным массивом в системе плавающей запятой, начиная с ячейки ОМ|Дн 6П записывается в короткую ячейку, начиная с млад- ших разрядов, как целое девятиричное число (на бланке). Десятичные числа пробиваются на перфоленте зонами (по 13 чисел) в символах в следующем виде: пс I_I ± А|А2АзА4А5А6 ± B]B2. где А;, В; — символы, обозначающие десятичные цифры. Эта запись соответствует числу ± О, А1А2АзА4А5А6- 10±B'Rj Обращение к 3 -* 10 имеет ту же структуру: «1 ъ *4 «» ZY3 Z3 (С) - 3<А—»F ZWY 00 БП_____t на ВХ VI ИП—2 042 Z4 Обобщенный адрес ячейки входа в 3—>10 ОМ,А, Обобщенный адрес первого переводимого числа. бя я — количество переводимых чисел. ,_| из 3 —» 10. Программа предназначена для перевода в десятичную систему сплошного массива троичных чисел в системе пла- вающей запятой, расположенных на МБ в ячейках, начиная с OMiAt (обобщенный адрес указан в обращении к 3 — 10). Перевод осуществляется группами по 12 чисел с выдачей на пишущую машинку (в один столбец). Каждое число печа- тается в виде ± А|А2АзА4А5А6 ± BiB2, что означает: ± О, А|А2АзАчА5Аб- 10±в,в‘ 5-402 65
Для ознакомления со способами обращения к стандарт- ным подпрограммам из таблицы 3 и работой ИП-2 при тех или иных обращениях рекомендуется изучить работы [1]. [2]. § 16. ОПРЕДЕЛЕНИЕ ЧИСЛА СТУПЕНЕЙ МАССООБМЕНА В РЕКТИФИКАЦИОННОМ АППАРАТЕ В качестве примера использования ИП-2 при решении за- дач на машине рассмотрим задачу определения числа сту- пеней ректификации для жидких смесей. Постановка этой задачи и вывод расчетных формул изложены в работе [13] Заданы: Д' 1) уравнение равновесной кривой у = к~+ ; 2) уравнение рабочих линий над и под местом ввода ис- ходной жидкой смеси у = т^х + где /= 1,2; 3) числовые значения величин dp и i = 1,2; Требуется, определив корни г*/1, ^2°, * = 1»2, уравнений 63 + ( - jfcj/n10 + k2b{l> — 1)0 + Aj/n*" = 0, i =- 1,2, вычислить число ступеней массообмена в ректификационном аппарате по формуле: 4°—(d^ 4- + feQ + гр (dp - 4°) 111 (е^кл ч- *,) + 4°) при различных значениях величин k2, dp, ти\ b< , ef\ i = 1,2. Для определения корней и г1:' воспользуемся фор- мулами: r\l)l = -L(kimw-k,bw+ 1)± ± у [-1-(м(0-м‘0+1)]2-м^ 66
Перед каждой выдачей результатов и'1 и л1*'1 требуется печатать заголовок: УРАВНЕНИЕ РАВНОВЕСНОЙ КРИВОЙ У - УРАВНЕНИЕ РАБОЧИХ ЛИНИИ у = ж(1|л + М” у = тт'х + Ьт ЧИСЛО СТУПЕНЕЙ РЕКТИФИКАЦИИ РАВНО СООТВЕТСТВЕННО Заметим, что, если в этом заголовке нет необходимости, легко в программу внести небольшие изменения, чтобы пе- чати заголовка не было (об этом будет сказано позднее). Исходные данные пробиваются на перфоленте в системе плавающей запятой в том порядке, в котором они записаны на бланке (см. стр. 102). Для формирования заголовка необ- ходимы числа ky, k2, т{" и Ь':‘, (=1,2. Они пробивают- ся отдельными зонами (перед соответствующими зонами ис- ходных данных) как шестиразрядные десятичные числа (считая и разряд до запятой) в том виде, в каком задаются; символ знака не используется (так как они всегда больше нуля); запятая подразумевается; порядок указан на стр. 100. Для примера здесь заданы конкретные числовые значения: k, = 0,41; Л, = 0,59, Л1(,) = 0,75; Ьт = 0,249; тт = 1,3773; Ьт = 0,001886; dp = 0,4; е{? = 0,995; 4”= 0,005. Вся эта информация вводится со второго фототрансмит- тера. Заголовок занимает две зоны МБ 4Х и 4Y и проби- вается в конце программы (вводится с фототрансмиттера № 1). Числовая информация нужна для формирования вто- рой части заголовка (стр. 98); программным путем значения т*0, Ь‘" засылаются на свои места, а затем заголовок выдается на печать. Программа занимает пять зон МБ (с зо- ны 2W до зоны 20); зона ввода на МБ не запоминается, так как ее функции заканчиваются с началом работы основ- ной программы. 5* 67
Логическая схема программы A! A, As А( 3 As Р А6 2- „пуск* Ai — ввод программы с контролем; Aj—ввод заголовка; Аз— ввод констант, необходимых для формирования заголов- ка, печать заголовка; А4 — ввод исходных данных с переводом; 3 —подготовка цикла для вычисления n(j), i— 1, 2; As —счет по формулам, указанным выше, получение п‘ ; Р — проверка конца счета; Ав — перевод и выдача на печать п(,); Q — останов. Если после останова нажать кнопку «пуск*, управление будет передано блоку Аз для просчета нового варианта. Если нет надобности в выдаче на печать заголовка, в программе ввода в ячейке OY4 вместо обобщенного адреса 02WWX уледует написать обобщенный адрес 02W03, этот же адрес следует написать в программе, расположенной в зоне 20 МБ в ячейках с обобщенным адресом 0 20 20. В этом случае на ленте исходных данных не нужно про- бивать дополнительные зоны констант (стр. 100). Заметим, что зона ввода кроме выполнения основных своих функций подготавливает ИП-2 к работе; это обеспечивает группа команд: 0У У 11WXX 1W] —* Ф, ОУО Z1XXX IX]—Ф, 0У1 ZV3Z3 [C)-f-3e. — F ОУЗ zwyoo БП t на BxVi ИИ— 2 0У4 02WWX Начало основной программы Так как в ячейке Mi зоны переходов ИП-2 первоначально находится номер 1W, то при обобщенном переходе на начало программы содержимое Фьгде в это время находится зона переходов, перепишется в зону МБ с номером 1W, т. е. на свое место, а в Ф| вызовется программа из 2W. Заметим, что рабочие ячейки для хранения промежуточ- ных результатов мы выбрали в той же зоне 4W, где хранят- ся н исходные данные; окончательные результаты n(>, i = = 1,2, размещаются в зоне 34 магнитного барабана. 6#
Итак, программа (с заголовком или без него) и исход- ные данные (с дополнительными зонами констант для за- головка или без них) пробиваются на отдельных перфолен- тах. Первая ставится на фототрансмиттер № 1, вторая — на фототрансмиттер № 2. После нажатия кнопки «начальный пуск» зона ввода считывается в Фо и*первой исполняется команда, находящаяся в ячейке 001; зона ввода размещает программу в соответствующих -зонах МБ и передает управле- ние основной программе, которая вычисляет и, напеча- тав их, останавливается. Для счета следующего варианта достаточно нажать кнопку «пуск». Замечание: Перед вводом программы нужно предва- рительно ввести ИП-2 с необходимыми подпрограммами. 69
Задача- Приложение 1 Зона МБ---------- Адреса ПФ=0 Команда Комментарии Адреса ПФ=0 Команда Комментарии WW WX 0 00 00 02 03 0 31 ЗХ х— е, —*S WY 0 00 00 04 0 13 13 УП —1 WZ W0 0 00 00 1W IX 1 WX 30 х—»S W1 01 00 00 1Y 0 34 40 рх —*S, х—>R W2 W3 0 00 00 1Z 10 0 4Х 4Х />х«-г$—»S{ (S) f(x) W4 0 00 00 11 0 3Y 00 БП j2 XW XX 0 00 00 12 13 1 WX 30 x —»S«_11 XY 0 00 00 14 0 33 ЗХ x — tt —»S XZ хо 0 00 (X) 2W 1 2Х 0 23 13 УП —1 t3 .XI 0 00 00 2Y 1 WX 30 x—»S Х2 хз 0 00 00 2Z 20 0 4Y 40 lx—>S, x —R (S) •= / (x) Х4 0 00 00 21 0 3Y 00 БП—М YW YX 0 00 00 22 23 1 WX 30 X—>S«_I3 YY 0 00 00 24 0 40 40 rx —♦ S x —» R • YZ Y0 0 00 00 3W ЗХ 0 41 33 rx+e—>S (S) /(x) Y1 0 00 00 3Y 1 WY Y3 /(X)—»1WY<_|2, 4 Y2 Y3 0 00 00 3Z 30 1 WY 2Х 2 Y4 0 00 00 31 0 1Z 1Z s, 0.3 ZW ZX 0 00 00 32 33 0 ЗХ ЗХ «» = 0,9 ZY 0 00 00 34 0 4Z IZ [/’=1.3 ZZ Z0 0 00 00 4W 4Х 0 1Z 1Z }<?=0.3 Z1 0 00 00 4Y 0 44 44 / = 1.499 Z2 Z3 0 00 оо 4Z 40 0 42 44 Jr = 1,426 Z4 0 00 00 41 0 ЗХ ЗХ e = 0,9 0W ОХ 0 00 00 42 43 0 00 00 0Y 0 00 00 44 0 00 00 0Z 00 0 00 00 КС 01 1 WX 30 х—>S 196 г. Подпись
Й Приложение 2 Задача Зона МБ Адреса ПФ Z Команда Комментарии Адр ПФ eca =Z Команда Комментарии WW WX Z 2W 30 V—>S 02 03 0 3Z X0 a3= 0,95043 WY Z 0Y 10 УП-0_Т» 04 1 WW zw a3 = 1,51253 WZ W0 1 2 IF YX \гнорм —* < V > NHopM —» S 1W IX » zw WW |oo.TL.T=—у + у-з 16 W1 г 1Y 20 Нцорм ~8 1Y z WW WW W2 W3 Z 20 Y3 ^норм * Ti 1Z 10 0 2W WW joi.n..T= 2 +4 • 3-16 W4 Z 12 30 и —+ з 11 z WW WW XW XX Z 20 Y0 Сдв. (S) на (тО—*S 12 13 1 L XY Z 12 Y3 (S) —» <U> 14 XZ ХО Z 2W 30 6 4- Л —♦ S 2W 2X b XI Z 1Z 20 8 — h —>S 2Y Х2 хз Z 2Z Y3 8 — Л—>7 2Z 20 b Х4 Z 2W 40 1 _ in _» s 21 YW YX Z 1W 20 ft2—»S 22 23 0 00 00 | Свободные ячейки YY Z 01 40 a,ft» —» S ft2 —» R 24 0 00 00 T YZ Y0 z 03 33 a* 4* —> S 3W ЗХ 0 00 00 Свободные ячейки Yl z 01 4X a, + a-Ji3 4" вцЛ* —* S 3Y 0 00 00 Y2 Y3 z 00 4X 1 afh2 -f- aaft‘ 4- ash6 —♦ S 3Z 30 0 00 00 Y4 z 00 4X 14-ft2 j «(Л1 t а2Лс4_йзЛ‘< -» S 31 0 00 00 ZW ZX z 2Z 40 г0—* S 32 33 0 00 00 ZY z 2Z Y3 «о—*7 31 0 00 00 ZZ ZO z 2W 40 Vz0—»S 4W 4X 0 00 00 Z1 z 1Z 20 tsD 1 < oN 1 4Y 0 00 00 Z2 Z3 z 2Z 40 —»s 4Z 40 0 00 oo Z4 z 12 40 4-s 11 0 00 (KI OW OX 0 00 01 выход 42 43 0 00 00 0Y 0 00 2X Q (деление на 0) 44 0 00 00 OZ 00 0 30 00 п КС 01 0 30 02 a, = 1,00074 196 г. Подпись.
у Приложение 3 Задача Зона МБ Адреса ПФ Z Команда Комментарии Адреса ПФ 7 Команда Комментарии WW WX Z 24 ОХ (F)—>Z24 1 02 03 Z 33 YO Сдв. (S) 3 —>S WY i 40 23 -пг-*-16 04 Z 4Y 20 (S) ® 27eA —> S WZ W0 Z зх Z0 А,—»F 1W IX z 13 13 УП - 1 p W1 Z 4Х 30 S IY z 41 40 (S)(A)—»S W2 W3 Z 43 Y3 (S) -» ft, 1Z 10 z 14 00 БП f « W4 Z 30 Y0 о—»s 11 0 00 00 Свободная ячейка XW XX Z 41 Y3 (S) —» А 12 13 z 41 30 (A)—*S«_I 3 XY 0 аз 31 (At)-*S«_I2 14 0 03 Y4 (S) -> Ai «_! « XZ хо Z 43 Y0 Сдв, (S) на ft[ —» S 2W 2X z 33 ZX (F)+3eA —♦ F XI Z 30 20 (S) ® a—»S 2Y z 3X ox (F)—* <A,> Х2 хз Z 41 43 (A>-nr4-£-*S 2Z 20 z 3Y ZX (F)-AK-»F Х4 Z 41 Y3 (S) —* A 21 z 24 10 УП — o t3 YW YX Z 43 30 (ft,) -> s 22 23 z WY 00 БП f 6 YY Z 33 ЗХ (S)-3eA—S •24 0 00 (X) Выход ИЗ п/п 4 1 5 YZ Y0 Z 43 Y3 (S)—ft, 3W 3X 0 00 00 А/ — Ан -f- 3eA (i — 1) Y1 Z 34 ЗХ (S)-6eA -*S 3Y 0 00 00 | — Ак Y2 Y3 Z ZX 10 УП —0 t 1 3Z 30 1 40 00 a Y4 Z XY 00 БП f 2 31 0 01 00 leA ZW ZX Z 41 43 (A)--jq-—>S»_I 1 32 33 0 03 00 } 3eA ZY Z 31 Y0 Сдв. (S) *i —»s 34 0 IX 00 6rA ZZ Z0 Z 41 Y3 (S)“*A 4W 4X 0 2X 00 15eA Z1 0 03 31 (Aj) —>S 4Y 0 30 00 ) 27eA Z2 Z3 Z 34 YO ( Сдв. (S)Y—>s 4Z 40 0 03 X3 ‘/,0 Z4 Y0 Z 31 41 0 00 00 [ Яч. A 0W ОХ 0Y Z Z 44 41 20 33 (S) ® c —> s (S) + (A) —* S 42 43 44 0 1 00 30 00 00 | j Яч. ft| Iе • 07. 00 S 41 Y3 (S) —» A КС 01 0 03 31 (Aj*)—»S 196 г. Подпись—-------------------------- V
м • Приложение 4 Задача________—- Зона МБ----------- Адреса ПФ-Z Команда Комментарии Адреса ПФ-Z Команда Комментарии WW WX Z 21 ОХ (F) —Z21 02 03 Z 42 33 (S) + (U, V)-»S WY Z 31 23 •“/и — R 04 z 11 zx (F) + 5eA -» F WZ W0 Z ЗХ Z0 At—» F«_l* 1W IX z Z3 IX УП -T__r« W1 0 04 31 (Aj) Яф = 0 —» S 1Y z 3X zo Al-r»F W2 W3 Z XI 13 УП-1 и 1Z 10 z 24 YO Сдв. (S)<T—>S W4 Z 33 20 (S) ® 1,5—»S 11 0 1W Y4 (S) —» Aj Яф = 1 XW XX Z 42 Y3 (S) —» U, V 12 13 z Y3 ZX (F)+3eA —» F XY Z 34 30 ПС-0—»s 14 z 3X ox (F)-»<At > XZ ХО Z Х4 00 БП f 2 2W 2X z 3Y zx (F) — AK—» F XI Z 42 Y3 (S)—»U, V«_ 1 > 2Y z 21 10 УП —0 4 5 Х2 хз Z 4Х 30 nc + o—>s 2Z •20 z WO 00 БП fe Х4 0 03 Y4 (S) -» Al ^_l 2 21 0 00 00 Выход из п/п « 1 S YW YX / 43 30 (U)-*S 22 23 0 00 00 0 YY г 30 зх (S)--r-*S 24 0 10 00 9^л YZ YO z 43 Y3 (S)-»U 3W ЗХ 0 00 00 I Ai' = AH + 3eA 0 — 1) Y! z 41 YO Сдв. (S) ?—» S 3Y 0 00 00 -AK Y2 Y3 0 03 34 (S) + (A,)-»S 3Z 30 0 14 44 >/» Y4 0 03 Y4 (S) -* Aj 31 0 11 oo ) “/» ZW ZX z 43 30 (U)-»S 32 33 1 ww ww I1-5 ZY z 4Y YO Сдв. (S)2"—»S 34 Z ZW 00 ПС-0 zz ZO z 40 ZO 4W IX Z ZY 00 nc + o Z1 z OY 00 БП f з 4Y 0 02 00 Z2 Z3 z Y3 YO Сдв. (S) 3—►Б*-) 4 4Z 40 0 Y3 00 }-l5*A Z4 z 42 Y3 (S) —» U, V 41 0 Z2 00 -7₽a OW OX z 43 30 (U)—s 42 43 0 00 00 ly OY z 33 4X (S)(R)+ 1.5 —> S^_l з 44 0 00 00 1V OZ 00 z 43 Y3 (S)-»U КС 01 z 40 YO Сдв. (S) 15 —» S 196 г. Подпись.
Программа ввода Приложение 5 Задача - - - - Зона МБ Адреса ПФ=0 Команда Комментарии Адреса ПФ -0 Команда Комментарии WW WX 0 00 02 | **пр ввода 02 03 0 10 хз 1Фо1-^|Ю] WY 1 3Z XY 04 0 и 00 БП_Т 1 WZ W0 0 00 Z2 } V 1 “Ю —> 3 1W IX 0 41 Z0 М —» F «_1 в;7 W1 0 34 43 1Y 1 01 ХО Прогр. —* Ф1 с ФТ № 1 W2 W3 W4 0 00 Z0 | - 3 —>10 1Z 10 1 10 Х4 |Ф,| -» |М 4- Ю] 0 4W ZZ И Z 10 XY |М + Ю] —> Фг «_! 1 XW XX 0 00 04 }ч 12 13 0 40 Z0 0—»F (F)-»X XY Z 44 ХО 14 0 42 ОХ XZ ХО 0 00 1Z }ч 2W 2Х 0 33 ZX (F)-81eA -♦F^—M ai —> S «_l 2 XI 0 YW Y0 2Y 0 WX 31 Х2 ХЗ 0 00 00 )" 2Z 20 0 34 Y0 Сдв. (5)9Г—> S Х4 0 00 00 21 0 42 33 (S)+S-»S YW YX 0 41 Z0 М —♦ F «_1 3 22 23 10 42 Y3 (S) — S YY 0 41 ZX (Е) + М -> F 24 0 4Х ZX (F) + 3eA — F YZ Y0 0 41 ZX (F) + М -► F 3W ЗХ 0 2Y IX yn - T_t2 Y1 0 Х2 3Y (S)-z«-*s 3Y 0 YX 13 УП — 1 f 3 Y2 Y3 0 ZY 10 УП —0 f 5 3Z 30 0 4Y Z0 leA F Y4 0 42 2Х Q 31 0 2Х 00 БП t 4 ZW ZX 0 IX 00 БП f « 32 33 Z 00 (X) — 8leA ZY 0 41 Z0 М—>Р<_| 5 34 0 Z0 00 - 9^a ZZ Z0 0 4Y ZX (F) + UA -* F 4W 4Х 0 03 00 3eA Z1 0 41 ох (F)—*М 4Y 0 01 00 ,<?A Z2 Z3 0 IX IX УП —Л t 7 4Z 40 0 00 оо 0 Z4 Z ОХ ХО Заголовок -♦ Фус ФТ № 2 41 0 Z4 00 M 5 0W ОХ Z Z0 ХО (Ф , ] —» на печать 42 43 0 00 0Y }£ 0Y 1 1Y XX П¥]-*Ф1 44 / XI 32 0Z 00 1 YX 00 1 БП f о на 1YX КС 01 0 40 Z0 0—»Р • • м • —196 г. Подпись-
s Зона МБ Mt = IY Задача it Основная программа (первая зона) Адреса ПФ=1 Команда Комментарии Адреса ПФ=1 Команда Комментарии WW WX Z 42. 00 Ли 02- 03 0 4W 40 ' У11 —S WY 0 41 00 | — Лк 04 1 WZ 40 0,4у(’ —> S WZ W0 0 121 Y2 j 0,4 1W IX 0 32 23 х( —» R W1 Z 4W 4W 1Y 1 W2 43 0,1 xt + 0,4>'f3 —> S W2* W3 0 03 ХЗ J0.1 1Z 10 1 XW 40 0,01 (S) —. S xt —♦ R W4 Z 1Z 1Z 11 0 32 23 XW XX 0 оо 24 I 0,01 12 13 0 4W 4Х y(4-(S)X|-*S XY 0 WW 3Y 14 0 4W Y3 У< + 1-* <Я>ст XZ ХО 0 00 02 j 0,001 2W 2Х 0 32 30 xt —♦ S XI 1 W0 40 2Y 1 XZ 33 Xi 4- 0.001 —»s Х2 1 хз 1 |1Y ХЗ (Ф.) — М, «_1 3 2Z 20 0 32 Y3 xi + |—*<X,> CT Х4 1 1Z XX 1М,1 ->Ф. 21 0 31 30 Cr)—*s YW YX 0 ох ХО [х„, уо|-Фо4-1»сФТМ2 22 23 1 41 33 (S)+b3-3-^S YY Z IW XX |М]0_»3]—>Ф| 24 1 00 IX yn - T 11 YZ Y0 1 WX 30 Ак—»S 3W ЗХ 0 32 30 л*к —» S Y1 Z зх Y3 (S)—> Z3X 3Y 0 3Z Y4 (S) —» <хк> Ф Y2 Y3 1 WY 30 — Лк —» S 3Z .30 0 4W 30 Ук—»s Y4 Z 3Y та (S) —>Z3Y 31 0 32 Y4 (S)—* <>„> Ф ZW ZX |з 33 Z3 (С) + 3<?л —» F 32 33 1 44 ZX (F) b 6₽A -> F ZY Z W X 00 БП t на п/п 10—>3 34 1 0Y IX УП-Т f 2 ZZ Z0 0 WX 30 —* S« 1 из п/п 4W 4Х 1 ХЗ 00 БП f з ZI 0 32 Y3 (S) —» <xt> ст 4Y 0 00 00 Свободная ячейка Z2 Z3 0 W0 30 Уо—»S 4Z 40 Z YZ 00 — ioo-з-3 Z4 0 4W Y3 (S) —* <yt> ст 41 0 01 00 I-З"3 0W ОХ 1 43 Z0 42 43 Z 00 -60eA 0Y 1 40 30 — 1QQ.3~3—»Sf 1 2 44 0 IX 00 0Z 00 0 31 Y3 (S) —» 7 4_| 1 КС 01 0 4W 30 2Г2 у 196 г, Подпись-
Зона МБ Ma=1Z Задача ОС Основная программа (вторая зона) Адреса ПФ=1 Команда Комментарии Адреса ПФ-1 Команда Комментарии WW WX 1 23 41 ЦР |_1 1_1 02 аз 1 2Y ZX (F) + 6еА —» F WY 1 13 2Z 1—1 1—1 ПС 04 1 Z0 IX УП - Г 1 « WZ W0 1 13 41 1—11—11—1 1W IX 1 XI 30 i 1 1 1 СТ —>S W1 1 13 2Z 1—1 1—1 ПС 1Y 0 30 Y3 в конец переве- > денных чисел W2 W3 1 13 ЗХ 1—1 1—1 X 1Z 10 1 Z0 ХО . , на печать (заго- 1ф11 “* ловок) W4 1 13 41 1—11—11—1 И 0 Z0 ХО .ф . на печать * (результат) XW XX 1 13 41 1—11—11—1 12 .3 0 00 2Х U XY 0 Y3 41 Y 1—1 1—1 14 1 ХЗ 00 БП_Г 5 XZ ХО Z Z3 41 ПС |__| |_| 2W 2Х Z 2Х 00 -66еА XI 1 13 2W 1—1 1—1 СТ 2Y 0 IX 00 6еА Х2 ХЗ 1 1Z ХЗ |ф,1 — М3<_|5 2Z 20 0 аз 00 3₽А Х4 1 1Y XX 21 1 40 00 | 14000 YW YX г IX XX |М» -wl — Фт 22 23 0 04 44 } 00444 YY 11 3Y .30 Ан —* S 24 0 03 41 о I 11 : YZ Y0 Z ЗХ 1 Y3 (S) —» Z3X 3W ЗХ 1' 10 00 1—1 00 Y1 1 30 30 - Ak—>S 3Y z 42 00 AH Y2 Y3 2 3Y Y3 (S)—>Z3Y 3Z 30 0 X4 00 — Ak Y4 1 20 Z3 (С)+ЗеА —» F 31 0 00 00 1 ZW ZX Z WX 00 БП J на п/п 3 —» 10 32 33 0 00 00 — —— - . ZY 1 2Х Z0 — ббсд —• F , 1 из п/п 34 0 00 00 ZZ Z0 0 31 31 М«л =1)—*S<_|4 4W 4X 0 oo 00 — Z1 1 21 20 (S) ® 14000—»S 4Y 0 00 00 Z2 Z3 1 24 33 (5)-Ю|—1 |_|->S 4Z 40 0 oo 00 Z4 0 31 Y4 (S) —» <хк>®(кл =1) 41 0 (X) 00 0W ОХ 0 33 31 У к (пд - 0) —♦ s 42 43 0 00 00 0Y 1 23 20 (S) ® 00444—»S 44 0 00 00 0Z 00 1 ЗХ 33 (S)+ | | 00—>S КС 01 0 33 Y4 (S)—*Ув(кА - 0) 8 -196 г, Подпись
£ Зона МБ. Задача Зона ввода программы Адреса Пф-О Команда Комментарии Адреса ПФ-0 Команда Комментарии WW WX 0 00 00 I Snp. вв 02 03 Z 2W XX [2W] — (ФГ] WY 1 43 1Y 04 0 21 00 БП|^< WZ W0 0 00 Z3 I Spwj IW IX 0 41 zo M —♦ F <_l 2 W1 0 10 Х2 1Y 0 0Y ZX (F) + leA —* F W2 W3 0 00 ОХ 1 S[2X] 1Z 10 0 41 OX (F) -> M W4 1 XY 0W 11 0 2X IX УП—T|—»5 XW XX 0 00 0Z j E(2Y| 12 13 0 YX 00 БП l~*8 XY Z 02 20 14 0 41 zo M—>F«_|S XZ ХО 0 00 0W U j S|2Z] 2W 2X 1 01 XO [ )->Ф|4_13 XI Z Y3 ZY 2Y 1 21 X4 (Ф.1 — [M + 21] Х2 хз 0 00 ОХ f E(2O1 2Z 20 z 21 XY (М + гц-^Фу X4 0 Y2 3W 21 0 YX ZO 0 —» F ' 4 YW YX 0 00 2Х Co «—I8 22 23 0 42 OX (F)->S YY 1 IW XX [IW] —♦ Фм 24 0 ZY ZX (F)-8leA ->F«_|7 l YZ YO z IX XX [IX] -» ФГ 3W ЗХ 0 WX 31 a( —» S «_l 6 Y1 z Y3 Z3 (C) + 3eA -> F 3Y 0 4X YO Сдв. (S) на 9 —* S Y2 Y3 z WY 00 БП|~*BX VI 3Z 30 0 42 I 33 (S) + X —s Y4 0 2W 'wx | * на начало программы 31 0 42 Y3 (S) —X ZW ZX 0 03 00 | 3<>A 32 33 0 ZX ZX (F) + 3eA —> F ZY z 00 00 j-8!eA 34 0 3X IX УП—T |—♦ 6 ZZ ZO 0 41 zo M —♦ F «_l 1 4W 4X 0 zo 13 УП-l |—» 1 Z1 0 41 ZX (F) + M->F 4Y 0 OY ZO leA^F Z2 Z3 0 41 ZX (F) + M -> F 4Z 40 0 24 00 БП |~» 7 Z4 0 YW 3Y (S)-£j-»S 41 0 Z3 00 M = - 6 OW OX 0 IX 10 УП - 01—» 2 42 43 0 00 00 OY 0 01 2X Ct 44 Z WX Z2 oz OO 0 14 00 БП |—»з КС 01 0 2W X3 | [Фо] — [2W] 196 г. Подпись
Основная программа Задача----------- Зона МБ 2W Адреса ПФ-1 Команда Комментарии Адреса ПФ=1 Команда Комментарии WW WX 0 0Z ХО Запись 1 части заголов. 02 03 Z Y3 Z3 (C) + 3eA -» F WY 0 4Х хз на МБ 04 Z |WY (X) БП Bx VI ИП-2 WZ W0 0 0Z ХО Запись 11 части 1W IX 0 4Z WY Aio—»s W1 0 4Y ХЗ Заголовок на МБ 1Y 0 4W WW обобщ. адр. перв. числа после перевода __ W2 • W3 0 4Х XX [4Х]—+Ф0<_16 1Z 10 0 01 XO 6п = 6-9 = 54 W4 0 Z0 ХО Печать 1 части заг. 11 1 0Y ZO 6eA—F XW XX 0 4Y XX [4Y] -> Ф„ 12 13 0 4W XX [4W] —> Фо XY Z ОХ ХО Виод констант для формир. И ч. 3. 14 0 ,44 OX . 044 ДЛЯ °Рганиз ' ' внешн. цикла XZ ХО Z WW 30 к,—* S 2W 2Х 0 43 OX >(ш Ддя организ. ' 7 внутр, цикла XI 0 W2 Y3 (S)—»<К|> 2Y 0 44 ZO (044) —♦ F <_! 5 Х2 ХЗ Z W0 30 к, —* < ка > 2Z 20 0 WW 30 Ч -*»8 Х4 0 WY Y3 21 0 YW 42 Ч • C<o^s YW YX Z W1 30 22 23 Z 32 YX SoopM * И YY 0 W0 Y3 24 0 WO 33 (S)+4—s YZ Y0 Z XZ 30 s 3W ЗХ 0 YO 32 (S) + Л(’) -* 5 YI 0 Z2 Y3 (S) —> <*<’> > 3Y Z 4X Y3 (S)—pa Y2 Y3 Z W3 j 30 /н1”—» <ш(,) > 1 3Z' 30 0 33 Y3 Pk,mW —» раб. яч. Y4 0 ZY Y3 31 Z 32 30 (U)-> S ZW 30 ZX Z W4 32 33 0 3Z Y3 4k,mW —* раб. яч. Y3 ZY 0 Z0 34 0 W2 30 4~*s ZZ Z0 Z XW 30 4W 4Х 0 ZZ 4Z 4 -40—*s ZI 0 0Z Y3 (S) —* > 4Y Z 1“ YX (5)норм * V 7:1 Z3 Z хз 30 4Z 40 0 XX 33 (S) + />*, —»S Z4 0 04 Y3 41 0 Z3 32 (S) +Z(0—> s 0W ОХ Z XI 30 42 43 Z 43 Y3 (S)—*pv 0Y 0 IX Y3 44 0 4W X3 |Фо1 -* [4W| 0Z (X) 0 Z0 ХО Печать II ч. заголовка КС 01 Z IX XX [IX] —* Ф , —-------------------------196 г. Подпись________________________________
ж Задача Зона МБ 2Х Адреса ПФ -1 Команда Комментарии Адреса ПФ=1 Команда Комментарии WW WX Z 4Y 03 (С)—а 02 03 0 3Z 30 — V. Рр WY Z YY 00 БП |—* ВХ ill ИП-2 04 Z 4Z Y3 WZ W0 0 1Y XY на п/п вч 1W IX 0 33 30 W1 Z 00 32 (U) --> и 1Y Z 43 Y3 W2 W3 1 XI 00 БП * 1 1Z 10 0 4W ХЗ [Фо1 -> 4W W4 'о 30 00 1 11 Z 4Y 03 (С) —« XW XX 0 2W WW 12 13 Z YY О0 БП |—* ВХ 111 ИП-2 XY Z WW WW 14 0 1Y XY па п/п вч XZ ХО 0 00 00 )• 2W 2Х Z 00 32 (U)-*U XI 1 W4 30 1—»3<_| 1 2Y Z YY 00 БП —‘ВХ III ИП-2 Х2 ХЗ Z 4Z Y3 1 —.V 2Z . 20 0 10 WY на п/п У XI 1 ХО 30 0-+S 21 0 4W 3Z об. мр.|/ ( ) ]г_ *|М(О YVV YX Z 43 Y3 (S) -> Р„ 22 23 0 4W 30 O-»V,Pp YY Z 4Y 03 (С) — » 24 Z 4Z Y3 YZ Y0 Z YY 00 БП,—‘ВХ III ИП-2 3W ЗХ 0 40 30 I 1 tb Ь . п -м V D Y1 0 1Y ХЗ на п/п сл. 3Y Z 43 Y3 Y2 Y3 0 4W 4W об. адр, I) 3Z 30 о- 4W ХЗ [Фо] 4W Y4 Z 32 30 (U)-»S 31 Z 4Y 03 (С)-»о ZW ZX 1 XW 40 (S)’—* S 32 33 Z YY 00 БП|—‘ВХ III ИП-2 ZY 0 4W YX —» (01W, 0-10) 34 0 1Y WX на п/п обр. вч. ZZ Z0 Z 4Х 33 4W 4Х 0 4W 22 об. адр. г2^ ZI 0 40 Y3 1Y 0 3Z 30 Z2 Z3 0 4W 30 -*U. Pu 4Z 40 Z 32 Y3 У [у ( ) ]*— ~* -*и, Ро Z4 0 4W 40 41 0 33 30 0W ОХ Z 32 YX 42 43 Z IX Y3 40 33 0Y 0 44 0 4W ХЗ [Ф„] —> 4W 0Z 00 0 40 33 КС 01 Z 4Х Y3 • 00 •- 196 г. ПоОписъ--------------------------------
Задача Зона МБ 2Y Адреса ПФ=1 Команда Комментарии Адреса ПФ 1 Команда Комментарии WW WZ WX z 4Y 03 (С)->а 02 03 0 1Y XY на п/п вч WY Z YY 00 БП |~* ВХ III ИП-2 04 0 4W 4W об. адр. (dp — е/°) W0 0 1Y хз на п/п сл. 1W IX 0 43 ZO (043) —• F W1 0 4W 2W об. адр. г/'1 1Y 0 4W 30 ^dp-e/^~* S '1 2 W2 W3 0 22 30 % г,<0 —» V. Ро 1Z 10 0 2W 41 (Sl^—S W4 Z 4Z Y3 11 0 2W YY (S)MO|1M * < > XW XX 0 ЗХ 30 12 13 0 40 33 (S)4-P(d/j_9(0,->S XY Z 43 Y3 14 0 20 34 (S) + ₽$) —s XZ ХО 0 4W хз |Ф()| _ 4W 2W 2Х 0 20 Y4 (S)-» <p<y0> XI Z 4Y 03 (С)—»в 2Y 1 43 ZX (F) — 6eA —»F Х2 хз Z YY 00 БП|~*ВХ III ИП-2 2Z 20 1 1Y 10 УП-0 J 2 Х4 0 1Z W3 на п п делен. 21 0 44 Z0 (044) —» F YW YX Z 00 32 (L’)->U 22 23 0 1Z 3Z ’i/O S YY Z YY 00 БП|—ВХ III ИП-2 24 0 W2 40 (S)^A —*S YZ Y0 0 1 “ WX на и п In 3W ЗХ Z 32 YX ($)норм —* L; _ Y1 0 4W 3Z о«. мр. In г.’’’ 3Y 0 13 32 (S)+Pjo-*S 7 Y2 Y3 0 44 Z0 (044) —» F 3Z 30 0 XX 33 (S) + p*. s Y4 0 0W 30 р« 31 Z 4Х Y3 (S) — p„ ZW ZX Z 32 Y3 32 33 0 WW 30 *1 —V>P„ 30 ZY 0 00 34 Z 4Z Y3 ZZ Z0 Z IX Y3 4W 4Х 0 W0 30 2| 0 1Z 3Z 4° —»v, рв 4Y Z 43 Y3 Z2 Z3 Z 4Z Y3 4Z 40 0 4W ХЗ [ф„| 4W Z4 0 13 3Z 41 1 44 00 БП |—» 3 0W ох Z 43 Y3 42 43 0 Z3 00 [-k-A OY 0 4W ХЗ [ф„] _4\V 44 0 3Z 30 q rt —>S «J 3 (св. яч.) lu-r- 0Z 00 Z 4Y 03 (Q-, а КС 01 Z YY 00 БП|—ВХ 111 ИП-2 196 г. Подпись----------------------------
Зада ча--------—* Зона МБ 2Z Адреса ПФ = 1 Команда Комментарии Адреса ПФ-1 Команда Комментарии WW WX Z 4Y 03 (С)— а 02 03 0 1Z 3Z 4'1—> и. р„ WY Z YY 00 БП |~* ВХ 111 ИП-2 04 Z 32 Y3 WZ W0 0 1Y хз на п/п ел 1W IX 0 13 3Z WI 0 4W 1W об. а др. (еу ka +- k,) IY z 4X Y3 W2 W3 0 44 Z0 (044) —» F 1Z 10 z 4Y 03 (C)-^a W4 0 0W 30 —S 11 z YY OO БП |~* ВХ1НИП-2 XW XX 0 YW 4Z (S) ^’,-s 12 13 0 IY XY на п/п вч XY Z 32 YX (S)nopM * U 14 z 00 4Z XZ ХО 0 00 33 (S) + -> s 2W 2X z XY 00 БП |—♦ ВХ 11 ИП-2 XI 0 Y0 32 (S) + P(J)—s 2Y 0 4W 22 об. адр. 4°) Х2 ХЗ Z 4Х Y3 (S)-»p« 2Z 20 0 IY X3 на п/п сл Х4 0 ZZ 3Z 6j-)_vlpp 21 0 4W 22 об. алр <01—(•••)(— YW YX Z 4Z Y3 22 23 0 2W 30 j Р„ 24 z YY 0 Z3 3Z 32 Y3 YZ Y0 Z » Y3 |) >V, Pv 3W ЗХ 0 20 30 j r^(dp -ey)_^u. P„ Y1 0 4W ХЗ |ф0] —» 4W 3Y Z 4X Y3 Y2 Y3 7- 4Y 03 (С)— a 3Z 30 0 4W X3 [Ф«| 4W Y4 Z YY 00 БП -* BX Ill ИП-2 31 z 4Y 03 (C)->« ZW ZX 0 1Y ХЗ на п/п сл 32 33 Z YY 00 БП|-* ВХ1ПИП-2 ZY Z 00 32 (U)->U 34 0 IY X3 на п/п сл ZZ Z0 0 4W XX |4W) -> Фо 4W 4X 0 4W 2W об. алр. (•••)(••)+ •) Z1 Z 32 .30 jtO) * 8 4Y 0 22 30 Z2 Z3 0 4W 40 (s) Ч.М. , . . —» S 4Z 40 z 4Z Y3 4°-< ••)(•••)+• Z4 Z 4Z YX (8)цорм * V 41 0 3X 30 0W ОХ Z 4Х 33 (S)-Pa->S 42 43 z 43 1 Y3 0Y 0 40 33 (S) + P(4’ *, + *0-^8 44 0 2W 30 0Z 00 Z 43 Y3 (S) —Рг, КС 01 0 44 Z0 (044)—>F 196 г, Подпись--------------------------------
Задача. Зона МБ 20 Адреса ПФ^1 Команда Комментарии Адреса ПФ-1 Команда Комментарии WW WX Z 4Y 03 (С)—« 02 03 Z WY оЬ БП |~*ВХУ1ИП-2 WY Z YY 00 БП!-* ВХ 111 ИП-2 04 0 2W 2Y j 5 обобщ. перед WZ W0 0 1Z W3 на пи делен. 1W IX Z Y3 Z3 (С) + ЗеА —» F <_| 4 W1 Z 00 32 (U)-^U 1Y Z WY 00 БП |—» ВХ VI ИП-2 W2 W3 Z YY 00 БП —* ВХ III ИП-2 1Z 10 0 42 Z4 А3-> 10 W4 0 13 WX на п/п In 0 34 WW об. адр. 1-го переводимого числа XW XX 0 4W 4W об. адр. in дли вызова [4W| 12 13 0 00 13 6л = 6-2 = 12 XY 0 3Z 30 4° In —77j-—» V. Ро г2 11 0 00 2Х останов. Задача решена XZ ХО XI Z 0 4Z 33 Y3 30 2W 2Х 2Y Z Z Y3 WY Z3 00 (C) + 3eA—F БП —* ВХ VI ИП-2 Х2 ХЗ Z 43 Y3 2Z 20 0 2W W3 об. переход | 6 (на решен, след, вар-та) Х4 Z 4Y 03 (С) —♦ а 21 0 Z3 00 )~^А YW YX Z YY 00 БП | ВХ 111 ИП-2 22 23 0 00 00 YY 0 1Z W3 на п л делен. 24 0 00 00 YZ Y0 0 4W 4W для вызова [4W] 3W ЗХ 0 00 00 Y1 0 44 Z0 (044) —» F 3Y 0 00 00 Y2 Y3 0 34 XX [зона р-тов| —♦ Фо [34J 3Z 30 0 00 00 Y4 Z 32 30 л(/) —* яч. р-тов 31 0 00 00 ZW ZX 0 W2 Y2 32 33 0 00 оо ZY Z 4Х 30 34 0 00 00 ZW Z0 0 XX Y2 4W 4Х 0 00 00 Z1 0 34 ХЗ [ФЛ _ [34] 4Y 0 00 00 Z2 Z3 1 21 ZX (F)—6еА—»F 4Z 40 0 00 00 Z4 1 IX IX УП-Т * 4 41 0 00 00 0W ОХ 01 4W XX [4W] —- Фо 42 43 0 00 00 0Y 0 44 ОХ (F) —*041 44 0 00 00 0Z 00 0 4W ХЗ 1фо1 -» [4W] КС • 01 Z Y3 Z3 (С) + ЗеА —> F 196 г. Подпись-
Заголовок Задача (начало) Зона МБ 4Х Адреса ПФ=0 Команда Комментарии Адреса ПФ=0 Команда Комментарии WW WX UP 1—1 |_| 02 аз Й UP !_1 WY 1 1 -—' ПС 04 1 1 1_| БР WZ W0 1 1 — । । 1W IX К р И W1 1 '—’ । । 1Y В UP 0 W2 W3 1 1 .—1 । । 1Z 10 БР й UP W4 1 1 !—- 11 1 1 1 1 1_1 XW XX 1 1 •—- । । 12 13 1 1 !_| Y XY 1 1 '—- । । 14 БР — UP XZ ХО 1 1 —- 1 I 2W 2Х — — — XI 1 1 1—1 1 । 2Y — — — Х2 хз 1 1 — 1 1 2Z 20 — — — Х4 1 1 *—- !_! 21 — — — YW YX 1 1 .—1 1 1 22 23 — — — YY 1 1 u 1 । 1 24 — ПС 1 1 е YZ Y0 1 1 1 1 1 — 3W ЗХ I—! 1 1 Y1 U 1 1 1 1 3Y 1 1 1 1 1 1 Y2 Y3 1_1 1 1 !_1 3Z 30 1_1 1 1 U Y4 1 । 1_1 X 31 !_! 1 1 U ZW ZX ПС Y БР 32 33 1 । 1_! I 1 ZY р А В Г 34 1 । 1 1 !_! ZZ Z0 н Е Н 1 4W 4Х I 1 1 1 Z1 и Е UP 4Y U. . Z2 Z3 LJ 1 1 I 1 4Z 40 । I 1 1 !_! Z4 БР Р А 41 1 I 1 1 1 1 0W ОХ В И UP 42 43 1 I LJ 1 1 0Y 0 БР 44 !_! U 1 1 — 0Z 00 Е С I и КС 01 UP о 1 1 БР 1 196 г. Подпись
<о Заголовок ОС» Задача (окончание) Зона МБ 4Y Адреса ПФ=О Команда Комментарии Адреса ПФ=0 Команда Комментарии "Г WW WX !_1 U I—J 02 03 • X “Ь WY 1 1 1 1 1 1 04 !_! 1 1 1 1 ] *<2’ WZ W0 1 1 !_1 1 1 1W IX 1—1 1_! 1—1 W1 • X + 1Y ПС 4 БР W2 W3 1 1 I 1 U J 1Z 10 и С Л W4 LJ I 1 1—1 И Цр 0 1 1 XW XX ПС Y БР 12 13 БР С т XY р А В 14 ЦР Y БР XZ • ХО н Е Н 2W 2Х П Е Н XI и я (up 1 2Y Е Й ЦР Х2 ХЗ 1-1 БР Р 2Z 20 БР Р Х4 А Б ЦР 21 Е К Т YW YX 0 4 БР • 22 23 И ЦР Ф YY 1и ЦР Iх 24 БР И К 1 YZ 1 Y0 '—• 1 БР л 3W ЗХ А UP Ц YI и Н Iй 3Y БР И и Y2 Y3 й ЦР 1_1 3Z 30 ЦР 1 1 БР Y4 1 1 Y 31 Р А В ZW ZX БР В ЦР 32 33 Н UP 0 ZY 1 1 1 1 1 1 j 34 1 1 БР С ZZ 70 !_1 1 [ 1 1 4W 4Х ЦР 0 0 21 • X + 4Y БР Т В Z2 Z3 1_| 1—1 1—1 ) 6<'> 4Z 40 Е Т С Z4 1 1 1 1 1_! 41 Т В Е 0W ОХ 1 1 Y 42 43 Н Н ЦР 0Y БР — ЦР 44 0 U СТ 0Z 00 !_! 1—1 U } Ж» КС 01 !_1 LJ L1 196 г. Подпись
— Зона констант ® Задача (для заголовка) Зона МВ , . Адреса ПФ-Z Команда Комментарии Адреса ПФ=И Команда Комментарии WW WX 0 4 1 |*| 02 03 1 WY 0 0 0 04 WZ W0 0 5 9 1 1W IX W1 0 0 0 1Y W2 W3 0 7 5 1Z 10 W4 0 0 0 11 XW XX 1 3 7 } ж® 12 13 XY 7 3 0 14 XZ ХО 0 2 4 | № 2W 2Х XI 9 0 0 2Y Х2 ХЗ 0 0 0 j № 2Z 20 Х4 1 8 9 21 YW YX 1 1_ СТ - 22 23 YY 24 '1 YZ Y0 3W ЗХ Y1 ЗУ Y2 Y3 3Z 30 1 Y4 31 ZW ZX 32 33 ZY 34 ZZ Z0 4W 4Х Z1 4Y Z2 Z3 4Z 40 Z4 41 0W - ОХ 42 - 43 0Y 44 0Z - оо КС - 01 о 196 г. Подпись-----—__________________________
" Зона исходных данных н рабочих ячеек S Задача Зона мв ,w Адреса ПФ-0 Команда Комментарии Адреса ПФ=0 Команда Комментарии WW WX ПС I 4- 1 9*‘ 02 - 03 ПС 1 1 2d ’4° WY 4 1 °| 04 9 9 5 WZ W0 0 0 0 |р-. 1W IX 0 0 0 W1 4- 0 0 1Y 4- 0 0 W2 W3. ПС 1 1 4- 10 ПС 1_1 4- }’<?' 11 5 W4 5 9 0 0 0 XW XX 0 0 0 12 13 0 0 0 | Ре(2) нач. данные XY 4- 0 0 14 — 0 2 XZ ХО ПС 1 1 4- 1 2W 2Х 1 1 1 1 СТ 1 XI 7 5 0 2Y Х2 хз 0 0 0 Рт0) 2Z 20 Х4 4- 0 0 21 YW YX ПС 1 1 4- J ’т<2> 22 23 j YY 3 7 24 YZ Y0 7 3 0 /’лЛ 3W ЗХ 1 Y1 + 0 1 3Y Y2 Y3 ПС 1 4- 3Z 30 31 1 < Y4 2 4 9 ZW ZX 0 0 0 Рьт 32 33 ZY 1 + 0 0 34 ZZ Z0 ПС U 4- [«/а'2» 4W 4Х } Z1 1 8 8 4Y Z2 Z3 Z4 6 0 0 0 2 4Z 40 41 1 0W ОХ ПС р 4- j 42 43 0Y 4 0 0 44 1 0Z 00 01 0 4- 0 0 0 0 )ч КС — - _ .-------•---------------------196 г. s Подпись———------------------------
ДОПОЛНЕНИЕ § 17. ПЕРФОЛЕНТА Как было сказано ранее (§ 5), ввод информации (про- граммы и исходных данных) в ЗУ машины «Сетунь» осу- ществляется с помощью бумажной пятипозиционной перфо- ленты. В соответствии с рис. 19 и 20 будем различать 5 доро- жек— прямых линий, параллельных краям ленты, и строч- ки, расположенные перпендикулярно дорожкам и проходя- 104
щие через отверстия дорожки 0 (синхродорожки); последние перфорируются на перфоленте автоматически при нажатии любой из клавиш телетайпа (дополнительно к основной ин- формации). Носителями основной информации (троичных кодов и сим- волов) являются комбинации пробивок на пересечении строчек и дорожек 1—5; в одной строчке может быть отпер- форирован либо трехразрядный троичный код е|«$ез, е {0, 1, 1}, i = 1, 2, 3, либо некоторый символ из определен- ного набора (таблица 3). В первом случае разряду ei отводится дорожка 5, разряду ег —Дорожки 3, 4 и разряду ез — дорожки 1. 2; наличие про- бивки по дорожке 1, 3 или 5 отвечает значению I соответст- вующего разряда троичного кода е^ез наличие пробивки по дорожке 2 или 4 — значению 1 соответствующего разряда кода; отсутствие пробивок по дорожкам 1 и 2, или 3 и 4, или по дорожке 5 — значению 0 соответствующего разряда кода (см. на рис. 19 комбинацию пробивок, соответствую- щую троичному коду 011 и на рис. 20 — кодам 10 1 и 1 I 1). Исключение составляет троичный код ООО, которому на перфоленте соответствует совокупность пробивок по дорож- кам I, 2, 3 и 4. Перфорирование команд. Команда, как говорилось в § 5; на бланке записывается в виде пятиразрядного девятирич- ного кода (например: 103 12). Чтобы отперфорировать команду на перфоленте, необходимо на телетайпе произвести нажатие соответствующих клавиш в порядке расположения цифр в перфорируемой команде; при этом каждая из девя- тиричных цифр автоматически преобразуется в трехразряд- ный троичный код и перфорируется в отдельной строчке (в -примере^ 1 преобразуется в 001, 0- в000,3—в010, 1 — в001, 2—в 01 1). Команда от команды отделяется любым симво- лом, не воспринимаемым при вводе в виде команд, на- пример, символом вк, пс, которому на ленте соответствует совокупность пробивок по 3 ,и 4 дорожкам (см. таблицу 3). Перфорирование десятичных цифр. Каждая десятичная цифра перфорируется при нажатии соответствующей клави- ши, при этом цифра автоматически преобразуется в трехраз- рядный троичный код, равный ей по величине Например, 8 преобразуется в код 101 ((8))0 = (1 0 !)3), 7 —в 111, 9 — в 100 (соответствующие комбинации пробивок см. на рис. 20). 105
Перфорирование символов (из таблицы 3). Каждому сим- волу на перфоленте соответствует своя комбинация пробивок. Общее правило состоит в следующем: в таблице 3 каждому символу сопоставляется некоторая комбинация единиц и ну- лей (графа 6), единице этой комбинации на перфоленте от- вечает пробивка, а нулю — отсутствие пробивки по соответ- ствующей дорожке (см. рис. 20). Замечание 1. Последнее правило применимо и к пре- дыдущим случаям, однако сформулированные ранее поло- жения весьма полезны на практике. Замечание 2 Команды (и другие троичные коды) и десятичные числа (и символы) необходимо перфорировать в разных зонах. § 18. ПУЛЬТ УПРАВЛЕНИЯ На вертикальную панель пульта управления (рис. 21) выводится содержимое регистров S, R, К (РК), F и С и триг- геров ф1, <₽2 и со (см. § 2, замечание 1). Кроме того на вер- тикальной панели имеется четыре ряда неоновых лампочек (по две — в каждом ряду), осуществляющих индикацию но- мера зоны МБ, к которой производилось обращение в послед- ний раз. На наклонной панели расположены кнопки и ключи, с по- мощью которых осуществляется управление машиной. При выключенном ключе «однотактный режим» машина выполняет программу в автоматическом режиме, при вклю- ченном (положение «влево»)—очередная команда програм- мы. т. е. команда, выбранная на регистр К (РК), исполняет- ся только при нажатии кнопки «пуск». В верхней части наклонной панели расположены 9 трех- позиционных ключей набора команды, 18 трехпозицнонных ключей набора кода и двухпозиционный ключ включения на- бора кода. Положение ключей набора «от себя» соответст- вует 1, «к себе»—1 и нейтральное положение — нулю На- бранная на ключах набора команды нужная команда зано- сится в регистр К (РК) при нажатии кнопки «команда с пульта управления» (ком. ПУ), при этом ключ «однотакт- ный режим» должен быть включен. Для исполнения команды, занесенной в РК. нужно нажать кнопку «пуск»; после исполнения этой команды (если это не одна из команд пе- редачи управления) на РК выбирается команда, находив- шаяся там ранее, так как в регистре С сохраняется ее адрес; 106
оо?оо ООг- о о €И> “ С О' 00-00 00^00 ©0-0© 00 = 00 ©0=00 00 = 00 ©© — ОО ©0-00 ©0-00 ©0*00 00-00 оо- оо 00-00 00-00 ©о - оо о© ©о о© о© О £ ©о- ©0 -©О з ©© - ©о - оо-оо-оо ©©-00*00 ©О-00-00 ©О~ ©0-00 00-00-0© 1г она уиэнои fOHHOl/*Otf 107
в противном случае на РК может быть выбрана команда из ячейки, указанной в адресной части исполняемой команды {если передача управления осуществляется). При включенном ключе набора кода (положение «влево») в выполнении операции вместо содержимого" ячейки, указан- ной в адресной части команды, находящейся в РК. или со- держимого регистра S при посылочной операции будет уча- ствовать код. набранный на трехпозиционных ключах набора кода. Таким образом, можно осуществить запись нужного кода в ячейку ФК или в регистры S, R и F. для чего в РК должна быть занесена команда с соответствующим кодом операции. Пример 1. В РК находится команда Z1W30 (команда посылки содержимого ячейки Z1W в регистр S), ключ набора кода включен. При нажатии кнопки «пуск» вместо посылки (Z1W) -» S происходит занесение в S кода с пульта. Пример 2. В РК находится команда 12ZY3 ((S) -* 12Z), ключ набора кода включен. При выполнении команды в ячейку 12Z вместо (S) запи- сывается код с пульта- Заметим, что при включенном ключе набора кода маши- на работает в однотактном режиме. Внизу слева расположены 5 трехпознцнонных ключей на- бора адреса останова и два ключа, включающие этот набор. Машина остановится, если код, набранный на ключах набо- ра, совпадает: 1) с содержимым регистра С (при положении верхнего ключа включения набора «влево», причем положе- ние нижнего ключа МБ-ФК-ВП должно соответствовать ФК) —останов по адресу; 2) с кодом, расположенным в пяти старших разрядах РК, т. е. в РА (при положении верхнего ключа «вправо», причем положение нижнего ключа должно соответствовать тому виду памяти, при работе с которым нужно остановить машину)—останов по адресной части команды. Отметим, что останов по адресу, набранному на ключах набора, невозможен, если этот адрес формируется в реги- стре С в результате выполнения команд передачи управ- ления. Набор адреса останова должен производиться при нейт- ральном положении обоих ключей включения набора. По- следовательность включения набора адреса останова: сна- 108
чала нижний ключ ставится в нужное положение, затем — верхний. При выключении — наоборот. С помощью кнопки «начальный пуск» осуществляется ввод информации с первой зоны перфоленты в Фо (§ 5). Кнопка «останов» позволяет прервать в любой момент выполнение программы машиной- § 19. ОТЛАДКА ПРОГРАММЫ Как показывает опыт, почти всякая вновь составленная программа содержит ошибки. Ее нужно проверить на ма- шине (отладить). Чтобы свести к минимуму расход машинного времени при отладке, необходимо предварительно тщательно продумать план отладки. Общие рекомендации заключаются в следующем: парал- лельно с основной задачей, которую требуется решить, по составленной программе на машине решается контрольная задача с иными входными данными, для которой известны промежуточные (в некоторых точках—контрольных) и окон- чательные результаты (задача уже просчитана каким-нибудь иным способом); в этих контрольных точках предусматри- ваются остановы (по адресу С или по адресной части команды) и сравниваются имеющиеся значения и значения, полученные в результате машинного счета по составленной программе; совпадение их в большой степени гарантирует отсутствие ошибок в выполненной части программы (и одно-’ временно правильность работы машины). Отладка — довольно сложный процесс и здесь большую роль играет опытность программиста. Для многих машин разработаны специальные программы отладки программ, позволяющие автоматизировать эту тру- доемкую заключительную часть работы над программой. 109
ЛИТЕРАТУРА II] Жоголев Е. А. Система команд и интерпретирующая система для машины «Сетунь». Журнал выч. матем. и матем. физики, т. 1, № 3. 1961. 12] Жоголев Е. А. Математическое обслуживание для машины «Сетунь». Отчет ВЦ МГУ, 1961. [3 ] Дополнение к математическому обслуживанию машины «Сетунь». Отчет ВЦ МГУ, 1963 ]4 ] Ж о г о л е в Е. А., Е с а к о в а Л. В. Интерпретирующая система ИП-3. Серия: математическое обслуживание машины «Сетунь», вып. 4, Изд-во МГУ, 1964. 15) Ф у р м а н Г. А. Интерпретирующая система для действия с комп- лексными числами (ИП-4). Серия: матем. обслуживание машины «Сетунь», вып. 2. Изд-во МГУ, 1964. 16] Жоголев Е. А. Особенности программирования и математиче- ское обслуживание для машины «Сетунь». Серия матем. обслуж. машины «Сетунь», вып. 1. Изд-во МГУ. 1964. 17] Ковач Е. Н., Ковалев Б. И., Науменко Е. И. Система интерпретации ИП-Н для ЦВМ «Сетунь». Отчет Сибирского научно- исследовательского института энергетики. Новосибирск, 1964. 18] Брусенцов И. П„ Жоголев Е. А., Веригин В. В.. Мас- лов С. П„ Гишулнна А. М. Малая автоматическая цифровая ма- шина «Сетунь». Вестник Московского Университета, Серия матема- тики, механики, № 4, 1962. (9] Жоголев Е. А. Масштабирование. Энциклопедия современной техники, серия «Автоматизация производства и промышленная элек- троника», т. 2, Москва, 1963. flO] М а к - К р а к е н Д. Д. Программирование для цифровых вычисли- тельных машин. ИЛ., Москва, 1960 Ill] Методические указания по работе на универсальной цифровой маши- не «Урал-1». Под редакцией А. Н. Балуева. Изд-во Ленинградского государственного университета, 1961. 112] Жоголев Е. А. Вычисление элементарных функций па машине «Сетунь». Сб. «Вычислительные методы и программирование III». Издательство Московского государственного университета, 1964. (13] Батунер Л. М. Методы расчета кратности массообмена в ректи- фикационных аппаратах. Труды ЛХФИ, вып._ 4, процессы и аппа- раты химической технологии. Госхнмиздат, 1958. но ' J3 1965 г* । Акт
Поди, к печ. 4,'Х1 1965 г. Зак. 402. Тир. 1000. Бесплатно Типография № 3 УПЛ, ф. 2. Ленинград, Московский пр., 26.