Файл: Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.06.2024
Просмотров: 98
Скачиваний: 0
Пример 3. Вычислить |
У ~ |
А + В-х |
» • |
|
х* |
||||
|
|
|||
|
|
1 + 3 + 2.x3 |
|
|
где А = 1, В = 5, X = 3. |
|
|
|
|
Запись программы на АЛГОЛе: |
|
|||
begin real belay, beta у: = (1 + |
5 X 3 )/ (1 + 3 | 2)'/(3 + 2 x 3 f 3); output |
|||
{beta у) end |
|
|
|
Пр и м е р 4. Написать на АЛГОЛе программу вычисления выражения
— Ь + (— \)1ѴЬ' — 4ас
где Ьг — 4ас > 0.
begin integer i; real a, b, c; X (b X b — 4 X a. X c)) /
x[i] : —( — b + (— 1) t i X sqrt X (2 X a); output {x [r]) end
§2—4. Описание циклических программ
вмашинных командах
Вычислительные процессы, в которых алгоритм представ ляется в виде ряда повторяющихся серий опеіраций, называ ются циклическими, а повторяющиеся в них участки — цик лами.
Рассмотрим основные методы организации циклов.
Метод счетчика. Пусть в некоторой ячейке находится число п, определяющее количество циклов. Метод счетчика заключается в том, что, прибавляя «1» к содержимому неко торой ячейки а, в которой первоначально находился ноль, при каждом проходе сравнивают (а) и п*.
Пример |
1. |
Вычислить |
и |
напечатать |
последовательность |
чисел |
||||
У і = |
а . X? , |
где |
і — 1, |
2, . . . |
100 |
и x t = 1 , х2 = |
2, х 3 —3, . . . x t = |
і; .. |
||
•*іоо = 1 0 0 . |
|
|
|
|
|
|
|
|
|
|
* Числа л |
и 1 могут быть представлены либо в виде целых десятич |
|||||||||
ных чисел (как |
во всех |
последующих |
примерах, |
т. е., например |
|
|||||
затем |
(а) = |
1, |
затем |
(а) = 2 |
и |
(о) = |
0, |
л), |
|
|
т. д. |
(а) = |
|
|
преобразуемых в ЦВМ в двоичную систему счисления, либо в виде двоичных эквивалентов десятичных чисел, располагаемых в младших раз
рядах |
машинного слова |
(т. е. например: сначала (а) |
= 00 0000 |
0000 |
0000, |
||
затем |
(о) =00 0000 0000 |
0001, затем |
(<*) |
= 00 0000 |
0000 0010 |
и т. |
д, |
Если, например, п —25, то конечное |
(а) = |
00 0000 0001 0101). |
|
|
|||
13* |
|
|
|
|
|
|
193 |
Расположим числа в ячейках памяти.
1 |
Содержимое |
JNfo |
|
ячеек |
ячеек |
|
|
“і |
= 1 |
°2 |
а |
а3 |
1 |
а4 |
100 |
°5 |
0 |
Т а б л и ц а 28
Примечание
Дальше л'г = 2, л'з — 3, ... Хі = і,
• • • х п = п
Шаг изменения і и х п — число циклов. Ячейка счетчика
Составим блок-схему программы:
Печать ах2.
Прибавление |
, |
«1» к счетчику |
|
1 |
|
Содержимое |
да |
счетчика |
|
равно |
_______і-Останов |
п |
|
? |
|
нет |
|
Составим рабочую программу для 3-х адресной ЭВМ.
\
194
№ |
|
к о п |
А, |
Аг |
Аз |
|
ячеек |
||||||
|
|
|
|
|||
N + |
1 |
X |
а , |
|
р |
|
N + |
2 |
X |
р |
“2 |
р |
|
N + |
3 |
ПЧ |
р |
|
|
|
N + |
4 |
+1 |
“j |
“3 |
аі |
|
N + 5 |
+! |
«Б |
О. |
а5 |
||
W + 6 |
+ ср |
аБ |
а4 |
|
||
N + |
7 |
УГЦ |
|
N + 1 |
|
|
N + |
10 |
о с т . |
|
|
|
|
N + |
11 |
0 0 |
000» |
0000 |
0000 |
|
|
|
1 |
|
|
|
Т а б л и ц а 29
Примечание
X1 |
р |
.О |
|
|
|
3< |
t |
|
|
|
|
ах2 ->■ |
на печать |
|
|||
Определение х,- ->■ а. |
|||||
Организация счетчика: |
|||||
0 + |
1 “*■°8 і 1 |
+ 1 |
“*• °5і |
||
1 + 1 + 1 - М ( ' И Т . д. |
|||||
(“б)= Ы , |
ТО |
О) = |
1 |
||
К ) |
=г= (“4). |
то |
ш = |
0 |
|
р рабочая |
ячейка |
|
В данной программе в ячейке as происходит перебор циклов (подсчет количества циклов). Как только (as) = ко личеству циклов п, машина выходит на останов.
Программа отпечатает последовательность чисел ахи ах2, ахз,... ахп.
Пример |
2. Вычислить |
и |
напечатать |
последовательность уі —Xj3, |
||
где хі = 1 |
п и изменяется с шагом |
S, а / = 1, 2, |
3, •... т. |
|||
То есть хі = |
1, х3 — 1 + S, |
х 3 = |
1 + |
2S ......... |
х т = |
I + (т — 1) S = я |
|
|
|
|
Т а б л и ц а 30 |
№ |
' |
Содержимое |
Примечание |
|
ячеек |
|
|
ячеек |
|
|
|
|
||
“і |
|
. |
1 |
■*; |
|
|
|
т |
количество циклов |
“3 |
|
|
S |
шаг изменения х |
°4 |
|
|
1- |
1 для увеличения счетчика на «1» |
Об |
|
|
0 |
Ячейка счетчика |
|
|
|
/ |
|
|
Составим |
рабочую программу для 3-х адресной ЭВМ |
||
13* |
|
|
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а |
31 |
|||
№ |
|
к о п |
|
А, |
Ач |
Аз |
|
|
Примечание |
|
|
|
|||||||
ячеек |
|
|
|
|
|
|
|||||||||||||
N + 1 |
|
X |
|
|
“і |
|
аі |
р |
Х і 2 - р |
|
|
|
|
|
|
|
|||
N + |
2 |
|
X |
|
|
Р |
|
“1 |
р |
Хі3 -* р |
|
|
|
|
|
|
|
||
N + |
3 |
' ПЧ |
|
|
Р |
|
|
|
Уі ->• на печать |
|
|
|
|
|
|||||
N + |
4 |
|
■+' |
|
|
а, |
|
03 |
пі |
Определение Хі |
|
|
|
|
|
||||
ЛҢ- 5 |
|
+ ’ |
|
|
“6 |
|
Ч |
Об |
Организация счетчика в ячей |
||||||||||
|
|
|
|
|
|
|
|
|
|
ке |
ав |
|
|
|
|
|
|
|
|
N + |
6 |
“Ьср |
|
|
«3 |
|
аь |
|
( |
(°г) Ф («б). |
|
ш = |
0 |
|
|
|
|||
|
|
|
|
1 (“а) = |
К ) . |
|
“ = |
1 |
|
|
|
||||||||
N + 7 |
УПй>0 |
|
|
|
N +1 |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
N + |
10 |
ОСТ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N + |
11 |
ОО |
|
0000 |
0000 |
0000 |
Рабочая ячейка |
р |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
л = 1000 |
|
|
і = |
|
|
|
|
.п. |
|
|
Пример 3. Найти сумму чисел |
S = |
|
|
где |
1, 2, 3 . , |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
<=і |
|
|
|
|
|
|
|
|
|
|
Располагаем исходные числа а\, я2, я3 . . . яІОоо соответственно в ячей |
|||||||||||||||||||
ках памяти oj, |
аг, |
а3, . .. а,nog, |
а п = 1000 в ячейке |
а1000. |
|
|
|
|
|
||||||||||
В |
6, поместим |
«1» пересчета, а в ячейке |
а |
организуем счетчик. При |
|||||||||||||||
чем |
в |
ячейку а вначале |
поместим 3, |
так как сумму трех чисел |
|||||||||||||||
Я] + я2 + |
я3 подсчитаем |
во |
второй |
команде. Для организации |
|
переадре |
|||||||||||||
сации |
по |
команде+'; |
.pj,. а3, р, |
нужно, |
очевидно, |
всякий раз |
увеличи |
||||||||||||
вать на 1 |
А2 э т о й команды. Для этого в ячейку |
|
5г мы поместим код, в |
||||||||||||||||
адресе втором |
которого |
в 1 |
разряде записана |
«1». |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
(В2) = |
00,0000,0001, 0000. |
|
|
|
|
|
|
|
|
||||
Прибавляя |
(8г) |
в |
команде |
+'; Рі а3. рх, |
будем |
последовательно |
|||||||||||||
накапливать в ячейку Рі сумму чисел. Таким |
образом, |
рабочая |
програм |
||||||||||||||||
ма примет следующий вид. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а |
32 |
|||
№ |
|
к о п |
|
|
|
|
Аг |
|
Аз |
|
|
Примечание |
|
|
|||||
ячеек |
|
Аі |
|
|
|
|
|
|
|||||||||||
1 |
|
2 |
|
|
3 |
|
|
4 |
|
5 |
|
|
|
|
6 |
|
|
|
|
N + V |
•+ |
|
|
“1 |
|
аг |
Рі |
|
й\ |
Q.0 |
|
PJ |
|
|
|
|
|||
N + 2 |
+ |
|
. |
Рі |
\ |
|
“з . |
Рі |
|
й\ +* Ü2 + |
йз~> PJ |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
Оі + 1Ö2 + |
Оз + |
04 |
pj |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
Яі + |
я2 + |
.. . Яюоо |
|
Рі |
196
П р о д о л ж е н и е
1 |
2 |
3 |
4 |
5 |
|
|
|
6 |
|
|
N + 3 |
+ k |
N - 1- 2 |
|
' N + 2 |
Формирование команды |
|||||
|
|
|
|
|
переадресации |
|
||||
N + 4 |
+ |
а |
|
а |
3 + 1 •+ а И Т . Д . |
|
||||
JV + 5 |
+ ср |
а |
а1000 |
|
( а ) |
ф 1000, |
со |
= |
0 |
|
|
|
|
|
|
( а ) |
= |
1000, |
со |
= |
1 |
N + 6 |
УПШ„ |
|
N + 2 |
|
СО |
= 0, ТО; к JV + 2 |
||||
N + 7 |
пч |
н |
• |
|
со = |
1, цальше |
|
|||
N + 10 |
ост |
|
|
|
(Рі) |
на печать |
|
|
||
|
|
|
|
|
|
|
|
|
||
N + U |
0 0 |
0000 |
0001 |
0000 |
82 |
для переадресации |
||||
N + Ѵ2 |
00 . |
0000 |
0000 |
0000 |
р, рабочая |
ячейка ч |
Пример 4. Составить программу вычисления суммы
п
S = 2
1 Общая структурная блок-схема программы, очевидно, будет иметь вид
197
Отведем |
для чисел я;, &; |
соответствующие ячейки |
памяти. |
|
’ |
|
Т а б л и ц а 33 |
№ ячеек |
Числа |
№ ячеек |
Числа |
“2 |
а1 |
'i |
6. |
а2 |
І2 |
|
|
а3 |
аз |
!з |
Ьз |
I |
ап |
ЬП |
ah |
||
а |
п |
1 |
Составляем рабочую 3-х адресную программу.
Т а б л и ц а 34
№ |
|
КОП |
Л, |
Лг |
|
ячеек |
|||||
N + |
1 |
X |
|
Рі |
|
N + 2 |
+ Х |
N +1 |
N + П |
||
N + |
3 |
+' |
Ра |
Р. |
|
УѴ+ |
5 |
+ ср |
Рз |
а |
|
N + |
4 |
+ |
Рз |
р |
|
ІѴ + 6 |
УПш„ |
|
N + 1 |
||
N + 7 |
п ч |
Р2 |
|
||
N + |
10 |
ост. |
|
|
|
где |
|
|
|
|
|
№ |
|
к о п |
А\ |
Аг |
|
ячеек |
|||||
|
|
|
|||
УѴ+ |
11 |
0 0 |
0001 |
0001 |
|
Pi |
0 0 |
Q000 |
0000 |
||
р2 |
0 0 |
0000 |
0000 |
||
Рз |
0 0 |
0000 |
0000 |
^3
Рі
W + 1
Рг
Рз
Аз
оооо
0Ö00
0000
0000
Примечание
Определение afbi
Формирование команды переадресации
Определение 2 я/ -^г |
' |
||
Проверка условия 1 = п |
|||
Увеличение! счетчика |
на |
||
единицу |
|
|
|
ш = 0, |
к N + 1 |
|
|
ш =• 1, |
к |
N + 7 |
|
|
|
п |
|
Печать |
5 |
= S аі |
|
|
|
1 |
|
Примечание
1 Константа переадреса-
іции
Рабочие ячейки
198