Файл: Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.06.2024

Просмотров: 119

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Ввод программы п чисел

__________ [_________

Перевод чисел из двоичнодес. в двоичную сист. счисл.

I

Определение сх +'d

I

Нахождение у

__________{■_________

Перевод у из дв. в двоичнодес. систему

I

Печать у и останов

2. Размещаем исходный числовой материал в ЗУ

21

 

Т а б л и ц а

№ ячеек для хранения

„ Исходный числовой материал

 

исходных данных

(содержимое ячеек)

 

“і

а

 

“а

ь

 

“3

С

 

« 4

d

 

Ч

X

 

3J Составляем рабочую программу

для 3-адресной ЦВМ. ■

 

 

Т а б л и ц а

22

Ns-

КОП

А,

ячеек

 

 

N + 1

X

<*3

N + 2

+

Рі

ІѴ+3

H~cp

Ра

N + 4

УПШ

 

ЛГ+5

X

 

N + 6

+

Ра

AM -7

 

Pa

N +

10

пч

‘ Pi

N + 11

о с т

 

N +

12

00

0000

AM13

о о *

0000

N +

14

пч

 

N +

15

о с т

 

Аг

Аз

. “ Б

Рі

“4

рі

N +

14

“ Б

Pa

“а

Pa

Рі

Pi

 

0000 0000

0000 0000

Примечание

t H II

-Cl

A — Л, +

d -> p,

ш = 0, если

(Pi) Ф o

 

<i) = 1, если

(Pi) = o

 

Переход к 7У+14 при ш=1

при<*> = 0

к N 4- 5

B1 — ajc-± рз

 

В = Ві +

Ь -*■

рз

, г

 

ах +

Ь

Рі

У —

сх

,

,

 

 

-+

а

 

У на

печать

 

 

 

р, I Рабочие р2J ячейки

Напечатать «0», если сх +'d = 0

Замечание. Данная программа написана в условных адре­ сах и командах. Если требуется написать программу в дей­ ствительных адресах, то вместо условных обозначений «ь

187


иг • • •, pi, Р2, N пишут действительные адреса в восьмеричной системе счисления (т. е. вместо схь например, 0012, вместо иг — 0013 и т. д., вместо Л/. — 0100).

Пример 2. Написать ту же программу в действительных адресах

Содержимое ячеек

а

0

С

d

X

(исходные числовые данные).

 

 

 

 

 

Номера ячеек для хранения исход­

0012

0013

0014

0015

0016

ных данных (в восьмеричной си­

 

 

 

 

 

стеме счисления)

 

 

 

 

 

Примем следующие условные значения для кодов операций (в вось­ меричной системе очисления):

05 —■умножение

01— сложение

15 — сравнение на равенство

76—: условный переход при

ш = 1

 

04 — деление

 

 

 

50 —'печать

 

 

 

17 — останов

 

 

 

№ ^

к о п

А -

Аг

A3

ячеек

 

 

 

 

0101

05

0014

0016

0112

0102

01

0112

0015

0112

0103

15

0112

0014

 

0104

76

0112

0113

0105

05

0016

0106

01

0113

0013

0113

0107

04

0113

0112

0112

ОНО

50

0112

 

 

0111

17

0000

0000

0000

0112

00

0113

00

0000

0000

0000

0114

50

 

 

 

0115

17

 

 

 

,

Т а б л и ц а 23

Примечание

А1~ с • X ->■ Рі

А = А\ +'rf -*■ р!

В1 — ах р<2 В ~ B i -f Ь -> Ра

У - Р і

Уна печать

Рі

печать «0» Рз

Пример 3. Вычислить значение многочлена одного переменного / (х) = 5х4+'4х3+ Зх2 + 2х + 1.

1. Для вычисления такого многочлена составляется схема счета Гор­ нера, представляющая/(х) в виде:

f(x ) = { [(5.x + 4) х -f- 3] .х + 2} х -)- 1.

Алгоритм вычисления такого многочлена сводится к выполнению последовательности операций:

1)

А, = 5х;

2)

Л2 = А, + 4;

3)

A3— A2*x;

4)| Ац = Аз + 3;

5)

As — A4 х;

6)

Аб = As + 2.

7)

Ai = As ‘Xi

8)

As = Aj + 1.

 

 

188


2. Отведем ячейки памяти для числового материала.

 

Т а б л и ц а 24

№ ячеек

Исходный числовой

для числовых данных

материал

 

 

 

“0

 

 

 

 

'

 

5

 

 

 

 

 

-

«J

 

 

 

 

 

 

4

 

 

 

 

 

“а

 

 

 

 

 

 

3

 

 

 

 

 

 

“3

 

 

 

 

 

 

2

 

 

 

 

 

 

«.1

 

 

 

 

 

 

1

 

 

 

 

 

“5

 

 

 

 

 

 

.V

 

 

 

3. Составляем рабочую

программу

для 3-адресной

ЭВМ.

 

 

'

'

 

 

 

 

 

 

 

