Разделы
Рекомендуем
|
Автоматическая электрика Автоматика радиоустройств Таблица 24-11 Условное обозначение команды Пояснение команд (с)Ха21 (с)-*Р0 an-с (с)ХСг2 (с)-(Ро) (с)Хб2 (с)-*Ро о22-с (С)Х6! а (с)-(Ро). (с) г (Pi) Печать с21-*с 1 (cJXfci (с)Ро (с)ХбЕ (с)-(Ро) (с):(Р) Печать Стой Переслать число а]2 в сумматор Содержимое сумматора умножить на число а2\ и результат оставить, в сумматоре. В сумматоре после выполнения этой команды будет произведение а]2 а2] Содержимое сумматора с12 а2\ переслать в ячейку р0 памяти (ро- рабочая ячейка для хранения промежуточных результатов). Переслать число an в сумматор Содержание сумматора умножить на число с22 и результат оставить в сумматоре. В сумматоре после выполнения этой команды будет произведение аи - а Из содержимого сумматора вычесть содержимое ячейки ро и результат оставить в сумматоре. После этой команды в сумматоре получим значение D Содержимое сумматора (D) переслать в рабочую ячейку pi памяти Переслать число аг2 в сумматор Умножить содержимое сумматора на число Ь2 и результат оставить в сумматоре. После выполнения этой команды в сумматоре получим произведение с12 Ь2 Переслать содержимое сумматора в рабочую ячейку р0 Переслать в сумматор числа а22 Умножить содержимое сумматора на число bi и результат оставить в сумматоре. В сумматоре после выполнения этой команды получим произведение а22 Ь\ Вычесть из содержимого сумматора содержимое ячейки ро и результат оставить в сумматоре. В сумматоре получим значения Dx\ Разделить содержимое сумматоров (Dxi) на содержимое ячейки р\ (D) и результат оставить в сумматоре. В сумматоре получим Х\ После перевода содержимого сумматора (*i) из двоичной системы в десятичную вывести на печать Переслать а2\ в сумматор Умножить содержимое сумматора на число Ь\ и результат оставить в сумматоре. В сумматоре получим произведение а21 Ъ\ Переслать содержимое сумматора в рабочую ячейку р0 Переслать число ап в сумматор Умножить содержимое сумматора на Ь2 и результат оставить в сумматоре. В сумматоре получим ац bi Вычесть из содержимого сумматора содержимое ячейки р0 и результат оставить в сумматоре В сумматоре получим Dx2 Разделить содержимое сумматора на содержимое ячейки р\ и результат оставить в сумматоре. В сумматоре получим х2 После перевода содержимого сумматора (х2) из двоичной системы в десятичную вывести на печать. . За основной программой, начиная с ячейки 0130, разместим исходный число- Ячейки 0136 и 0137 отведены под рабочие:
исходный числовой материал 0136-. 0137 - Ро] Рх.\ рабочие ячейки. После размещения в памяти программы, числового материала, промежуточных и конечных результатов программа кодируется. В табл. 24-12 приведена программа решения системы двух уравнений в условных обозначениях, а также в закодированном виде.
Ввод программы и исходных данных в оперативную память машины можно осуществить с пульта вручную, набирая каждую команду или число на пульте управления и вводя в соответствующую ячейку памяти. Однако такой способ ввода ведет к большой потере машинного времени, особенно при вводе длинных программ. Кроме того, при вводе возможны ошибки. Для ускорения процесса ввода программу и исходный числовой материал представляют в виде, пригодном для автоматического ввода в оперативную память машины. Для этого программа и исходные данные переводятся на перфокарты или на перфоленту с помощью внешних устройств, непосредственно не связанных с машиной. Поэтому при работе на них машинное время не расходуется. После перевода программы и исходных чисел на перфокарты или перфоленту программа и числовой материал вводятся в оперативную память и с этого момента начинается процесс отладки программы и решения задачи. . Составление циклических программ. Для решения задач на цифровых машинах чаще всего составляются циклические программы. Это вызвано в основном тем, что численные методы, реализуемые при составлении программ, предусматривают циклическое повторение одних и тех же операций для получения конечных результатов. К многократному повторению одних и тех же операций на каждом шаге сводят- ся все методы решения систем дифференциальных уравнений, некоторые методы решения Линейных алгебраических уравнений и т. д. Разработка циклических программ сводится главным образом к составлению программы основного оператора, по которому выполняются арифметические и логические операции, производится пересылка числового материала из одних устройств, машины в другие и т. д. Для многократного исполнении данного оператора вводится ряд дополнительных команд, назначение которых состоит в обеспечении повторения цикла с новыми исходными данными или выхода из него. В качестве примера циклической программы рассмотрим программу вычисления квадратного корня из положительного числа Л<1: *x = V А . Вычисление будем производить по из вестной итерационной формуле Ньютона, по которой каждое последующее приближение Х-П+, искомого корня х определяется через предыдущее хп с помощью равенства: x +i = 0,5К, + - ) . (24-103)- \ хп I Вычислительный процесс будем считать законченным, когда *и+1- хп\<е, (24-104) где е - наперед заданная положительная величина, характеризующая точность решения задачи. Для определения первого приближения по формуле (24-103) необходимо назначить начальное значение х0. В качестве начального значения х0 удобно принять величину, определяемую по формуле х0 = 0,5 + 0,5 .4. (24-105) При таком выборе начального приближения Хд итерационный процесс быстро сходится. Таким образом, алгоритм решения задачи состоит из формул (24-103)- (24-105). Блок-схема программы представлена на рис. 24-144. Рис. 24-144. B*vtarenua3 Первая группа комавд (оператор /) , обеспечивает вычисление начального, при- ближения. Эта группа команд не входит в цикл программы. Вторая группа команд (оператор 2) обеспечивает вычисление корня по итерационной формуле (24-103). Третья группа команд (оператор 3) оценивает разность \хп+1-Хп [-в и определяет дальнейший порядок вычислительного процесса. Если разность \хп+\-хп\- 60, то управление передается на начальные команды цикла; если разность \xn+i-хп\-е<0, то управление передается на группу команд (оператор 4), осуществляющую вывод конечного результата из машины н остановку ее. Программа в общем виде представлена в табл. 24-13. Таблипа 24-13
Рассмотрим вопрос о размещении программы, исходных чисел, промежуточных и конечных результатов в памяти. Примем, что в ячейках с 0100 по 0120 размещается программа. В ячейках 0121- 0123 - исходный числовой материал: 0121-0,5 0122 -А 0123-8 Ячейки 0124-0125 -рабочие: 0124 - р0 0125 -pi. В табл. 24-14 программа представлена в закодированном виде. В рассмотренной программе исходные числа в ячейках памяти записаны в двоич- Та блица 24-14
вой системе счисления, а содержимое сумматора выводится на печать после перевода в десятичную систему. Преобразование команд. В предыдущей программе в качестве исходного числа была величина х=хо. Цикл выполнялся машиной столько раз, сколько необходимо для получения результата с заданной точностью. При этом после каждого цикла изменялось лишь одно число, хранящееся в ячейке памяти, где вначале была записана величина х0. Вид команд при этом не изменялся. Число х n+i использовалось для определения момента выхода из цикла. Это число часто называют параметром цикла. В качестве параметра цикла может служить специально подобранное и помещенное в свободную ячейку число. Изменение параметра при каждом повторении цикла осуществляется с помощью группы команд, называемой счетчиком. В результате анализа счетчика должен вырабатываться сигнал условной передачи управления, по которому команда условного перехода передает управление. или на начало цикла, или на выход из него. При реализации циклической программы арифметические действия могут производиться не только с числами, но и с некоторыми командами. В результате этих действий изменяется вид команд, а следовательно, и их смысловое содержание. Например, если к команде 01 0135 прибавить постоянное число 00 0001 в режиме фиксированной запятой, то получим команду вида 01 0136, в которой адресная часть изменена на единицу. Если же к команде 01 0135 прибавить число 04 0002 в режиме фиксированной- запятой, то получим новую команду, в которой изменены и код опера-
|
© 2010 KinteRun.ru автоматическая электрика
Копирование материалов разрешено при наличии активной ссылки. |