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

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

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

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

Добавлен: 18.06.2024

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

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

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

Пример 10. Составить на АЛГОЛе программу расчета зарплаты в соот­ ветствии с примером 3 § 2—5:

begin integer i, л; real А , D, Р\

real

array X,

Y,

В,

V,

Z,

[1:л]; '

Boolean array

d [1://];

 

 

for i: =

1

step I until

n do

 

 

begin

A: = A'[/'j X Г[/]

+

B[/];

 

 

D: = if d[t] then

о

else

0.06XA;

 

if

A > 100 then

P:

= 8,2

+ 0,13 X (A - 100)e!seP: = 8.2;

Z[i): = A — V[i] — D - P -

output (/, X[i], У[і], ß[/], Г[/], D, P , Z{i\)

end end

§2—7. Циклы с заранее неизвестным числом прохождений

иих обработка в машинных командах

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

Лрнмер 1. Вычислить sin а " , разложенный в ряд

Вычисления прекратить, когда вычисленный член ряда станет меньше

заданного числа

е.

 

 

 

 

между

членами

ряда Лл+1 и

Воспользуемся

соотношениями

частными суммами S,І+1:

 

 

 

 

 

 

 

 

 

Un+1

X1

——-

,

 

где

= 2/1(2/1+ 1)

 

 

 

 

 

 

 

Яя+1

 

 

 

 

 

 

 

Sn+i =

Sn +

Un+i-

 

 

п — 1,2...

 

Для организации цикла по этим формулам составим соотношение для

п Обозначим Ъ,, =

Гл,

сп = 2/і + 1.

 

 

 

Тогда

: сп =

Ьп +

1,

сп + 1

=

Ьп + 1

+

1,

 

 

 

bn+1=

2(л +

1) =

2/1+

1 +

1 — сп +

1,

 

 

 

1

= ^Vi+ l'C/i+ i-

 

 

 

 

 

 

 

 

 

По данным Un, Sn, сп

определим

Un+,, S„+1,

сл+1.

Начальные значения величин

U,

S

и С:

 

 

 

 

 

 

 

UQ = X , S0 = X, CQ = 1.

 

212


Распределяем память для числовой информации.

Т а б л и ц а 48

JMfe

 

 

Исходная числовая информация

ячеек

 

 

 

 

 

 

X = ІІп, в дальнейшем Uл+1 член ряда

«2

S0=

x,

в дальнейшем

5 П+ 1 сумма

«8

С„ =

1,

в дальнейшем

Ся+1.

“а

 

X

 

 

“6

 

1

 

 

«0

 

е

 

 

Составляем рабочую программу для 3-х адресной ЦВМ'.

 

 

коп

ячеек

 

 

 

N +

1

.

X

N + 2

 

N + 3

 

+

N +

4

 

+,

N + 5

 

X

N + 6

 

X

N +

t

 

:

N +

10

 

+

N +

И

н

N + 12

 

УПы0

N +

13

 

п ч

N +

14

 

ост

 

 

 

 

 

 

Т а б л и ц а

49

А\

а 2

Az

 

Примечание

 

“4

ч

ч

Х~ -> ад

 

 

 

 

Ч

°4

Х г

 

ец

 

 

®3

ч

Рі

6і =

Со +

1

Рі

 

Рз

°6

«3

Ci =

by +

1 -+ а3

 

Рі

«3

Pi

Ч -

by Су -> Px

 

а1

ч

а1

X 2-V„ ■* at

 

 

“1

Рі

“1

U1 ->■а,

 

 

 

а2

“1

ч

Вычитание модулей чисеі

“1

Ов

 

 

 

 

l(oi) 1> І(ч)1.

IO « =

0

 

 

 

l(“,)l

<

l(a o)l.

TO 0) =

1

 

N 4 - 3

 

 

 

 

 

 

 

“2

 

 

S„ +1

на печать

 

Пример 2• Вычислить cos х, разложенный в ряд с точность до е.

213


где:

Un+, член ряда равен

Un+i = -г2

, Яп+х= (2я+ 1)(2п+2у

ал + 1

ичастичная сумма 5,1+і — Un+t + S„.

Начальные значения:

л = 0,

{/„ =

!,

S 0 — 1.

 

 

 

 

 

Распределим

числовую информацию.

 

 

 

 

 

 

 

 

 

Т а б л и ц а

50

 

 

 

 

Исходная информация

 

ячеек

 

 

 

 

 

 

 

 

 

 

 

 

 

“ і

 

U0,

в дальнейшем

Н,!+1

 

 

 

а3

 

S0,

в дальнейшем

5 Л+1-

 

 

 

° 8

 

X,

в дальнейшем

х г

 

 

 

а 4

 

п =

0, в дальнейшем

п

 

 

 

“ S

 

1

 

 

 

 

 

 

 

а в

 

2

 

 

 

 

 

 

 

а 7

 

е

 

 

 

 

 

 

Составляем 3-х адресную циклическую программу.

 

 

 

 

 

 

 

 

 

Т а б л и ц а

51

 

к о п

 

Аі

Ä2

 

 

Примечание

 

ячеек

 

 

 

 

 

2

 

3

4

 

5

6

 

N + 1

X

 

“3

аз

 

“3

х г -*■03

 

N + 2

 

 

аз

 

а 8

х г - a3

 

N +

3

X

 

°в

“4

 

Pi

2я - ►pi

 

N +

4

+

 

Рі

°6

 

Рг

2л -f- 1 —>“p2

 

N 4- 5

+

 

Pi

аѳ

 

Pi

2 n + 1 2 - P!

 

N +

6

X

 

ь

рі

 

Pi

S/l+ l Pl

 

N +

7

-

 

а1

pi

 

Pi

Un

 

 

 

 

Pl

 

N +

10

 

 

 

 

 

 

fln+l

 

X

 

“8

Pi

 

“l

Un+l -* al

 

N +

11

+

 

а2

“i

 

“a

5 n+l -*■ “j

 

214


 

 

 

 

 

П р о д о л ж е н и е

1

2

3

4

5

2

N + 12

1—1

“1

“ 7

 

Вычитание модулей

N + 13 N + 14 N + 15 N + 16

 

 

 

 

ІЮІ -

ІЮІ

 

 

 

 

І(аі)І >

ЮІ> “ •= 0

 

 

 

 

ІЮ) < ІЮІ. ш = 1

+

° 4

ав

*4

П а4

УПШ„

 

N + 3

 

 

 

пч

«г

 

 

S„+j

печать

ост.

 

 

 

 

 

Пример

3. Вычислить

f{x) = е~х'

с точностью до е.Функция f(x) =

= е~х может быть разложена в ряд

 

 

 

 

е'

 

 

X

 

 

дг3

 

 

 

 

 

1!

 

 

+ . . .

 

 

 

 

 

 

 

 

3!

 

Воспользуемся соотношениями между членами ряда

и частны­

ми суммами Sn+1,

где n =

0,

1,

2 . ..

 

 

Uп+1= и п.

 

■ ■

, 5 П+1 = Sn + U,Jfl.

 

 

 

 

 

 

п +

1

 

 

Начальные значения

п =

О,

U0 =

1,

S 0 = 1

 

Распределим память для числовой информации.

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а 52

 

 

 

Исходная числовая информация

 

ячеекі

 

 

 

 

 

 

 

 

 

 

 

 

 

“1

л =0, в дальнейшем п +

1

 

а3

U0,

в дальнейшем

Un+i

 

 

аз

S 0,

в дальнейшем

Sn+x

 

“4

X

 

 

 

 

 

 

 

 

“6

1

 

 

 

 

 

 

 

 

°в

8

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

215


Составим блок-схему программы:

 

 

 

 

 

 

 

Т а б л и ц а

53

КОП

Аі

Az

Лз

 

Примечание •

-

ячеек

 

1

2

3

4

5

 

 

6

 

N + 1

ч*

 

аб

аі

/і Ч- 1

 

 

N + 2

X

а2

“4

а2

Uп*X “*• Я2

 

N + 3

.

“2

' “1

«2

 

Ѵп-х

 

 

г - ;— -> а 2

 

N + 4

 

 

 

 

 

и + 1

 

 

 

а2

“2

Un + 1

а2

 

N + 5

+

а3

“2

«3

5 П+ 1

“8

 

'

216