Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов

.pdf
Скачиваний:
25
Добавлен:
29.10.2023
Размер:
7.59 Mб
Скачать

шесть старших разрядов первого кода, и полученный результат за­

писывается в ячейку С.

 

 

 

 

находятся команды

Пр и м е р .

Пусть в ячейках 0116 и 1*371

 

 

 

03

 

3701

 

2711

 

3100

 

 

И

 

 

 

 

 

 

 

 

 

 

 

 

 

 

41

 

0012

 

2211

 

3000

 

 

После выполнения команды

 

 

 

 

 

 

 

 

 

 

22

 

0116

 

1371

 

1111

 

 

образуется код 03 3714 1123 2100,

 

 

 

 

 

 

так как

 

 

 

 

 

 

 

 

 

 

 

11

111 000

001

10

111

001

001

11

001

000

000

00

000

001

010

10

010

001

001

11

000

000

000

11

111

001

100

01

001

010

011

10

001

ооо

ооо’

Из этого примера видно, что при сложении может происходить

перенос единицы в следующий старшей разряд.

 

 

Перенос единицы в 34-й разряд не производится.

 

сложения

Аналогично выполняется команда 62, только вместо

33 младших разрядов происходит вычитание.

 

 

 

 

П е ч а т ь

чисел на бумажной ленте выполняется командой

 

 

 

32

 

А

 

В

 

С

 

 

При выполнении этой команды число из ячейки А передается в ячейку С и печатается. Для этого число должно храниться в двоично­ десятичном виде, поэтому предварительно необходимо при помощи специальной программы перевести число из двоичной системы в дво­ ично-десятичную форму.

2 2 0

Команды

б е з у с л о в н о г о

и у с л о в н о г о перехода мы рас­

смотрим в следующих параграфах.

 

§ 2.

Программирование формул

Алгоритм

решения

задачи.

Подготовка задачи к решению на

машине заключается в составлении математического алгоритма. Под алгоритмом понимают точное предписание о характере и порядке вы­ полнения конечного числа математических операций, которые позво­

ляют получить по исходным данным решение задачи.

требованиям:

Такое предписание

должно удовлетворять двум

а) д е т е р м и н и р

о в а н н о с т и ; это значит,

что, пользуясь

таким предписанием и выполнив очередную операцию, мы смогли бы однозначно определить следующую и определить, над какими числа­ ми эта следующая операция должна выполняться;

б) м а с с о в о с т и ; это значит, что таким предписанием можно пользоваться для решения целой группы однотипных задач.

Алгоритм может быть задан в словесной форме или в виде ма-

Ь ~VЬ2—4ас тематической формулы. Например, формула х = ----------- —-----------

является алгоритмом для решения квадратного уравнения ах2 +Ьх+ + с= 0, так как, во-первых, по этой формуле мы видим, какие опера­ ции и в каком порядке нужно выполнить, чтобы вычислить значе­ ния х, во-вторых, эту формулу можно применить при любых значе­ ниях а, Ь и с (а ф 0), т. е. решить любое квадратное уравнение.

Таким образом, решение задачи на электронной вычислительной машине начинается с составления математического алгоритма. Для решения одной и той же задачи может существовать несколько раз­ личных алгоритмов. Например, корни квадратного уравнения можно найти не только при помощи вышеприведенной формулы, но и при помощи метода хорд, или метода касательных, или метода итерации. Значит, для решения этой задачи существуют, по крайней мере, че­ тыре алгоритма. Выбор того пли иного алгоритма для решения зада­ чи на конкретной электронной машине зависит от ее конструкции, от количества и характера запоминающих устройств этой машины, от скорости выполнения различных операций.

Для решения задачи на какой-либо машине все операции, входя­ щие в составленный алгоритм, должны быть заменены соответствую­ щими командами этой машины. Все эти команды вместе образуют программу. Составление программ начнем с программирования но формулам.

221

Анализ формул и их расчленение на машинные операции. Как указывалось выше, алгоритм решения задачи может быть задан в виде математической формулы.

П р и м е р ы . 1) Составим программу для вычисления

а + Ьс

 

У = d - f

( 1)

Для исходных данных a, b, с, d и / отведем пять ячеек, напри­ мер, ячейки 0232, 0233, 0234, 0235 и 0236. Чтобы определить у , не­

обходимо

вычислить: 1) произведение 1= Ь с ,

2) сумму

т = а + Ь с —

= а + 1, 3)

т

а - \ - Ь с

Таким обра­

разность n = d — f и 4) частное

= —-----•

зом, потребуется еще три ячейки для хранения промежуточных ре­ зультатов /, т и п и одна ячейка для значения у. Для этих чисел используем ячейки 1102, 1103, 1104 и 1105.

Чтобы перемножить два числа из ячеек 0233 и 0234 и задать ре­ зультат в ячейку 1102, ЭВМ должна выполнить команду

03

0233

0234

1102

Теперь число / уже

вычислено и задано в ячейку 1102. Чтобы

образовать сумму т=а+1, выполняем команду

 

01

0232

1102

1103

Эта команда складывает числа ячеек 0232 и ПО2, т. е. а и 1.

Сумма т задается в ячейку 1103.

Для вычисления разности n= d—f и записи ее в Я1 ейку 1104, мы

должны включить в программу команду

 

02

0235

0236

1104

т. е. число из ячейки 0236 вычитается из числа

ячейки 0235 и раз­

ность n= d—{ задается в ячейку 1104.

 

 

222

Остается выполнить деление суммы т на разность п. Так как эти числа хранятся в ячейках 1103 и 1104, то необходимо выполнить команду

04 1103 1104 1105

Таким образом, программа вычисления у имеет вид

Код

I адрес

II адрес

III адрес

0 3

0 2 3 3

02 34

1102

01

0 2 3 2

1102

1103

02

0235

0 2 3 6

1104

04

1103

1104

1105

Зададим эту программу в виде четырех команд в оперативное запоминающее устройство в последовательно расположенные ячей­ ки, например, в ячейки ЗОЮ, ЗОН, 3012 и 3013.

Заставим теперь электронную вычислительную машину выпол­ нять команды, хранящиеся в ячейках, начиная с ЗОЮ. Мы видим, что в программе записаны адреса 0232, 0233, 0234, 0235, 0236.

Это значит, что, какие бы числа a, b, с, d и f ни задать, в ячей­ ках с этими адресами после выполнения всех четырех команд и в ячейке 1105 будет задан результат подстановки этих чисел в фор­ мулу (1). Поэтому одну и ту же программу можно использовать для нахождения значения у при любых допустимых значениях коэффи­ циентов.

2) Составить программу

для нахождения значения

 

(■а + Ь)3

*

c — d

223

Чтобы найти значение х, нужно

вычислить а + Ь, (а+Ь )2 и

сd, а затем разделить (а+Ь)* на с—d.

Поэтому программа должна

содержать команды сложения 01, умножения 03, вычитания 02 и де­ ления 04.

Зададим исходные данные а, Ь, с и d в ячейки 3000, 3001, 3002, 3003, а в ячейки 3004, 3005, 3006 и 3007 будем задавать промежуточ­

ные результаты а+ Ь,

(а+ Ь )2,

с—d и вычисленное значение х.

 

Таким образом

 

 

 

 

 

 

 

 

Ячейка

3000

3001 3002

3003

3004

3005

3006

3007

с адресом

Используется

 

 

 

 

 

 

 

 

для хране­

а

 

С

d

а+Ь

(а+Ь)2

с—d

X

ния

ь

Программа имеет вид

 

 

 

 

 

 

Код

 

1 адрес

 

II

адрес

III адрес

 

операции

 

 

 

01

 

3000

 

 

3001

3004

 

03

 

3004

 

 

3004

3005

 

02

 

3002

 

 

3003

3006

 

04

 

3005

 

 

3006

3007

 

Она работает следующим образом.

1. Число из ячейки 3000 складывается с числом из ячейки 3001 и результат а+Ь задается в ячейку 3004.

2.Число из ячейки 3004 умножается само на себя, и результат посылается в ячейку 3005.

3.Следующая команда задает в ячейку 3006 число с—d.

224 -

4.

Число из ячейки 3005, т.

е. (я+ й )2, делится на число из ячей­

ки 3006, т. е. на сd, и результат х

задается в ячейку 3007.

Таким образом, после выполнения четырех команд в ячейке ад­ ресом 3007 образуется искомое значение х.

3)

Составить программу для решения системы

 

а п Х Х + # 1 2 * 2 = b i ,

 

а 2Х Х 1 + а 22 х 2 — Ь2,

где Яц,

я12, b1, a2i, я22 и й2 — заданные числа.

Решением такой системы являются числа

 

b i 0-22 — Й2 а Х2

Й2 а 11 Ьх Я 21

 

Xi = ----------------- ,

