86
Где:
b
i
= b
i-1
+ r
i
S = Sum (d1,
, d
N
)
- Sum (r1, .... r
M
).
[i
=
(1 ... M)]
При: N, M > 0.
b
0
= 0
Для решения задачи на ЭВМ в качестве представления данных примем два списка операто-
ров data, а для организации вывода результирующих данных - следующий сценарий.
Сценарий
Представление данных
Подсчет достатка
'doch: ' доходы
Доходы семьи:
data «папа», 300000
<имя
k
> <d
k
> *
data «мама», 120000
... ...
data «брат», 200000
Доходов = <Sd>
data «», 0
Расходы семьи:
<стат
k
> <r
k
> *
rash: ' расходы
... ...
data «питание», 200000
Расходов = <Sd>
data «одежда», 120000
Достаток = <S>
data «транспорт», 60000
data «», 0
Приведем соответствующие этому сценарию и выбранному методу представления данных
алгоритмы и программу на Бейсике:
алг «достаток семьи»
'достаток семьи
нач
cls
вывод («Подсчет достатка»)
? «Подсчет достатка»
вывод («Доходы семьи:»)
? «Доходы семьи:»
подсчет_доходов
gosub dchs 'доходы
вывод («Доходов=», Sd)
? «Доходов=», Sd
вывод («Расходы семьи:»)
? «Расходы семьи:»
подсчет_расходов
gosub rashs 'расходы
вывод («Расходов =», Sr)
? «Расходов=», Sr
S := Sd - Sr
S = Sd - Sr
вывод («Достаток=», S)
? «Достаток=», S
кон
end
алг «подсчет доходов»
dchs: 'подсчет доходов»
нач
'
загрузка_доходов
restore doch 'доходы
Sd := 0
Sd = 0
цикл
do
чтение (имя, d)
read namS, d
при имя = «» вых
if nam$ = «» then exit do
вывод (имя, d)
? nam$, d
Sd = Sd + d
Sd = Sd + d
кцикл
loop
кон
return
алг «подсчет расходов»
rashs ' подсчет расходов
нач
'
загрузка_расходов
restore rach 'расходы
Sr := 0
Sr = 0
цикл
do
чтение (стат, r)
read stat$, r
при стат = «» вых
if st$ = «» then exit do
|