АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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 := 0Sr = 0

цикл do

чтение (стат, r) read stat$, r

при стат = «» вых if st$ = «» then exit do

вывод (стат, r) ? st$, r

Sr = Sr + r Sr = Sr + r

кцикл loop

кон return

Правильность составленного комплекса алгоритмов и программы расчета достатка семьи можно проверить по описанию результатов их выполнения:

«достаток семьи»«подсчет доходов»«подсчет расходов»

Подсчет достатка

Доходы семьи: Sd0 = 0 [k = 0] Sr0 = 0 [i = 0]

<подсчет_доходов>

Доходов = <Sd>

Расходы семьи: [k =(1...N)] [i =(1...M)]

<подсчет_расходов> <имяk> <dk> <стат1> <r1>

Расходов = < Sr> Sdk = Sd/k-l/+dk Sri == Sri-1 + ri

{ S = Sd - Sr

Достаток = <S>

 

Для обоснования правильности всего комплекса алгоритмов и программы в целом необходимо показать правильность каждого из вспомогательных алгоритмов: «подсчет доходов» и «подсчет расходов».

Для первого алгоритма для первых шагов вычисления получаем:

Sd0 = 0,

Sd1 = Sd0 + d1 = d1,

Sd2 = Sd1 + d2 = d1 + d2.

Для последующих шагов можно заключить, что

Sdk = Sdk-1 + dk = d1 + d2 + ... + dk-1 + dk.

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



SdN = d1 + d2 + ... + dN-1 + dN.

Следовательно, алгоритм подсчета доходов - правильный.

Для второго алгоритма подсчета расходов получаются аналогич­ные оценки:

Sr0 = 0,

Sr1 = Sr0 + r1 = r1,

Sr2 = Sr1 + r2 = r1 + r2

и для последующих шагов вычислений:

Sri = Sri-1 + ri = r1 + r2 +... + ri-1+ ri.

Это доказывается также с помощью математической индукции. На основании этого утверждения можно сделать заключение о ко­нечном результате выполнения алгоритма:

SrM = r1 + r2 + ... + rM-1+ rM.

Следовательно, алгоритм подсчет расходов правильный. Но в основном алгоритме содержится единственная расчетная формула

S = Sd - Sr.

В силу доказанных утверждений о результатах выполнения алго­ритмов «подсчета доходов» и «подсчета расходов» конечным резуль­татом вычислений станет величина

S = Sd - Sr = (d1 + d2 + ... + dN) - (r1 + r2 + ... + rM).

Что и требовалось доказать. Следовательно, весь комплекс алго­ритмов и программа в целом правильны.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)