Х2= ----------------- .

 

а 11 а 22 — а 12 а 21

а ХХ а 22 — ^ 1 2 а 21

Для вычисления значений Х\

и х 2 по этим формулам для исход­

ных данных отведем шесть ячеек с адресами от 1000 до 1005, в кото­ рых зададим числа Яц, fli2, йь я2ь «22 и й2.

Для хранения промежуточных результатов используются следу­ ющие по порядку одиннадцать ячеек с адресами от 1006 до 1020.

Начнем с вычисления определителя системы

Д — Яц Я22 а Х2 ^21 •

Для этого машина должна выполнить три команды:

1.

03

1000

1004

1006

2.

03

1001

1003

1007

3.

02

1006

1007

1010

после выполнения которых число Д будет

задано в ячейку 1010.

Переходим к вычислению определителя

 

Д1 = bi я22 — й2 ai2-

Он вычисляется при помощи следующих трех команд:

15—440

225

4.

03

1002

1004

1011

5.

03

1005

1001

1012

6.

02

1011

1012

1013

и задается в ячейку 1013.

 

 

 

 

Теперь остается вычислить определитель

 

 

Д2 = Ь2 вц — &i а2ь

 

машина должна

выполнить команды

 

 

7.

03

1005

1000

1014

8.

03

1002

1003

1015

9.

02

1014

1015

1016

после чего число Д2 будет задано в ячейку 1016.

Чтобы вычислить х, =

 

Аг

нужно числа, хранящи­

и * 2 = —

 

 

Д

 

д

 

еся в ячейках 1013 и 1016, т.е. числа Д[ и Д2, разделить на число, хранящееся в ячейке 1010, т. е. на число Д, поэтому в программу должны быть включены команды

10.

04

1013

1010

1017

11.

04

1016

1010

1020

Теперь объединим все команды в программу и укажем в отдель­ ной таблице, в каких ячейках запоминающего устройства задаются исходные данные:

226

В ячейке

Задается

с адресом

число

1000

ап

1001

ап

1002

bi

1003

й21

1004

й 22

1005

^2

 

Код

I адрес

II адрес

III адрес

 

операции

).

03

1000

1004

1006

2.

03

1001

1003

1007

3.

02

1006

1007

1010

4.

03

1002

1004

1011

5.

03

1005

1001

1012

6.

02

1011

1012

1013

7.

03

1005

1000

1014

8.

03

1002

1003

1015

9.

02

1014

1015

1016

10.

04

1013

1010

1017

11.

04

1016

1010

1020

227

Таким образом, составленная программа содержит 11 команд. Все промежуточные результаты приведены в следующей таблице:

После выполнения

В ячейке с адресом

задается число

команды

к

1006

#11022

2.

1007

й х г й ч х

3.

1010

#11^22 #12#21

4.

1011

6l#22

5.

1012

&2Й12

6.

1013

&j#22 ^2^12

7.

1014

h a u

8.

1015

b i a 2i

9.

1016

йгЯц ^1^21

10.

1017

X l

11.

1020

X z

Чтобы воспользоваться составленной программой, нужно исход­ ные данные и программу ввести в машину в заранее отведенные для них ячейки. Теперь остается с пульта управления включить машину и передать управление первой команде программы. Команды долж­ ны быть расположены в последовательных ячейках, в порядке возра­ стания адресов ячеек, тогда после выполнения первой команды будет выполняться вторая и т. д.

228

4) Составить программу для вычисления значения многочлена

Р (х) = а0 х3 + at х2 + а2х + а3

при х = с ,'

Зададим числа а0, аи а2 и а3 в ячейки 0030, 0031, 0032 и 0033, а число с — в ячейку 0034. Для вычисления Р(с) будем последователь­ но вычислять

с2, са, а2 с, ciic2, а0 с3, o2c + as, ахс2 + а2с + а3

и Р(с) = а 0 с3 + ахс2 + агс + а3.

Это можно сделать при помощи следующей программы:

 

Код

I адрес

II адрес

III адрес

 

операции

1.

03

0034

00 34

00 35

2.

03

0034

0 0 3 5

0 0 3 6

3.

03

00 34

0032

00 3 7

4.

03

00 35

0031

0 0 4 0

5.

0 3

0 0 3 6

00 30

0041

6.

01

0 0 3 3

0037

0 0 4 2

7.

01

0042

0 0 4 0

0 0 4 2

8.

01

00 42

0041

00 42

229

Соседние файлы в папке книги из ГПНТБ