Т а б л и ц а 25

' Ns

 

к о п

А,

 

 

 

 

 

 

 

 

 

ячеек .

 

Аг

 

A3

 

Примечание

в 8-й СС

 

 

 

 

 

 

 

 

 

 

 

 

N + 1

“о

 

“ 5

 

Pi

A I = 5 x->- p,

 

N + 2

Рі

 

al

 

Pi

A 2 = A { + 4->- p,

УѴ+

3

Рі

 

“ 5

 

Pi

As — A2 • X

 

Pj

N 4 4-

+'

Pi

 

<z2

 

Pi

A4 = A3 +

3 -*■ Pi

N + 5

X

Pi

 

“6

 

Pi

<4s.= A4 • X - *

p

/Ѵ + 6

+!

Pi

 

“ 3

 

Pi

/І6 =

As +

2

Pi

N +

7

X

Pi

 

“6

 

Pi

^7 = Аб •X-*- Pi

/ / + 1 0

+

Pi

 

“ 4

 

Pi

<4e =

A7 +

1 -i- Pi

/ / + 1 1

п ч

Pi

 

 

 

 

(p,)

на

печать

/ / + 1 2

ост.

 

 

 

 

 

 

 

 

 

 

 

N +

13

00

0000

 

0000

0000

p1 N

+ '

13 раб. ячейка

■Пример 4. Найти- у

=

шах (а,

в, с,

d).

 

 

 

 

 

Используем следующий алгоритм поиска:

 

 

 

 

 

если

а — в > 0,

тоя-*-рі,

иначе

в

 

 

 

 

 

 

если

с — d > О,

то е

р

2,

иначе

d -* рг.

 

 

 

 

 

Затем найдем разность

 

 

 

 

 

 

 

 

 

 

(Рі) -

(Ра)

и

 

 

 

 

 

 

 

 

 

 

 

если

 

 

 

 

 

 

 

 

 

 

 

 

 

(Рі) — (рг) > 0 , то

печать

(рх),

иначе (pj).

 

 

 

 

 

 

Распределим числа а, в - с, d в ячейках памяти

 

 

 

 

189'



 

Т а б л и ц а 26

 

Номера

Содержимое

 

ячеек

ячеек*

 

“1

а

 

“а

ь

 

аз

С

 

“4

d

Составляем

рабочую программу

для З-адресной ЭВМ, предвари­

тельно составив следующую блок-схему программы:

Нахождение

>

Нахождение

с d

а b

I

I

(Рі)— (Ра) > О

да

Печать (р,)

?

 

I нет

і

Печать (р,)

190'

Т а б л и ц а 2F

§ 2—3. Программирование по формулам на алгоритмическом I языке АЛГОЛ *

Для -написания программы на языке АЛГОЛ -нет необхо­ димости знать команды конкретной ЦВМ, так как програм­ ма, написанная на АЛГОЛЕ, может быть решена практиче­ ски на любой ЭВМ, имеющей транслятор, т. е. программу перевода с языка АЛГОЛ на язык конкретной машины. На­ помним, что для записи программы на АЛГОЛЕ используют­ ся большие и малые буквы латинского алфавита, знаки различных операций, точка с запятой и др. (приложение 1).

Вычисляемые формулы и числа записываются в строчку. Числа записываются в десятичной системе счисления, толь­ ко вместо запятой ставится точка.

Арифметические операции в АЛГОЛе разбиты по стар­ шинству на 3 класса: возвышение в степень | является самой старшей операцией, сложение + и вычитание — явля­ ются младшими операциями; умножение и деление занимают промежуточное положение между старшей и младшей опера­ циями.

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

чае подряд

-стоящих

операций одного класса

выполнение

операций происходит слева направо.

 

Пример 1.

Вычислить у =

а х + b

численных

'--------—— при определенных

значениях,

 

 

сх + а

 

а = 37,77855.

й =

87,376

 

6 = 76,7701,

т =

3,14159

 

с =

77,856,

 

 

 

Программа на АЛГОЛе запишется в виде:

begin real у; у: = (3.14159 x 37.77856 + 76,7701)/

(3.14159X 37 . 77856 + 87.376); outpui{y) end

Здесь знак: = называется оператором присваивания и читается «вычислить значение выражения и присвоить это значение переменной у». begin . . . end операторные скобки; real служит для описания дей­ ствительных переменных (заметим, что для описания целых переменных служит integer); output— это процедура вывода данных из машины на

печать.

Пример 2. Вычислить

 

у =

sin X +

X» +

0,97

 

 

V х г +

0,24

где X = 0,35.

 

 

 

 

 

 

 

 

 

 

 

На АЛГОЛе программа запишется в виде:

 

 

begin real у,

г\ г:

=

sqrt

(0.35 1 2

+ 0.24); у. =

sin (0.35) +

+

(0.35

t

2 +

0,97)//-;

outpui(y) end

 

* Для детального изучения языка АЛГОЛ рекомендуется пользо­ ваться литературой (8, 9).

192