Загрузка_расходов

Цикл

Загрузка_доходов

End

Кон

Нач

I •••••• I

Расходы

Максимум

Кон

Товар цена кол-во

s0 =0 [k = 0]

[k= 1,2,...,N]

{ <тов> <с> <m> }*

sk = sk-1 + ck⋅mk

при k = 1 max1 = c1⋅m1, ToвMaх1 = тов1 при сk⋅mk > mах mахk = сk⋅mk ТовМахk = товk

cуммa = <sN>



вывод («Максимум») вывод (ТовМах, тах)


<ToвMaxN> <maxN>


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

Можно утверждать, что правильные алгоритмы и программы - это корректная реализация правильных методов решения. Ошибки в выбранных методах решения носят не алгоритмиче-ский, а принципиальный характер и их следует искать не с помощью отладки программ на ЭВМ, а исследованием самих методов.

Рассмотрим самую популярную экономическую задачу - расчет семейного бюджета в це-лях анализа достатка семьи. Напомним, что достаток семьи - это остаток от разности доходов и расходов:

достаток = доходы - расходы.

Допустим, что данные о семейном бюджете представлены двумя таблицами: - таблицей до-ходов и таблицей расходов:


Доходы
папа   питание  
мама   одежда  
брат   транспорт  
я   отдых  
    разное  

Метод решения S = Sd - Sr Sd = сN k = сk-i + dk \[k = (l...N)] сo= 0 Sr = bM fb; = bi-i + Г; \[i = (1... M)] b0 = 0

Приведем точную постановку задачи и опишем метод ее решения.

Постановка задачи

Определение достатка семьи.

Дано:

D = (дох1,..., дох n) - доходы,

R = (расхь..., расхМ) - расходы,

где дох = (имя, d),

расх = (стат, г).

Треб.: S - достаток семьи.

Где:

S = Sum (di, ..., dN) - Sum (rb.... rM).

При: N, M > 0.


Для решения задачи на ЭВМ в качестве представления данных примем два списка операто­ров data, а для организации вывода результирующих данных - следующий сценарий.

СценарийПредставление данных


Подсчет достатка Доходы семьи: <имяк> <dk> "1 *

••• •••

Доходов = <Sd> Расходы семьи: j < статk> <rk > "I *

Расходов = <Sd> Достаток = <S>


' doch: ' доходы data «папа», 300000 data «мама», 120000 data «брат», 200000 data «», 0

rash: ' расходы data «питание», 200000 data «одежда», 120000 data «транспорт», 60000 data «», 0



Приведем соответствующие этому сценарию и выбранному методу представления данных алгоритмы и программу на Бейсике:


алг «достаток семьи»

вывод («Подсчет достатка») вывод («Доходы семьи:») подсчет_доходов вывод («Доходов=», Sd) вывод («Расходы семьи:») подсчет_расходов вывод («Расходов =», Sr) S:= Sd - Sr вывод («Достаток=», S)


'достаток семьи

cls? «Подсчет достатка»? «Доходы семьи:» gosub dchs 'доходы? «Доходов=», Sd? «Расходы семьи:» gosub rashs 'расходы? «Расходов=», Sr S = Sd - Sr? «Достаток=», S



алг «подсчет доходов» нач

Sd:= 0

чтение (имя, d) при имя = «» вых вывод (имя, d) Sd = Sd + d кцикл кон


dchs: 'подсчет доходов» ' restore doch 'доходы Sd = 0 do

read namS, d if nam$ = «» then exit do? nam$, d Sd = Sd + d loop return



алг «подсчет расходов» нач

Sr:= 0


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow