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

 

мы поместим код, в

адресе втором

которого

в 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