Файл: Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей.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