В силу математической индукции эти
sk
= sk-1 + CkMk = C1M1 + … Ck-1Mk-1 + CkMk,
maxk
= Max(maxk-1, СkМk) = Мах(С1М1, ..., СkМk).
В силу математической индукции эти утверждения верны для всех k = 1, 2, ..., N. Поэтому на последнем шаге вычислений при k = N будут получены окончательные результаты:
sN
= sN-1 + CNMN = C1M1 + … + CNMN,
maxN
= Max(maxN-1, СNМN) = Max(C1M1, ... , СNМN).
Что и требовалось в постановке задачи. Следовательно, выбранный способ решения поставленной задачи правилен и на его основе можно приступать к составлению соответствующих алгоритма и программы.
Для систематичности разработки примем следующий сценарий диалога и представление исходных данных в операторах data.
Сценарий Представление данных
список товаров
товар цена кол-во
<тов1> <с1> <т1> * dan: 'сведения о товарах
… .... ... data яблоки, 8000, 3
сумма = <Sum> data бананы, 4000, 2
Максимум data арбузы, 1000, 20
<товар> <стоим> data «», 0, 0
Приведем алгоритм и программу решения поставленной задачи в соответствии с выбранным сценарием и представлением данных.
Алгоритм Программа
алг «сумма и максимум» '
сумма и максимум
нач сls
вывод («список товаров») ? «список товаров»
вывод («товар цена кол-во») ? «товар цена кол-во»
s := 0; k = 0 s = 0: k = 0
цикл do
Содержание Назад Вперед